|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.jcr.util.TraversingItemVisitor
public abstract class TraversingItemVisitor
An implementation of ItemVisitor
.
TraversingItemVisitor
is an abstract utility class which allows
to easily traverse an Item
hierarchy.
TraversingItemVisitor
makes use of the Visitor Pattern as
described in the book 'Design Patterns' by the Gang Of Four (Gamma et al.).
Tree traversal is done observing the left-to-right order of child
Item
s if such an order is supported and exists.
Nested Class Summary | |
---|---|
static class |
TraversingItemVisitor.Default
Convenience class providing default implementations of the abstract methods of TraversingItemVisitor . |
Field Summary | |
---|---|
protected boolean |
breadthFirst
Indicates if traversal should be done in a breadth-first manner rather than depth-first (which is the default). |
private int |
currentLevel
Used to track hierarchy level of item currently being processed. |
private java.util.LinkedList |
currentQueue
Queues used to implement breadth-first traversal. |
protected int |
maxLevel
The 0-based level up to which the hierarchy should be traversed (if it's -1, the hierarchy will be traversed until there are no more children of the current item). |
private java.util.LinkedList |
nextQueue
|
Constructor Summary | |
---|---|
TraversingItemVisitor()
Constructs a new instance of this class. |
|
TraversingItemVisitor(boolean breadthFirst)
Constructs a new instance of this class. |
|
TraversingItemVisitor(boolean breadthFirst,
int maxLevel)
Constructs a new instance of this class. |
Method Summary | |
---|---|
protected abstract void |
entering(Node node,
int level)
Implement this method to add behavior performed before a Node is visited. |
protected abstract void |
entering(Property property,
int level)
Implement this method to add behavior performed before a Property is visited. |
protected abstract void |
leaving(Node node,
int level)
Implement this method to add behavior performed after a Node
is visited. |
protected abstract void |
leaving(Property property,
int level)
Implement this method to add behavior performed after a Property is visited. |
void |
visit(Node node)
Called when the Visitor is passed to a Node . |
void |
visit(Property property)
Called when the Visitor is passed to a
Property . |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final boolean breadthFirst
protected final int maxLevel
private java.util.LinkedList currentQueue
private java.util.LinkedList nextQueue
private int currentLevel
Constructor Detail |
---|
public TraversingItemVisitor()
The tree of Item
s will be traversed in a depth-first manner
(default behavior).
public TraversingItemVisitor(boolean breadthFirst)
breadthFirst
- if breadthFirst
is true then traversal
is done in a breadth-first manner; otherwise it is done in a depth-first
manner (which is the default behavior).public TraversingItemVisitor(boolean breadthFirst, int maxLevel)
breadthFirst
- if breadthFirst
is true then traversal
is done in a breadth-first manner; otherwise it is done in a depth-first
manner (which is the default behavior).maxLevel
- the 0-based level up to which the hierarchy should be
traversed (if it's -1, the hierarchy will be traversed until there are no
more children of the current item).Method Detail |
---|
protected abstract void entering(Property property, int level) throws RepositoryException
Property
is visited.
property
- the Property
that is accepting this
visitor.level
- hierarchy level of this property (the root node starts at
level 0).
RepositoryException
- if an error occurs.protected abstract void entering(Node node, int level) throws RepositoryException
Node
is visited.
node
- the Node
that is accepting this visitor.level
- hierarchy level of this node (the root node starts at level
0).
RepositoryException
- if an error occurs.protected abstract void leaving(Property property, int level) throws RepositoryException
Property
is visited.
property
- the Property
that is accepting this
visitor.level
- hierarchy level of this property (the root node starts at
level 0).
RepositoryException
- if an error occurs.protected abstract void leaving(Node node, int level) throws RepositoryException
Node
is visited.
node
- the Node
that is accepting this visitor.level
- hierarchy level of this node (the root node starts at level
0).
RepositoryException
- if an error occurs.public void visit(Property property) throws RepositoryException
Visitor
is passed to a
Property
.
It calls TraversingItemVisitor.entering(Property, int)
followed by TraversingItemVisitor.leaving(Property, int)
.
Implement these abstract methods to specify behavior on 'arrival at' and
'after leaving' the Property
.
If this method throws, the visiting process is aborted.
visit
in interface ItemVisitor
property
- the Property
that is accepting this
visitor.
RepositoryException
- if an error occurs.public void visit(Node node) throws RepositoryException
Visitor
is passed to a Node
.
It calls TraversingItemVisitor.entering(Node, int)
followed
by TraversingItemVisitor.leaving(Node, int)
. Implement these
abstract methods to specify behavior on 'arrival at' and 'after leaving'
the Node
.
If this method throws, the visiting process is aborted.
visit
in interface ItemVisitor
node
- the Node
that is accepting this visitor.
RepositoryException
- if an error occurs.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |