Copyright© 2008-2022 Sitevision AB, all rights reserved.
public abstract class TraversingItemVisitor extends 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 . |
Modifier and Type | Field and Description |
---|---|
protected boolean |
breadthFirst
Indicates if traversal should be done in a breadth-first manner rather
than depth-first (which is the default).
|
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).
|
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 |
---|---|
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 . |
protected final boolean breadthFirst
protected final int maxLevel
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).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.Sitevision - Portal and Content Management Made Easy
Sitevision is an advanced Java enterprise portal product and a portlet container (JSR 286) that implements Java Content Repository (JSR 283).
Copyright© 2008-2022 Sitevision AB, all rights reserved.