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 SummaryModifier and TypeMethodDescriptionvoidThe tree traverses itself depth-first, calling addNode for each object it encounters as it goes.voidProcess path is called when a leaf is reached.voidIndicates traversal has moved up a step, and the visitor should remove the top node from its stack structure.
- 
Method Details- 
addNodeThe 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 encountered
- subTree- the HashTree under the node encountered
 
- 
subtractNodevoid 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.
- 
processPathvoid 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.
 
-