public abstract class TraversingItemVisitor extends java.lang.Object implements ItemVisitor
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.
Modifier and Type | Class and Description |
---|---|
static class |
TraversingItemVisitor.Default
Convenience class providing default implementations of the abstract methods of
TraversingItemVisitor . |
Constructor and Description |
---|
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.
|
Modifier and Type | Method and Description |
---|---|
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 . |
public TraversingItemVisitor()
The tree of Item
s will be traversed in a depth-first manner (default behaviour).
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 behaviour).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 behaviour).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)public void visit(Property property) throws RepositoryException
Property
.
It calls TraversingItemVisitor.entering(Property, int)
followed by TraversingItemVisitor.leaving(Property, int)
. Implement these abstract methods to specify behaviour 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 occurrspublic void visit(Node node) throws RepositoryException
Node
.
It calls TraversingItemVisitor.entering(Node, int)
followed by TraversingItemVisitor.leaving(Node, int)
. Implement these abstract methods to specify behaviour 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 occurrsCopyright © 2004-2005 Day Software Management AG. All Rights Reserved.