Class ResolverSvc

java.lang.Object
com.djrapitops.plan.delivery.web.ResolverSvc
All Implemented Interfaces:
ResolverService

@Singleton public class ResolverSvc extends Object implements ResolverService
ResolverService Implementation.
  • Constructor Details

    • ResolverSvc

      @Inject public ResolverSvc(PlanConfig config, net.playeranalytics.plugin.server.PluginLogger logger, DBSystem dbSystem)
  • Method Details

    • register

      public void register()
    • registerResolver

      public void registerResolver(String pluginName, String start, Resolver resolver)
      Description copied from interface: ResolverService
      Register a new resolver.
      Specified by:
      registerResolver in interface ResolverService
      Parameters:
      pluginName - Name of the plugin that is registering (For error messages)
      start - Start of the target to match against, eg "/example" will send "/example/target" etc to the Resolver.
      resolver - Resolver to use for this
    • registerResolverForMatches

      public void registerResolverForMatches(String pluginName, Pattern pattern, Resolver resolver)
      Description copied from interface: ResolverService
      Register a new resolver with regex that matches start of target.

      NOTICE: It is recommended to avoid too generic regex like "/.*" to not override existing resolvers.

      Parameters (?param=value) are not included in the regex matching.

      Specified by:
      registerResolverForMatches in interface ResolverService
      Parameters:
      pluginName - Name of the plugin that is registering (For error messages)
      pattern - Regex Pattern, "/example.*" will send "/exampletarget" etc to the Resolver.
      resolver - Resolver to use for this.
    • registerPermissions

      public CompletableFuture<Void> registerPermissions(String... webPermissions)
      Description copied from interface: ResolverService
      Register a new permission that you are using in your Resolver.canAccess(Request) method.

      The permissions are not given to any users by default, and need to be given by admin manually.

      Specified by:
      registerPermissions in interface ResolverService
      Parameters:
      webPermissions - Permission strings, higher level permissions grant lower level automatically - eg. page.foo also grants page.foo.bar
      Returns:
      CompletableFuture that tells when the permissions have been stored.
    • registerPermission

      public void registerPermission(String webPermission, String whenHasPermission)
      Description copied from interface: ResolverService
      Register a new permission that you are using in your Resolver.canAccess(Request) method.

      The permission is granted to any groups with whenHasPermission parameter.

      Specified by:
      registerPermission in interface ResolverService
      Parameters:
      webPermission - Permission string, higher level permissions grant lower level automatically - eg. page.foo also grants page.foo.bar
      whenHasPermission - Permission that a group already has that this permission should be granted to - eg. page.network.overview.numbers
    • getResolver

      public Optional<Resolver> getResolver(String target)
      Description copied from interface: ResolverService
      Obtain a Resolver for a target.

      First matching resolver will be returned. ResolverService.registerResolver(String, String, Resolver) resolvers have higher priority than ResolverService.registerResolverForMatches(String, Pattern, Resolver).

      Can be used when making Resolver middleware.

      Specified by:
      getResolver in interface ResolverService
      Parameters:
      target - "/example/target"
      Returns:
      Resolver if registered or empty.
    • getResolvers

      public List<Resolver> getResolvers(String target)
      Description copied from interface: ResolverService
      Obtain all Resolvers that match the target.

      If first returns Optional.empty next one should be used.

      Requires Capability PAGE_EXTENSION_RESOLVERS_LIST.

      Specified by:
      getResolvers in interface ResolverService
      Parameters:
      target - "/example/target"
      Returns:
      List of Resolvers if registered or empty list.
    • getPluginInChargeOf

      public Optional<String> getPluginInChargeOf(String target)