Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.jorphan.collections
Interface HashTreeTraverser  view HashTreeTraverser download HashTreeTraverser.java

All Known Implementing Classes:
HashTree.ConvertToString, HashTree.TreeSearcher, SearchByClass

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:

  1. When a node is first encountered, the traverser's addNode(Object,HashTree) 55 method is called. It is handed the object at that node, and the entire sub-tree of the node.
  2. When a leaf node is encountered, the traverser is notified that a full path has been finished via the processPath() 55 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).
  3. When a node is retraced, the traverser's subtractNode() 55 is called. Again, it is the traverser's responsibility to know which node has been retraced.
To summarize, as the traversal goes down a tree path, nodes are added. When the end of the path is reached, the processPath() 55 call is sent. As the traversal backs up, nodes are subtracted.

The traversal is a depth-first traversal.

Version:
$Revision: 1.4 $

Method Summary
 void addNode(java.lang.Object node, HashTree subTree)
          The tree traverses itself depth-first, calling addNode for each object it encounters as it goes.
 void processPath()
          Process path is called when a leaf is reached.
 void subtractNode()
          Indicates traversal has moved up a step, and the visitor should remove the top node from its stack structure.
 

Method Detail

addNode

public void addNode(java.lang.Object node,
                    HashTree subTree)
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.


subtractNode

public 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

public 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 every subtractNode() 55 call. This is a callback method, and should not be called except by a HashTree during traversal.