# Class FindTestElementsUpToRootTraverser

java.lang.Object
org.apache.jmeter.threads.FindTestElementsUpToRootTraverser

All Implemented Interfaces:
  `HashTreeTraverser`

public class FindTestElementsUpToRootTraverser extends Object implements HashTreeTraverser
HashTreeTraverser implementation that stores in a Stack all the Test Elements on the path to a particular node.

## Constructor Summary

Constructors
Constructor
Description
`FindTestElementsUpToRootTraverser(Object nodeToFind)`

## Method Summary

Modifier and Type
Method
Description
`void`
`addNode(Object node, HashTree subTree)`
The tree traverses itself depth-first, calling addNode for each object it encounters as it goes.
`List<Controller>`
`getControllersToRoot()`
Returns all controllers that where in Tree down to nodeToFind in reverse order (from leaf to root)
`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.

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### FindTestElementsUpToRootTraverser

public FindTestElementsUpToRootTraverser(Object nodeToFind)

Parameters:
  `nodeToFind` - Node to find

## Method Details

### 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.

Specified by:
  `addNode` in interface `HashTreeTraverser`
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.

Specified by:
  `subtractNode` in interface `HashTreeTraverser`

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

Specified by:
  `processPath` in interface `HashTreeTraverser`

### getControllersToRoot

public List<Controller> getControllersToRoot()
Returns all controllers that where in Tree down to nodeToFind in reverse order (from leaf to root)

Returns:
  List of `Controller`