Class ResourceCollector


  • public class ResourceCollector
    extends AbstractResourceCollector
    The ResourceCollector class provides a single public method - #getServlets(ResourceResolver) - 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

      • WEIGHT_NO_MATCH

        protected static final int WEIGHT_NO_MATCH
        The special value returned by #calculatePrefixMethodWeight(Resource, String, boolean) if the resource is not suitable to handle the request according to the location prefix, request selectors and request extension (value is Integer.MIN_VALUE).
        See Also:
        Constant Field Values
    • Constructor Detail

      • ResourceCollector

        @Deprecated
        public ResourceCollector​(String methodName,
                                 String baseResourceType,
                                 org.apache.sling.api.resource.Resource resource,
                                 String[] executionPaths)
        Creates a ResourceCollector finding servlets and scripts for the given methodName.
        Parameters:
        methodName - The methodName used to find scripts for. This must not be null.
        baseResourceType - The basic resource type to use as a final resource super type. If this is null the default value org.apache.sling.servlets.resolver.internal.ServletResolverConstants#DEFAULT_SERVLET_NAME is assumed.
        resource - the resource to invoke, the resource type and resource super type are taken from this resource.
        executionPaths - the execution paths to consider
      • ResourceCollector

        public ResourceCollector​(String methodName,
                                 String baseResourceType,
                                 org.apache.sling.api.resource.Resource resource,
                                 String extension,
                                 String[] executionPaths)
        Creates a ResourceCollector finding servlets and scripts for the given methodName.
        Parameters:
        methodName - The methodName used to find scripts for. This must not be null.
        baseResourceType - The basic resource type to use as a final resource super type. If this is null the default value org.apache.sling.servlets.resolver.internal.ServletResolverConstants#DEFAULT_SERVLET_NAME is assumed.
        resource - the resource to invoke, the resource type and resource super type are taken from this resource.
        extension - the extension of the request being processed
        executionPaths - the execution paths to consider
    • Method Detail

      • create

        public static ResourceCollector create​(org.apache.sling.api.SlingHttpServletRequest request,
                                               String[] executionPaths,
                                               String[] defaultExtensions)
        Creates a ResourceCollector for the given request. If the request is a GET or HEAD request, a specialized instance is returned which also takes the request selectors and request extension into account for finding servlet resources. Otherwise an instance of this class itself is returned which just takes the resource type and request method name into account.
        Parameters:
        request - The SlingHttpServletRequest for which to return a ResourceCollector.
        Returns:
        The ResourceCollector to find servlets and scripts suitable for handling the request.
      • getWeightedResources

        protected void getWeightedResources​(Set<org.apache.sling.servlets.resolver.internal.helper.WeightedResource> resources,
                                            org.apache.sling.api.resource.Resource location)
        Specified by:
        getWeightedResources in class AbstractResourceCollector