org.apache.jmeter.threads

## Class TestCompiler

- java.lang.Object
- - org.apache.jmeter.threads.TestCompiler

All Implemented Interfaces:
  HashTreeTraverser

    public class TestCompiler
    extends Object
    implements HashTreeTraverser

HashTreeTraverser implementation that traverses the Test Tree to build:

- A map with key Sampler and as value the associated SamplePackage
- A map with key TransactionController and as value the associated SamplePackage

### Constructor Summary

Constructors
Constructor and Description
`TestCompiler(HashTree testTree)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `addNode(Object node, HashTree subTree)` The tree traverses itself depth-first, calling addNode for each object it encounters as it goes.
`SamplePackage` `configureSampler(Sampler sampler)` Configures sampler from SamplePackage extracted from Test plan and returns it
`SamplePackage` `configureTransactionSampler(TransactionSampler transactionSampler)` Configures Transaction Sampler from SamplePackage extracted from Test plan and returns it
`void` `done(SamplePackage pack)` Reset pack to its initial state
`static void` `initialize()` Clears the pairing Set Called by StandardJmeterEngine at the start of a test run.
`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 java.lang.Object

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

### Constructor Detail

#### TestCompiler

    public TestCompiler(HashTree testTree)

### Method Detail

#### initialize

    public static void initialize()

Clears the pairing Set Called by StandardJmeterEngine at the start of a test run.

#### configureSampler

    public SamplePackage configureSampler(Sampler sampler)

Configures sampler from SamplePackage extracted from Test plan and returns it

Parameters:
  `sampler` - `Sampler`
Returns:
  `SamplePackage`

#### configureTransactionSampler

    public SamplePackage configureTransactionSampler(TransactionSampler transactionSampler)

Configures Transaction Sampler from SamplePackage extracted from Test plan and returns it

Parameters:
  `transactionSampler` - `TransactionSampler`
Returns:
  `SamplePackage`

#### done

    public void done(SamplePackage pack)

Reset pack to its initial state

Parameters:
  `pack` - the `SamplePackage` to reset

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