|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ResourceResolver
The ResourceResolver
defines the service API which may be used
to resolve Resource
objects. The resource resolver is available to
the request processing servlet through the
SlingHttpServletRequest.getResourceResolver()
method.
The ResourceResolver
is also an Adaptable
to get
adapters to other types. A JCR based resource resolver might support adapting
to the JCR Session used by the resolver to access the JCR Repository.
This interface defines two kinds of methods to access resources: The
resolve
methods and the getResource
methods. The
difference lies in the algorithm applied to find the requested resource and
in the behaviour in case a resource cannot be found:
Method Kind | Access Algorithm | Missing Resource |
---|---|---|
resolve | Path is always assumed to be absolute. Uses elaborate resource resolution algorithm. This kind of method is intended to resolve request URLs to resources. | Returns NonExistingResource |
getResource | Directly access resources with absolute path. For relative paths, the
search path is applied. This method is intended to
be used by request processing scripts to access further resources as
required. |
Returns null |
Method Summary | |
---|---|
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 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 resolve(HttpServletRequest, String) such
that when the path is given to the
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 resolve(String) such that when the path is
given to the 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)
Deprecated. as of 2.0.4, use resolve(HttpServletRequest, String)
instead. |
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. |
Methods inherited from interface org.apache.sling.api.adapter.Adaptable |
---|
adaptTo |
Method Detail |
---|
Resource resolve(javax.servlet.http.HttpServletRequest request, java.lang.String absPath)
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 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.
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.
Resource
addressed by the absPath
or a
NonExistingResource
if no such resource can be resolved.
SlingException
- Or a subclass thereof may be
thrown if an error occurrs trying to resolve the resource.Resource resolve(java.lang.String absPath)
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 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
resolve(HttpServletRequest, String)
method with
null
as the request argument.
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.
Resource
addressed by the absPath
or a
NonExistingResource
if no such resource can be resolved.
SlingException
- Or a subclass thereof may be
thrown if an error occurrs trying to resolve the resource.@Deprecated Resource resolve(javax.servlet.http.HttpServletRequest request)
resolve(HttpServletRequest, String)
instead.
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 resolve(HttpServletRequest, String)
where the
absPath
argument is the result of calling the
getPathInfo()
on the request
object.
request
- The http servlet request object used to resolve the
resource for. This must not be null
.
Resource
addressed by
HttpServletRequest.getPathInfo()
or a
NonExistingResource
if no such resource can be resolved.
java.lang.NullPointerException
- If request
is null
.
SlingException
- Or a subclass thereof may be
thrown if an error occurrs trying to resolve the resource.java.lang.String map(java.lang.String resourcePath)
resolve(String)
such that when the path is
given to the 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
resolve(String)
with the path returned may return
null
.
This method is intended as the reverse operation of the
resolve(String)
method.
resourcePath
- The path for which to return a mapped path.
java.lang.String map(javax.servlet.http.HttpServletRequest request, java.lang.String resourcePath)
resolve(HttpServletRequest, String)
such
that when the path is given to the
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
resolve(HttpServletRequest, String)
with the path returned may
return null
.
This method is intended as the reverse operation of the
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.
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.
Resource getResource(java.lang.String path)
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 resolve(String)
method, this method
does not apply any logic to the path, so the path is used as-is to fetch
the content.
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.
Resource
object loaded from the path or
null
if the path does not resolve to a resource.
SlingException
- If an error occurrs trying to
load the resource object from the path.Resource getResource(Resource base, java.lang.String path)
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.
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.
Resource
object loaded from the path or
null
if the path does not resolve to a resource.
SlingException
- If an error occurrs trying to
load the resource object from the path or if
base
is null
and path
is relative.java.lang.String[] getSearchPath()
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.
java.util.Iterator<Resource> listChildren(Resource parent)
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
.
parent
- The Resource
whose children are requested.
Iterator
of Resource
objects.
java.lang.NullPointerException
- If parent
is null
.
SlingException
- If any error occurs acquiring
the child resource iterator.java.util.Iterator<Resource> findResources(java.lang.String query, java.lang.String 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.
query
- The query string to use to find the resources.language
- The language in which the query is formulated.
Iterator
of Resource
objects matching the
query.
QuerySyntaxException
- If the query is not syntactically correct
according to the query language indicator of if the query
language is not supported.
SlingException
- If an error occurrs querying
for the resources.java.util.Iterator<java.util.Map<java.lang.String,java.lang.Object>> queryResources(java.lang.String query, java.lang.String 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.
query
- The query string to use to find the resources.language
- The language in which the query is formulated.
Iterator
of Map
instances providing
access to the query result.
QuerySyntaxException
- If the query is not syntactically correct
according to the query language indicator of if the query
language is not supported.
SlingException
- If an error occurrs querying
for the resources.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |