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
    Modifier and Type | Method and 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 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`

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