org.apache.sling.commons.testing.sling
Class MockResourceResolver

java.lang.Object
  extended by org.apache.sling.commons.testing.sling.MockResourceResolver
All Implemented Interfaces:
Adaptable, ResourceResolver

public class MockResourceResolver
extends java.lang.Object
implements ResourceResolver


Constructor Summary
MockResourceResolver()
           
 
Method Summary
<AdapterType>
AdapterType
adaptTo(java.lang.Class<AdapterType> type)
          Adapts the adaptable to another type.
 void addChildren(Resource parent, java.util.Collection<Resource> children)
           
 void addResource(Resource resource)
           
 java.util.Iterator<Resource> findResources(java.lang.String query, java.lang.String language)
          Searches for resources using the given query formulated in the given language.
 Resource getResource(Resource base, java.lang.String path)
          Returns a Resource object for data located at the given path.
 Resource getResource(java.lang.String path)
          Returns a Resource object for data located at the given path.
 java.lang.String[] getSearchPath()
          Returns the search path used by the ResourceResolver.getResource(String) method to search for resources by relative path.
 java.util.Iterator<Resource> listChildren(Resource parent)
          Returns an Iterator of Resource objects loaded from the children of the given Resource.
 java.lang.String map(javax.servlet.http.HttpServletRequest request, java.lang.String resourcePath)
          Returns an URL mapped from the (resource) path applying the reverse mapping used by the ResourceResolver.resolve(HttpServletRequest, String) such that when the path is given to the ResourceResolver.resolve(HttpServletRequest, String) method the same resource is returned.
 java.lang.String map(java.lang.String resourcePath)
          Returns a path mapped from the (resource) path applying the reverse mapping used by the ResourceResolver.resolve(String) such that when the path is given to the ResourceResolver.resolve(String) method the same resource is returned.
 java.util.Iterator<java.util.Map<java.lang.String,java.lang.Object>> queryResources(java.lang.String query, java.lang.String language)
          Queries the storage using the given query formulated in the given language.
 Resource resolve(javax.servlet.http.HttpServletRequest request)
          Resolves the resource from the given HttpServletRequest.
 Resource resolve(javax.servlet.http.HttpServletRequest request, java.lang.String absPath)
          Resolves the resource from the given absPath optionally taking HttpServletRequest into account, such as the value of the Host request header.
 Resource resolve(java.lang.String absPath)
          Resolves the resource from the given absolute path.
 void setSearchPath(java.lang.String... searchPath)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MockResourceResolver

public MockResourceResolver()
Method Detail

addResource

public void addResource(Resource resource)

addChildren

public void addChildren(Resource parent,
                        java.util.Collection<Resource> children)

resolve

public Resource resolve(javax.servlet.http.HttpServletRequest request)
Description copied from interface: ResourceResolver
Resolves the resource from the given HttpServletRequest. Returns a NonExistingResource if the path cannot be resolved to an existing and accessible resource.

This method is deprecated as of API version 2.0.4 and should not be used anymore. Implementations are expected to implement this method calling the ResourceResolver.resolve(HttpServletRequest, String) where the absPath argument is the result of calling the getPathInfo() on the request object.

Specified by:
resolve in interface ResourceResolver
Parameters:
request - The http servlet request object used to resolve the resource for. This must not be null.
Returns:
The Resource addressed by HttpServletRequest.getPathInfo() or a NonExistingResource if no such resource can be resolved.

resolve

public Resource resolve(java.lang.String absPath)
Description copied from interface: ResourceResolver
Resolves the resource from the given absolute path. Returns a NonExistingResource if the path cannot be resolved to an existing and accessible resource.

This method is intended to apply the same algorithm to the absolute path as is used by the ResourceResolver.resolve(HttpServletRequest) method except for cases where the latter uses request property such as request headers or request parameters to resolve a resource.

It is ok for the implementation of this method to just call the ResourceResolver.resolve(HttpServletRequest, String) method with null as the request argument.

Specified by:
resolve in interface ResourceResolver
Parameters:
absPath - The absolute path to be resolved to a resource. If this parameter is null, it is assumed to address the root of the resource tree. If the path is relative it is assumed relative to the root, that is a slash is prepended to the path before resolving it.
Returns:
The Resource addressed by the absPath or a NonExistingResource if no such resource can be resolved.

map

public java.lang.String map(java.lang.String resourcePath)
Description copied from interface: ResourceResolver
Returns a path mapped from the (resource) path applying the reverse mapping used by the ResourceResolver.resolve(String) such that when the path is given to the ResourceResolver.resolve(String) method the same resource is returned.

Note, that technically the resourcePath need not refer to an existing resource. This method just applies the mappings and returns the resulting string. If the resourcePath does not address an existing resource roundtripping may of course not work and calling ResourceResolver.resolve(String) with the path returned may return null.

This method is intended as the reverse operation of the ResourceResolver.resolve(String) method.

Specified by:
map in interface ResourceResolver
Parameters:
resourcePath - The path for which to return a mapped path.
Returns:
The mapped path.

getResource

public Resource getResource(java.lang.String path)
Description copied from interface: ResourceResolver
Returns a Resource object for data located at the given path.

This specification does not define the location for resources or the semantics for resource paths. For an implementation reading content from a Java Content Repository, the path could be a javax.jcr.Item path from which the resource object is loaded. In contrast to the ResourceResolver.resolve(String) method, this method does not apply any logic to the path, so the path is used as-is to fetch the content.

Specified by:
getResource in interface ResourceResolver
Parameters:
path - The absolute path to the resource object to be loaded. The path may contain relative path specifiers like . (current location) and .. (parent location), which are resolved by this method. If the path is relative, that is the first character is not a slash, implementations are expected to apply a search path algorithm to resolve the relative path to a resource.
Returns:
The Resource object loaded from the path or null if the path does not resolve to a resource.

getResource

public Resource getResource(Resource base,
                            java.lang.String path)
Description copied from interface: ResourceResolver
Returns a Resource object for data located at the given path.

This specification does not define the location for resources or the semantics for resource paths. For an implementation reading content from a Java Content Repository, the path could be a javax.jcr.Item path from which the resource object is loaded.

Specified by:
getResource in interface ResourceResolver
Parameters:
base - The base Resource against which a relative path argument given by path is resolved. This parameter may be null if the path is known to be absolute.
path - The path to the resource object to be loaded. If the path is relative, i.e. does not start with a slash (/), the resource relative to the given base resource is returned. The path may contain relative path specifiers like . (current location) and .. (parent location), which are resolved by this method.
Returns:
The Resource object loaded from the path or null if the path does not resolve to a resource.

getSearchPath

public java.lang.String[] getSearchPath()
Description copied from interface: ResourceResolver
Returns the search path used by the ResourceResolver.getResource(String) method to search for resources by relative path. If no search path is set an empty array is returned.

The returns array of Strings is a copy of the internal value, so modifications to this array have no influence on the operation of the ResourceResolver.

Each entry in the array is an absolute path terminated with a slash character. Thus to create an absolute path from a search path entry and a relative path, the search path entry and relative path may just be concatenated.

Specified by:
getSearchPath in interface ResourceResolver

listChildren

public java.util.Iterator<Resource> listChildren(Resource parent)
Description copied from interface: ResourceResolver
Returns an Iterator of Resource objects loaded from the children of the given Resource.

This specification does not define what the term "child" means. This is left to the implementation to define. For example an implementation reading content from a Java Content Repository, the children could be the Resource objects loaded from child items of the Item of the given Resource.

Specified by:
listChildren in interface ResourceResolver
Parameters:
parent - The Resource whose children are requested.
Returns:
An Iterator of Resource objects.

findResources

public java.util.Iterator<Resource> findResources(java.lang.String query,
                                                  java.lang.String language)
Description copied from interface: ResourceResolver
Searches for resources using the given query formulated in the given language.

The semantic meaning of the query and language depend on the actual implementation and storage used for the resources. For JCR repository being used as storage, the query and lanuage parameters are used to create a JCR Query through the QueryManager. The result returned is then based on the NodeIterator provided by the query result.

Specified by:
findResources in interface ResourceResolver
Parameters:
query - The query string to use to find the resources.
language - The language in which the query is formulated.
Returns:
An Iterator of Resource objects matching the query.

queryResources

public java.util.Iterator<java.util.Map<java.lang.String,java.lang.Object>> queryResources(java.lang.String query,
                                                                                           java.lang.String language)
Description copied from interface: ResourceResolver
Queries the storage using the given query formulated in the given language.

The semantic meaning of the query and language depend on the actual implementation and storage used for the resources. For JCR repository being used as storage, the query and lanuage parameters are used to create a JCR Query through the QueryManager. The result returned is then based on the RowIterator provided by the query result. The map returned for each row is indexed by the column name and the column value is the JCR Value object converted into the respective Java object, such as Boolean for a value of property type Boolean.

Specified by:
queryResources in interface ResourceResolver
Parameters:
query - The query string to use to find the resources.
language - The language in which the query is formulated.
Returns:
An Iterator of Map instances providing access to the query result.

adaptTo

public <AdapterType> AdapterType adaptTo(java.lang.Class<AdapterType> type)
Description copied from interface: Adaptable
Adapts the adaptable to another type.

Specified by:
adaptTo in interface Adaptable
Type Parameters:
AdapterType - The generic type to which this resource is adapted to
Parameters:
type - The Class object of the target type, such as Node.class
Returns:
The adapter target or null if the resource cannot adapt to the requested type

setSearchPath

public void setSearchPath(java.lang.String... searchPath)

map

public java.lang.String map(javax.servlet.http.HttpServletRequest request,
                            java.lang.String resourcePath)
Description copied from interface: ResourceResolver
Returns an URL mapped from the (resource) path applying the reverse mapping used by the ResourceResolver.resolve(HttpServletRequest, String) such that when the path is given to the ResourceResolver.resolve(HttpServletRequest, String) method the same resource is returned.

Note, that technically the resourcePath need not refer to an existing resource. This method just applies the mappings and returns the resulting string. If the resourcePath does not address an existing resource roundtripping may of course not work and calling ResourceResolver.resolve(HttpServletRequest, String) with the path returned may return null.

This method is intended as the reverse operation of the ResourceResolver.resolve(HttpServletRequest, String) method. As such the URL returned is expected to be an absolute URL including scheme, host, any servlet context path and the actual path used to resolve the resource.

Specified by:
map in interface ResourceResolver
Parameters:
request - The http servlet request object which may be used to apply more mapping functionality.
resourcePath - The path for which to return a mapped path.
Returns:
The mapped URL.

resolve

public Resource resolve(javax.servlet.http.HttpServletRequest request,
                        java.lang.String absPath)
Description copied from interface: ResourceResolver
Resolves the resource from the given absPath optionally taking HttpServletRequest into account, such as the value of the Host request header. Returns a NonExistingResource if the path cannot be resolved to an existing and accessible resource.

The difference between this method and the ResourceResolver.resolve(String) method is, that this method may take request properties like the scheme, the host header or request parameters into account to resolve the resource.

Specified by:
resolve in interface ResourceResolver
Parameters:
request - The http servlet request object providing more hints at how to resolve the absPath. This parameter may be null in which case the implementation should use reasonable defaults.
absPath - The absolute path to be resolved to a resource. If this parameter is null, it is assumed to address the root of the resource tree. If the path is relative it is assumed relative to the root, that is a slash is prepended to the path before resolving it.
Returns:
The Resource addressed by the absPath or a NonExistingResource if no such resource can be resolved.


Copyright © 2007-2009. All Rights Reserved.