Package org.apache.jorphan.collections
Interface HashTreeTraverser
- All Known Implementing Classes:
CheckDirty
,ComponentTreeClonerForValidation
,ConvertListeners
,FindTestElementsUpToRootTraverser
,PreCompiler
,SearchByClass
,TestCompiler
,TreeCloner
,TreeClonerForValidation
,TreeClonerNoTimer
,TurnElementsOn
public interface HashTreeTraverser
By implementing this interface, a class can easily traverse a HashTree
object, and be notified via callbacks of certain events. There are three such
events:
- When a node is first encountered, the traverser's
addNode(Object,HashTree)
method is called. It is handed the object at that node, and the entire sub-tree of the node. - When a leaf node is encountered, the traverser is notified that a full
path has been finished via the
processPath()
method. It is the traversing class's responsibility to know the path that has just finished (this can be done by keeping a simple stack of all added nodes). - When a node is retraced, the traverser's
subtractNode()
is called. Again, it is the traverser's responsibility to know which node has been retraced.
processPath()
call is sent. As
the traversal backs up, nodes are subtracted.
The traversal is a depth-first traversal.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
The tree traverses itself depth-first, calling addNode for each object it encounters as it goes.void
Process path is called when a leaf is reached.void
Indicates traversal has moved up a step, and the visitor should remove the top node from its stack structure.
-
Method Details
-
addNode
The tree traverses itself depth-first, calling addNode for each object it encounters as it goes. This is a callback method, and should not be called except by a HashTree during traversal.- Parameters:
node
- the node currently encounteredsubTree
- the HashTree under the node encountered
-
subtractNode
void subtractNode()Indicates traversal has moved up a step, and the visitor should remove the top node from its stack structure. This is a callback method, and should not be called except by a HashTree during traversal. -
processPath
void processPath()Process path is called when a leaf is reached. If a visitor wishes to generate Lists of path elements to each leaf, it should keep a Stack data structure of nodes passed to it with addNode, and removing top items for everysubtractNode()
call. This is a callback method, and should not be called except by a HashTree during traversal.
-