|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.jackrabbit.commons.JcrUtils
public class JcrUtils
Collection of static utility methods for use with the JCR API.
Field Summary | |
---|---|
static String |
REPOSITORY_URI
The repository URI parameter name used by the getRepository(String) method. |
Method Summary | |
---|---|
static Iterable<Node> |
getChildNodes(Node node)
Calls Node.getNodes() on the given node and returns the
resulting NodeIterator as an Iterable instance
for use in a Java 5 for-each loop. |
static Iterable<Node> |
getChildNodes(Node node,
String pattern)
Calls Node.getNodes(String) on the given node with the given
name pattern and returns the resulting NodeIterator as an
Iterable instance for use in a Java 5 for-each loop. |
static Iterable<Node> |
getChildNodes(Node node,
String[] globs)
Calls Node.getNodes(String[]) on the given node with the given
name globs and returns the resulting NodeIterator as an
Iterable instance for use in a Java 5 for-each loop. |
static Iterable<Node> |
getNodes(QueryResult result)
Calls QueryResult.getNodes() on the given query result and
returns the resulting NodeIterator as an Iterable
instance for use in a Java 5 for-each loop. |
static Node |
getOrAddFolder(Node parent,
String name)
Returns the named child of the given node, creating it as an nt:folder node if it does not already exist. |
static Node |
getOrAddNode(Node parent,
String name)
Returns the named child of the given node, creating the child if it does not already exist. |
static Node |
getOrAddNode(Node parent,
String name,
String type)
Returns the named child of the given node, creating the child if it does not already exist. |
static Iterable<Property> |
getProperties(Node node)
Calls Node.getProperties() on the given node and returns the
resulting NodeIterator as an Iterable instance
for use in a Java 5 for-each loop. |
static Iterable<Property> |
getProperties(Node node,
String pattern)
Calls Node.getProperties(String) on the given node with the
given name pattern and returns the resulting PropertyIterator
as an Iterable instance for use in a Java 5
for-each loop. |
static Iterable<Property> |
getProperties(Node node,
String[] globs)
Calls Node#getProperty(String[]) on the given node with the
given name globs and returns the resulting PropertyIterator
as an Iterable instance for use in a Java 5
for-each loop. |
static Iterable<Property> |
getReferences(Node node)
Calls Node.getReferences() on the given node and returns the
resulting PropertyIterator as an Iterable
instance for use in a Java 5 for-each loop. |
static Iterable<Property> |
getReferences(Node node,
String name)
Calls Node.getReferences(String) on the given node and returns
the resulting PropertyIterator as an Iterable
instance for use in a Java 5 for-each loop. |
static Repository |
getRepository()
Returns the default repository of the current environment. |
static Repository |
getRepository(Map<String,String> parameters)
Looks up the available repository factories
and returns the repository that one of the factories
returns for the given settings. |
static Repository |
getRepository(String uri)
Returns the repository identified by the given URI. |
static Iterable<Row> |
getRows(QueryResult result)
Calls QueryResult.getRows() on the given query result and
returns the resulting RowIterator as an Iterable
instance for use in a Java 5 for-each loop. |
static Iterable<Node> |
getSharedSet(Node node)
Calls Node.getSharedSet() on the given node and returns
the resulting NodeIterator as an Iterable instance
for use in a Java 5 for-each loop. |
static Iterable<Property> |
getWeakReferences(Node node)
Calls Node.getWeakReferences() on the given node and returns the
resulting PropertyIterator as an Iterable
instance for use in a Java 5 for-each loop. |
static Iterable<Property> |
getWeakReferences(Node node,
String name)
Calls Node.getReferences(String) on the given node and returns
the resulting PropertyIterator as an Iterable
instance for use in a Java 5 for-each loop. |
static Node |
putFile(Node parent,
String name,
String mime,
InputStream data)
Creates or updates the named child of the given node. |
static Node |
putFile(Node parent,
String name,
String mime,
InputStream data,
Calendar date)
Creates or updates the named child of the given node. |
static String |
toString(Item item)
Returns a string representation of the given item. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String REPOSITORY_URI
getRepository(String)
method. All RepositoryFactory
implementations that want to support this repository access convention
should implement processing of this parameter.
Client applications are recommended to use the
getRepository(String)
method instead of directly referencing
this constant unless they explicitly want to pass also other
RepositoryFactory
parameters through the
getRepository(Map)
method.
Method Detail |
---|
public static Repository getRepository() throws RepositoryException
getRepository(Map)
with a
null
parameter map.
RepositoryException
- if a default repository is not available
or can not be accessedRepositoryFactory.getRepository(Map)
public static Repository getRepository(Map<String,String> parameters) throws RepositoryException
repository factories
and returns the repository
that one of the factories
returns for the given settings.
Note that unlike RepositoryFactory.getRepository(Map)
this
method will throw an exception instead of returning null
if the given parameters can not be interpreted.
parameters
- repository settings
RepositoryException
- if the repository can not be accessed,
or if an appropriate repository factory
is not availablepublic static Repository getRepository(String uri) throws RepositoryException
getRepository(Map)
method
with the REPOSITORY_URI
parameter set to the given URI.
Any query parameters are moved from the URI to the parameter map.
See the documentation of the repository implementation you want to use for whether it supports this repository URI convention and for what the repository URI should look like. For example, Jackrabbit 2.0 supports the following types of repository URIs:
JndiRepositoryFactory
class for more details.
uri
- repository URI
RepositoryException
- if the repository can not be accessed,
or if the given URI is unknown or invalidpublic static Iterable<Node> getSharedSet(Node node) throws RepositoryException
Node.getSharedSet()
on the given node and returns
the resulting NodeIterator
as an Iterable
instance
for use in a Java 5 for-each loop.
node
- shared node
RepositoryException
- if the Node.getSharedSet()
call failsNodeIterable
public static Iterable<Node> getChildNodes(Node node) throws RepositoryException
Node.getNodes()
on the given node and returns the
resulting NodeIterator
as an Iterable
instance
for use in a Java 5 for-each loop.
node
- parent node
RepositoryException
- if the Node.getNodes()
call failsNodeIterable
public static Iterable<Node> getChildNodes(Node node, String pattern) throws RepositoryException
Node.getNodes(String)
on the given node with the given
name pattern and returns the resulting NodeIterator
as an
Iterable
instance for use in a Java 5 for-each loop.
node
- parent nodepattern
- node name pattern
RepositoryException
- if the Node.getNodes(String)
call failsNodeIterable
public static Iterable<Node> getChildNodes(Node node, String[] globs) throws RepositoryException
Node.getNodes(String[])
on the given node with the given
name globs and returns the resulting NodeIterator
as an
Iterable
instance for use in a Java 5 for-each loop.
node
- parent nodepattern
- node name pattern
RepositoryException
- if the Node.getNodes(String[])
call failsNodeIterable
public static Iterable<Property> getProperties(Node node) throws RepositoryException
Node.getProperties()
on the given node and returns the
resulting NodeIterator
as an Iterable
instance
for use in a Java 5 for-each loop.
node
- node
RepositoryException
- if the Node.getProperties()
call failsPropertyIterable
public static Iterable<Property> getProperties(Node node, String pattern) throws RepositoryException
Node.getProperties(String)
on the given node with the
given name pattern and returns the resulting PropertyIterator
as an Iterable
instance for use in a Java 5
for-each loop.
node
- nodepattern
- property name pattern
RepositoryException
- if the Node.getProperties(String)
call failsPropertyIterable
public static Iterable<Property> getProperties(Node node, String[] globs) throws RepositoryException
Node#getProperty(String[])
on the given node with the
given name globs and returns the resulting PropertyIterator
as an Iterable
instance for use in a Java 5
for-each loop.
node
- nodepattern
- property name globs
RepositoryException
- if the Node.getProperties(String[])
call failsPropertyIterable
public static Iterable<Property> getReferences(Node node) throws RepositoryException
Node.getReferences()
on the given node and returns the
resulting PropertyIterator
as an Iterable
instance for use in a Java 5 for-each loop.
node
- reference target
RepositoryException
- if the Node.getReferences()
call failsPropertyIterable
public static Iterable<Property> getReferences(Node node, String name) throws RepositoryException
Node.getReferences(String)
on the given node and returns
the resulting PropertyIterator
as an Iterable
instance for use in a Java 5 for-each loop.
node
- reference targetname
- reference property name
RepositoryException
- if the Node.getReferences(String)
call failsPropertyIterable
public static Iterable<Property> getWeakReferences(Node node) throws RepositoryException
Node.getWeakReferences()
on the given node and returns the
resulting PropertyIterator
as an Iterable
instance for use in a Java 5 for-each loop.
node
- reference target
RepositoryException
- if the Node.getWeakReferences()
call failsPropertyIterable
public static Iterable<Property> getWeakReferences(Node node, String name) throws RepositoryException
Node.getReferences(String)
on the given node and returns
the resulting PropertyIterator
as an Iterable
instance for use in a Java 5 for-each loop.
node
- reference targetname
- reference property name
RepositoryException
- if the Node.getWeakReferences(String)
call failsPropertyIterable
public static Iterable<Node> getNodes(QueryResult result) throws RepositoryException
QueryResult.getNodes()
on the given query result and
returns the resulting NodeIterator
as an Iterable
instance for use in a Java 5 for-each loop.
result
- query result
RepositoryException
- if the QueryResult.getNodes()
call failsNodeIterable
public static Iterable<Row> getRows(QueryResult result) throws RepositoryException
QueryResult.getRows()
on the given query result and
returns the resulting RowIterator
as an Iterable|
instance for use in a Java 5 for-each loop.
result
- query result
RepositoryException
- if the QueryResult.getRows()
call failsRowIterable
public static Node getOrAddNode(Node parent, String name) throws RepositoryException
parent
- parent nodename
- name of the child node
RepositoryException
- if the child node can not be
accessed or createdNode.getNode(String)
,
Node.addNode(String)
public static Node getOrAddNode(Node parent, String name, String type) throws RepositoryException
parent
- parent nodename
- name of the child nodetype
- type of the child node, ignored if the child already exists
RepositoryException
- if the child node can not be accessed
or createdNode.getNode(String)
,
Node.addNode(String, String)
,
Node.isNodeType(String)
public static Node getOrAddFolder(Node parent, String name) throws RepositoryException
Note that the type of the returned node is not guaranteed
to match nt:folder in case the node already existed. The caller can
use an explicit Node.isNodeType(String)
check if needed, or
simply use a data-first approach and not worry about the node type
until a constraint violation is encountered.
parent
- parent nodename
- name of the child node
RepositoryException
- if the child node can not be accessed
or createdpublic static Node putFile(Node parent, String name, String mime, InputStream data) throws RepositoryException
If the file node does not already contain a jcr:content child, then one is created using the nt:resource node type. The following properties are set on the jcr:content node:
Note that the types of the returned node or the jcr:content child are
not guaranteed to match nt:file and nt:resource in case the
nodes already existed. The caller can use an explicit
Node.isNodeType(String)
check if needed, or simply use a
data-first approach and not worry about the node type until a constraint
violation is encountered.
The given binary content stream is closed by this method.
parent
- parent nodename
- name of the filemime
- media type of the filedata
- binary content of the file
RepositoryException
- if the child node can not be created
or updatedpublic static Node putFile(Node parent, String name, String mime, InputStream data, Calendar date) throws RepositoryException
If the file node does not already contain a jcr:content child, then one is created using the nt:resource node type. The following properties are set on the jcr:content node:
Note that the types of the returned node or the jcr:content child are
not guaranteed to match nt:file and nt:resource in case the
nodes already existed. The caller can use an explicit
Node.isNodeType(String)
check if needed, or simply use a
data-first approach and not worry about the node type until a constraint
violation is encountered.
The given binary content stream is closed by this method.
parent
- parent nodename
- name of the filemime
- media type of the filedata
- binary content of the filedate
- date of last modification
RepositoryException
- if the child node can not be created
or updatedpublic static String toString(Item item)
The returned string is not meant to be parsed and the exact contents can change in future releases. The current string representation of a node is "/path/to/node [type]" and the representation of a property is "@name = value(s)". Binary values are expressed like "<123 bytes>" and other values as their standard binary representation. Multi-valued properties have their values listed in like "[ v1, v2, v3, ... ]". No more than the three first values are included. Long string values are truncated.
item
- given node or property
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |