Class AbstractResourceCollector

  • Direct Known Subclasses:
    NamedScriptResourceCollector, ResourceCollector

    public abstract class AbstractResourceCollector
    extends Object
    The ResourceCollector class provides a single public method - #getServlets(ResourceResolver,List) - which is used to find an ordered collection of Resource instances which may be used to find a servlet or script to handle a request to the given resource.
    • Field Detail

      • CACHE_KEY_CHILDREN_LIST

        protected static final String CACHE_KEY_CHILDREN_LIST
      • CACHE_KEY_RESOURCES

        protected static final String CACHE_KEY_RESOURCES
      • baseResourceType

        protected final String baseResourceType
      • extension

        protected final String extension
      • hashCode

        protected int hashCode
      • resourceType

        protected final String resourceType
      • resourceSuperType

        protected final String resourceSuperType
      • executionPaths

        protected final String[] executionPaths
      • useResourceCaching

        protected boolean useResourceCaching
    • Constructor Detail

      • AbstractResourceCollector

        protected AbstractResourceCollector​(String baseResourceType,
                                            String resourceType,
                                            String resourceSuperType,
                                            String extension,
                                            String[] executionPaths,
                                            boolean useResourceCaching)
    • Method Detail

      • getServlets

        public final Collection<org.apache.sling.api.resource.Resource> getServlets​(org.apache.sling.api.resource.ResourceResolver resolver,
                                                                                    List<String> scriptExtensions)
      • getWeightedResources

        protected abstract void getWeightedResources​(Set<org.apache.sling.servlets.resolver.internal.helper.WeightedResource> resources,
                                                     org.apache.sling.api.resource.Resource location)
      • addWeightedResource

        protected final void addWeightedResource​(Set<org.apache.sling.servlets.resolver.internal.helper.WeightedResource> resources,
                                                 org.apache.sling.api.resource.Resource resource,
                                                 int numSelectors,
                                                 int methodPrefixWeight)
        Creates a WeightedResource and adds it to the set of resources. The number of resources already present in the set is used as the ordinal number for the newly created resource.
        Parameters:
        resources - The set of resource to which the WeightedResource is added.
        resource - The Resource on which the WeightedResource is based.
        numSelectors - The number of request selectors which are matched by the name of the resource.
        methodPrefixWeight - The method/prefix weight assigned to the resource according to the resource name.
      • getResource

        @NotNull
        protected final @NotNull org.apache.sling.api.resource.Resource getResource​(@NotNull
                                                                                    @NotNull org.apache.sling.api.resource.ResourceResolver resolver,
                                                                                    @NotNull
                                                                                    @NotNull String path,
                                                                                    boolean useCaching)
        Returns a resource for the given path. If no resource exists at the given path a SyntheticResource is returned.
        Parameters:
        resolver - The ResourceResolver used to access the resource.
        path - The absolute path of the resource to return.
        Returns:
        The actual resource at the given path or a synthetic resource representing the path location.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • stringEquals

        protected boolean stringEquals​(String s1,
                                       String s2)
        Helper method to compare two strings which can possibly be null
      • clearCache

        public static void clearCache​(@NotNull
                                      @NotNull org.apache.sling.api.resource.ResourceResolver resolver)
      • getResourceOrNull

        @Nullable
        public static @Nullable org.apache.sling.api.resource.Resource getResourceOrNull​(@NotNull
                                                                                         @NotNull org.apache.sling.api.resource.ResourceResolver resolver,
                                                                                         @NotNull
                                                                                         @NotNull String path,
                                                                                         boolean useCaching)
        Resolvers a resource or null if there is no resource resolved from the given path.
        Parameters:
        resolver - the resourceResolver to use
        path - the path to the resource
        useCaching - indicates if caching should be used
        Returns:
        a resource or null if no resource can be resolved