# 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

## Field Summary

Fields
Modifier and Type
Field
Description
`static final boolean`
`IS_USE_STATIC_SET`

## Constructor Summary

Constructors
Constructor
Description
`TestCompiler(HashTree testTree)`

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

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

## Field Details

### IS_USE_STATIC_SET

public static final boolean IS_USE_STATIC_SET

## Constructor Details

### TestCompiler

public TestCompiler(HashTree testTree)

## Method Details

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