public class ResourceUtil extends Object
ResourceUtil
class provides helper methods dealing with
resources.
This class is not intended to be extended or instantiated because it just provides static utility methods not intended to be overwritten.
Modifier and Type | Class and Description |
---|---|
static class |
ResourceUtil.BatchResourceRemover
A batch resource remover deletes resources in batches.
|
Constructor and Description |
---|
ResourceUtil() |
Modifier and Type | Method and Description |
---|---|
static <T> Iterator<T> |
adaptTo(Iterator<Resource> iterator,
Class<T> type)
Return an iterator for objects of the specified type.
|
static String |
createUniqueChildName(Resource parent,
String name)
Create a unique name for a child of the
parent . |
static String |
findResourceSuperType(Resource resource)
Deprecated.
|
static ResourceUtil.BatchResourceRemover |
getBatchResourceRemover(int threshold)
Create a batch resource remover.
|
static String |
getName(Resource rsrc)
Deprecated.
since 2.1.0, use
Resource.getName() instead |
static String |
getName(String path)
Utility method returns the name of the given
path , which is
normalized by normalize(String) before resolving the name. |
static Resource |
getOrCreateResource(ResourceResolver resolver,
String path,
Map<String,Object> resourceProperties,
String intermediateResourceType,
boolean autoCommit)
Creates or gets the resource at the given path.
|
static Resource |
getOrCreateResource(ResourceResolver resolver,
String path,
String resourceType,
String intermediateResourceType,
boolean autoCommit)
Creates or gets the resource at the given path.
|
static Resource |
getParent(Resource rsrc)
Deprecated.
since 2.1.0, use
Resource.getParent() instead |
static String |
getParent(String path)
Utility method returns the parent path of the given
path ,
which is normalized by normalize(String) before resolving the
parent. |
static String |
getParent(String path,
int level)
Utility method returns the ancestor's path at the given
level
relative to path , which is normalized by normalize(String)
before resolving the ancestor. |
static String |
getResourceSuperType(ResourceResolver resourceResolver,
String resourceType)
Deprecated.
|
static ValueMap |
getValueMap(Resource res)
Returns an
ValueMap object for the given
Resource . |
static boolean |
isA(Resource resource,
String resourceType)
Deprecated.
|
static boolean |
isNonExistingResource(Resource res)
Returns
true if the resource res is a
non-existing resource. |
static boolean |
isStarResource(Resource res)
Returns
true if the resource res is a "star
resource". |
static boolean |
isSyntheticResource(Resource res)
Returns
true if the resource res is a synthetic
resource. |
static Iterator<Resource> |
listChildren(Resource parent)
Deprecated.
since 2.1.0, use
Resource.listChildren() instead |
static String |
normalize(String path)
Resolves relative path segments '.' and '..' in the absolute path.
|
static String |
resourceTypeToPath(String type)
Helper method, which returns the given resource type as returned from the
Resource.getResourceType() as a
relative path. |
static Resource |
unwrap(Resource rsrc)
Unwrap the resource and return the wrapped implementation.
|
@CheckForNull public static String normalize(@Nonnull String path)
null
if not possible (.. points above root) or if path is not
absolute.path
- The path to normalizenull
.@CheckForNull public static String getParent(@Nonnull String path)
path
,
which is normalized by normalize(String)
before resolving the
parent.path
- The path whose parent is to be returned.null
if path
is the root path (
/
) or if path
is a single name
containing no slash (/
) characters.IllegalArgumentException
- If the path cannot be normalized by the
normalize(String)
method.NullPointerException
- If path
is null
.public static String getParent(String path, int level)
level
relative to path
, which is normalized by normalize(String)
before resolving the ancestor.
level
= 0 returns the path
.level
= 1 returns the parent of path
, if it exists, null
otherwise.level
= 2 returns the grandparent of path
, if it exists, null
otherwise.path
- The path whose ancestor is to be returned.level
- The relative level of the ancestor, relative to path
.null
if path
doesn't have an ancestor at the
specified level
.IllegalArgumentException
- If the path cannot be normalized by the
normalize(String)
method or if level
< 0.NullPointerException
- If path
is null
.@Deprecated @CheckForNull public static Resource getParent(@Nonnull Resource rsrc)
Resource.getParent()
insteadrsrc
- The resource to get the parent of.NullPointerException
- If rsrc
is null
.SlingException
- If an error occurs trying to
get the resource object from the path.IllegalStateException
- if the resource resolver has already been
closed}.@Deprecated @Nonnull public static String getName(@Nonnull Resource rsrc)
Resource.getName()
insteadrsrc
- The resource to get the name from.NullPointerException
- If rsrc
is null
.@Nonnull public static String getName(@Nonnull String path)
path
, which is
normalized by normalize(String)
before resolving the name.path
- The path whose name (the last path element) is to be
returned.path
is the root path (
/
) or if path
is a single name
containing no slash (/
) characters.IllegalArgumentException
- If the path cannot be normalized by the
normalize(String)
method.NullPointerException
- If path
is null
.public static boolean isSyntheticResource(@Nonnull Resource res)
true
if the resource res
is a synthetic
resource.
This method checks whether the resource is an instance of the
org.apache.sling.resource.SyntheticResource
class.
res
- The Resource
to check whether it is a synthetic
resource.true
if res
is a synthetic resource.
false
is returned if res
is
null
or not an instance of the
org.apache.sling.resource.SyntheticResource
class.public static boolean isStarResource(@Nonnull Resource res)
true
if the resource res
is a "star
resource". A star resource is a resource returned from the
ResourceResolver.resolve(HttpServletRequest)
whose path
terminates in a /*
. Generally such resource result from
requests to something like /some/path/*
or
/some/path/*.html
which may be used web applications to
uniformly handle resources to be created.
This method checks whether the resource path ends with a /*
indicating such a star resource.
res
- The Resource
to check whether it is a star
resource.true
if res
is to be considered a star
resource.NullPointerException
- if res
is null
.public static boolean isNonExistingResource(@Nonnull Resource res)
true
if the resource res
is a
non-existing resource.
This method checks the resource type of the resource to match the
well-known resource type sling:nonexisting
of the
NonExistingResource
class defined in the Sling API.
res
- The Resource
to check whether it is a
non-existing resource.true
if res
is to be considered a
non-existing resource.NullPointerException
- if res
is null
.@Deprecated @Nonnull public static Iterator<Resource> listChildren(@Nonnull Resource parent)
Resource.listChildren()
insteadIterator
of Resource
objects loaded from
the children of the given Resource
.
This is a convenience method for
ResourceResolver.listChildren(Resource)
.
parent
- The Resource
whose children are requested.Iterator
of Resource
objects.NullPointerException
- If parent
is null
.IllegalStateException
- if the resource resolver has already been
closed}.SlingException
- If any error occurs acquiring
the child resource iterator.ResourceResolver.listChildren(Resource)
@Nonnull public static ValueMap getValueMap(Resource res)
ValueMap
object for the given
Resource
. This method calls Resource.getValueMap()
.
If null
is provided as the resource an empty map is returned as
well.
For backward compatibility reasons the map returned is not immutable, but it is not recommend to rely on this behavior.
res
- The Resource
to adapt to the value map.@Nonnull public static String resourceTypeToPath(@Nonnull String type)
Resource.getResourceType()
as a
relative path.type
- The resource type to be converted into a path@Deprecated @CheckForNull public static String getResourceSuperType(@Nonnull ResourceResolver resourceResolver, String resourceType)
ResourceResolver.getParentResourceType(String)
resourceTypeToPath(String)
and uses the
resourceResolver
to get the corresponding resource. If the
resource exists, the Resource.getResourceSuperType()
method is
called.resourceResolver
- The ResourceResolver
used to access
the resource whose path (relative or absolute) is given by the
resourceType
parameter.resourceType
- The resource type whose super type is to be returned.
This type is turned into a path by calling the
resourceTypeToPath(String)
method before trying to
get the resource through the resourceResolver
.resourceType
or
null
if the resource type does not exists or returns
null
for its super type.IllegalStateException
- if the resource resolver has already been
closed}.@Deprecated @CheckForNull public static String findResourceSuperType(@Nonnull Resource resource)
ResourceResolver.getParentResourceType(Resource)
Resource.getResourceSuperType()
. If that returns
null
getResourceSuperType(ResourceResolver, String)
is invoked with the resource type of the resource.resource
- The resource to return the resource super type for.resource
or null
if no super type could be computed.IllegalStateException
- if the resource resolver has already been
closed}.@Deprecated public static boolean isA(@Nonnull Resource resource, String resourceType)
ResourceResolver.isResourceType(Resource, String)
resource
- the resource to checkresourceType
- the resource type to check the resource againstfalse
if resource
is null
.
Otherwise returns the result of calling
Resource.isResourceType(String)
with the given
resourceType
.IllegalStateException
- if the resource resolver has already been
closed}.@Nonnull public static <T> Iterator<T> adaptTo(@Nonnull Iterator<Resource> iterator, Class<T> type)
Adaptable.adaptTo(Class)
. If a resource in the original
iterator is not adaptable to the given class, this object is skipped.
This implies that the number of objects returned by the new iterator
might be less than the number of resource objects.T
- The adapted typeiterator
- A resource iterator.type
- The adapted type@Nonnull public static Resource getOrCreateResource(@Nonnull ResourceResolver resolver, @Nonnull String path, String resourceType, String intermediateResourceType, boolean autoCommit) throws PersistenceException
resolver
- The resource resolver to use for creationpath
- The full path to be createdresourceType
- The optional resource type of the final resource to createintermediateResourceType
- THe optional resource type of all intermediate resourcesautoCommit
- If set to true, a commit is performed after each resource creation.SlingException
- If an error occurs trying to
get/create the resource object from the path.IllegalStateException
- if the resource resolver has already been
closed}.PersistenceException
- If a persistence error occurs.@Nonnull public static Resource getOrCreateResource(@Nonnull ResourceResolver resolver, @Nonnull String path, Map<String,Object> resourceProperties, String intermediateResourceType, boolean autoCommit) throws PersistenceException
ResourceResolver.revert()
is called on the resolver before the
creation is retried.resolver
- The resource resolver to use for creationpath
- The full path to be createdresourceProperties
- The optional resource properties of the final resource to createintermediateResourceType
- THe optional resource type of all intermediate resourcesautoCommit
- If set to true, a commit is performed after each resource creation.SlingException
- If an error occurs trying to
get/create the resource object from the path.IllegalStateException
- if the resource resolver has already been
closed}.PersistenceException
- If a persistence error occurs.public static String createUniqueChildName(Resource parent, String name) throws PersistenceException
parent
.
Creates a unique name and test if child already exists.
If child resource with the same name exists, iterate until a unique one is found.parent
- The parent resourcename
- The name of the child resourceparent
PersistenceException
- if it can not find unique name for child resource.NullPointerException
- if parent
is nullIllegalStateException
- if the resource resolver has already been
closed}.@Nonnull public static Resource unwrap(@Nonnull Resource rsrc)
rsrc
- The resource to unwrap@Nonnull public static ResourceUtil.BatchResourceRemover getBatchResourceRemover(int threshold)
threshold
- The threshold for the intermediate saves.Copyright © 2017 The Apache Software Foundation. All rights reserved.