| org.apache.jorphan.collections.HashTreeTraverser
All known Subclasses: org.apache.jmeter.engine.PreCompiler, org.apache.jmeter.gui.action.CheckDirty, org.apache.jmeter.engine.ConvertListeners, org.apache.jmeter.engine.TreeCloner, org.apache.jorphan.collections.SearchByClass, org.apache.jmeter.report.gui.action.ReportCheckDirty, org.apache.jmeter.engine.util.DisabledComponentRemover, org.apache.jmeter.threads.TestCompiler, org.apache.jmeter.engine.TurnElementsOn,
HashTreeTraverser | public interface HashTreeTraverser (Code) | | 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
HashTreeTraverser.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
HashTreeTraverser.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
HashTreeTraverser.subtractNode() 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
HashTreeTraverser.processPath() call is sent. As
the traversal backs up, nodes are subtracted.
The traversal is a depth-first traversal.
See Also: HashTree See Also: SearchByClass author: Michael Stover (mstover1 at apache.org) version: $Revision: 493784 $ |
Method Summary | |
public void | addNode(Object node, HashTree subTree) The tree traverses itself depth-first, calling addNode for each object it
encounters as it goes. | public void | processPath() Process path is called when a leaf is reached. | public void | subtractNode() Indicates traversal has moved up a step, and the visitor should remove
the top node from its stack structure. |
addNode | public void addNode(Object node, HashTree subTree)(Code) | | 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 encountered Parameters: subTree - the HashTree under the node encountered |
processPath | public void processPath()(Code) | | 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
HashTreeTraverser.subtractNode() call. This is a callback method, and should
not be called except by a HashTree during traversal.
|
subtractNode | public void subtractNode()(Code) | | 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.
|
|
|