Package org.apache.sling.servlets.resolver.internal.helper

# Class ResourceCollector

java.lang.Object
org.apache.sling.servlets.resolver.internal.helper.AbstractResourceCollector
org.apache.sling.servlets.resolver.internal.helper.ResourceCollector

public class ResourceCollector extends AbstractResourceCollector
The `ResourceCollector` class provides a single public method - `AbstractResourceCollector.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 Summary

Fields
Modifier and Type
Field
Description
`protected static final int`
`WEIGHT_NO_MATCH`
The special value indicating that the resource is not suitable to handle the request according to the location prefix, request selectors and request extension (value is `Integer.MIN_VALUE`).

### Fields inherited from class org.apache.sling.servlets.resolver.internal.helper.AbstractResourceCollector

`baseResourceType, CACHE_KEY_CHILDREN_LIST, CACHE_KEY_RESOURCES, executionPaths, extension, hashCode, resourceSuperType, resourceType, useResourceCaching`

## Constructor Summary

Constructors
Constructor
Description
`ResourceCollector(String methodName, String baseResourceType, org.apache.sling.api.resource.Resource resource, String[] executionPaths)`
Deprecated.
use `ResourceCollector(String, String, Resource, String, String[], boolean)` instead.
`ResourceCollector(String methodName, String baseResourceType, org.apache.sling.api.resource.Resource resource, String extension, String[] executionPaths, boolean useResourceCaching)`
Creates a `ResourceCollector` finding servlets and scripts for the given `methodName`.

## Method Summary

Modifier and Type
Method
Description
`static ResourceCollector`
`create(org.apache.sling.api.resource.Resource resource, String extension, String[] executionPaths, Collection<String> defaultExtensions, String methodName, String[] selectors, boolean useResourceCaching)`
`static ResourceCollector`
`create(org.apache.sling.api.SlingHttpServletRequest request, String[] executionPaths, Collection<String> defaultExtensions, boolean UseResourceCaching)`
Creates a `ResourceCollector` for the given `request`.
`boolean`
`equals(Object obj)`
`protected void`
`getWeightedResources(Set<org.apache.sling.servlets.resolver.internal.helper.WeightedResource> resources, org.apache.sling.api.resource.Resource location)`
`int`
`hashCode()`

### Methods inherited from class org.apache.sling.servlets.resolver.internal.helper.AbstractResourceCollector

`addWeightedResource, clearCache, getResource, getResourceOrNull, getServlets, stringEquals`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### WEIGHT_NO_MATCH

protected static final int WEIGHT_NO_MATCH
The special value indicating that 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 Details

### ResourceCollector

@Deprecated public ResourceCollector(String methodName, String baseResourceType, org.apache.sling.api.resource.Resource resource, String[] executionPaths)
Deprecated.
use `ResourceCollector(String, String, Resource, String, String[], boolean)` instead.
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 `ServletResolverConstants.DEFAULT_RESOURCE_TYPE` 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, boolean useResourceCaching)
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 `ServletResolverConstants.DEFAULT_RESOURCE_TYPE` 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 Details

### create

public static ResourceCollector create(org.apache.sling.api.SlingHttpServletRequest request, String[] executionPaths, Collection<String> defaultExtensions, boolean UseResourceCaching)
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`.

### create

public static ResourceCollector create(org.apache.sling.api.resource.Resource resource, String extension, String[] executionPaths, Collection<String> defaultExtensions, String methodName, String[] selectors, boolean useResourceCaching)

### 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`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `AbstractResourceCollector`

### equals

public boolean equals(Object obj)

Overrides:
  `equals` in class `AbstractResourceCollector`