Overview | Package | Class | Tree | Deprecated | Index | Help
| Apache JMeter
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.jorphan.collections
Interface HashTreeTraverser

All Known Implementing Classes:
  CheckDirty, ConvertListeners, DisabledComponentRemover, PreCompiler, ReportCheckDirty, SearchByClass, TestCompiler, TreeCloner, 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:

1. 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.
2. 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).
3. 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.

To summarize, as the traversal goes down a tree path, nodes are added. When the end of the path is reached, the `processPath()` call is sent. As the traversal backs up, nodes are subtracted.

The traversal is a depth-first traversal.

Version:
  $Revision: 674365 $
See Also:
  `HashTree`, `SearchByClass`

Method Summary
`void` | `addNode(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(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.

  Parameters:
    `node` - the node currently encountered
    `subTree` - the HashTree under the node encountered

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

Overview | Package | Class | Tree | Deprecated | Index | Help
| Apache JMeter
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 1998-2009 Apache Software Foundation. All Rights Reserved.