org.apache.sling.bundleresource.impl
Class BundleResourceProvider

java.lang.Object
  extended by org.apache.sling.bundleresource.impl.BundleResourceProvider
All Implemented Interfaces:
ResourceProvider

public class BundleResourceProvider
extends Object
implements ResourceProvider


Field Summary
 
Fields inherited from interface org.apache.sling.api.resource.ResourceProvider
RESOURCE_TYPE_SYNTHETIC, ROOTS, SERVICE_NAME
 
Constructor Summary
BundleResourceProvider(org.osgi.framework.Bundle bundle, String rootList)
          Creates Bundle resource provider accessing entries in the given Bundle an supporting resources below root paths given by the rootList which is a comma (and whitespace) separated list of absolute paths.
 
Method Summary
 Resource getResource(ResourceResolver resourceResolver, javax.servlet.http.HttpServletRequest request, String path)
          Returns a resource from this resource provider or null if the resource provider cannot find it.
 Resource getResource(ResourceResolver resourceResolver, String path)
          Returns a BundleResource for the path if such an entry exists in the bundle of this provider.
 Iterator<Resource> listChildren(Resource parent)
          Returns an Iterator of Resource objects loaded from the children of the given Resource.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BundleResourceProvider

public BundleResourceProvider(org.osgi.framework.Bundle bundle,
                              String rootList)
Creates Bundle resource provider accessing entries in the given Bundle an supporting resources below root paths given by the rootList which is a comma (and whitespace) separated list of absolute paths.

Method Detail

getResource

public Resource getResource(ResourceResolver resourceResolver,
                            javax.servlet.http.HttpServletRequest request,
                            String path)
Description copied from interface: ResourceProvider
Returns a resource from this resource provider or null if the resource provider cannot find it. The path should have one of the ResourceProvider.ROOTS strings as its prefix.

This method is called to resolve a resource for the given request. The properties of the request, such as request parameters, may be use to parametrize the resource resolution. An example of such parametrization is support for a JSR-311 style resource provider to support the parametrized URL patterns.

Specified by:
getResource in interface ResourceProvider
Parameters:
resourceResolver - The ResourceResolver to which the returned Resource is attached.
Returns:
null If this provider does not have a resource for the path.

getResource

public Resource getResource(ResourceResolver resourceResolver,
                            String path)
Returns a BundleResource for the path if such an entry exists in the bundle of this provider. The JcrResourceResolver is ignored by this implementation.

Specified by:
getResource in interface ResourceProvider
Parameters:
resourceResolver - The ResourceResolver to which the returned Resource is attached.
Returns:
null If this provider does not have a resource for the path.

listChildren

public Iterator<Resource> listChildren(Resource parent)
                                throws SlingException
Description copied from interface: ResourceProvider
Returns an Iterator of Resource objects loaded from the children of the given Resource. The returned Resource instances are attached to the same ResourceResolver as the given parent resource.

This method may be called for resource providers whose root path list contains a path such that the resource path is a prefix of the list entry. This allows for the enumeration of deeply nested provided resources for which no actual parent hierarchy exists.

The returned iterator may in turn contain resources which do not actually exist but are required to traverse the resource tree. Such resources SHOULD be SyntheticResource objects whose resource type MUST be set to ResourceProvider.RESOURCE_TYPE_SYNTHETIC.

Specified by:
listChildren in interface ResourceProvider
Parameters:
parent - The Resource whose children are requested.
Returns:
An Iterator of Resource objects or null if the resource provider has no children for the given resource.
Throws:
SlingException - If any error occurs acquiring the child resource iterator.


Copyright © 2007-2013 The Apache Software Foundation. All Rights Reserved.