public final class TreeTraverser extends Object implements Iterable<Node>
Utility class for traversing the Item
s of a JCR hierarchy rooted at a
specific Node
.
This class provides an Iterator
of JCR items either through its
implementation of Iterable
or through various static factory methods.
The iterators return its elements in pre-order. That is, each node occurs
before its child nodes are traversed. The order in which child nodes are
traversed is determined by the underlying JCR implementation. Generally the
order is not specified unless a Node
has orderable child nodes.
Whether a specific node is included is determined by an
inclusionPolicy
. Error occurring while traversing are delegated to
an errorHandler
.
Modifier and Type | Class and Description |
---|---|
static interface |
TreeTraverser.ErrorHandler
Error handler for handling
RepositoryException s occurring on
traversal. |
static interface |
TreeTraverser.InclusionPolicy<T extends Item>
Inclusion policy to determine which items to include when traversing.
|
Constructor and Description |
---|
TreeTraverser(Node root)
Create a new instance of a TreeTraverser rooted at
node . |
TreeTraverser(Node root,
TreeTraverser.ErrorHandler errorHandler,
TreeTraverser.InclusionPolicy<? super Node> inclusionPolicy)
Create a new instance of a TreeTraverser rooted at
node . |
Modifier and Type | Method and Description |
---|---|
Iterator<Node> |
iterator()
Returns an iterator of
Node for this instance. |
static Iterator<Node> |
nodeIterator(Node root)
Create an iterator for the nodes of the sub-tree rooted at
root . |
static Iterator<Node> |
nodeIterator(Node root,
TreeTraverser.ErrorHandler errorHandler,
TreeTraverser.InclusionPolicy<? super Node> inclusionPolicy)
Create an iterator for the nodes of the sub-tree rooted at
root . |
static Iterator<Property> |
propertyIterator(Iterator<Node> nodes)
Create an iterator of the properties for a given iterator of nodes.
|
static Iterator<Property> |
propertyIterator(Iterator<Node> nodes,
TreeTraverser.ErrorHandler errorHandler,
TreeTraverser.InclusionPolicy<? super Property> inclusionPolicy)
Create an iterator of the properties for a given iterator of nodes.
|
static Iterator<Property> |
propertyIterator(Node root)
Create an iterator of the properties of all nodes of the sub-tree rooted
at
root . |
static Iterator<Property> |
propertyIterator(Node root,
TreeTraverser.ErrorHandler errorHandler,
TreeTraverser.InclusionPolicy<Item> inclusionPolicy)
Create an iterator of the properties of all nodes of the sub-tree rooted
at
root . |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEach, spliterator
public TreeTraverser(Node root, TreeTraverser.ErrorHandler errorHandler, TreeTraverser.InclusionPolicy<? super Node> inclusionPolicy)
node
.root
- The root node of the sub-tree to traverseerrorHandler
- Handler for errors while traversinginclusionPolicy
- Inclusion policy to determine which nodes to
includepublic TreeTraverser(Node root)
node
.root
- The root node of the sub-tree to traversepublic static Iterator<Node> nodeIterator(Node root, TreeTraverser.ErrorHandler errorHandler, TreeTraverser.InclusionPolicy<? super Node> inclusionPolicy)
root
.root
- root node of the sub-tree to traverseerrorHandler
- handler for exceptions occurring on traversalinclusionPolicy
- inclusion policy to determine which nodes to
includeNode
public static Iterator<Node> nodeIterator(Node root)
root
. Exceptions occurring on traversal are ignored.root
- root node of the sub-tree to traverseNode
public static Iterator<Property> propertyIterator(Iterator<Node> nodes, TreeTraverser.ErrorHandler errorHandler, TreeTraverser.InclusionPolicy<? super Property> inclusionPolicy)
n1
occurs before node n2
in the iterator of
nodes, then any property of n1
will occur before any
property of n2
.nodes
- nodes whose properties to chainerrorHandler
- handler for exceptions occurring on traversalinclusionPolicy
- inclusion policy to determine properties items to includeProperty
public static Iterator<Property> propertyIterator(Iterator<Node> nodes)
n1
occurs before node n2
in the iterator of
nodes, then any property of n1
will occur before any
property of n2
. Exceptions occurring on traversal are
ignored.nodes
- nodes whose properties to chainProperty
public static Iterator<Property> propertyIterator(Node root, TreeTraverser.ErrorHandler errorHandler, TreeTraverser.InclusionPolicy<Item> inclusionPolicy)
root
.root
- root node of the sub-tree to traverseerrorHandler
- handler for exceptions occurring on traversalinclusionPolicy
- inclusion policy to determine which items to
includeProperty
public static Iterator<Property> propertyIterator(Node root)
root
. Exceptions occurring on traversal are ignored.root
- root node of the sub-tree to traverseProperty
public Iterator<Node> iterator()
Node
for this instance.iterator
in interface Iterable<Node>
TreeTraverser(Node, ErrorHandler, InclusionPolicy)
,
Iterable.iterator()
Copyright © 2004–2022 The Apache Software Foundation. All rights reserved.