Package 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
  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 java.lang.Object

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

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