Class TreeCloner

java.lang.Object
org.apache.jmeter.engine.TreeCloner
All Implemented Interfaces:
HashTreeTraverser
Direct Known Subclasses:
TreeClonerForValidation, TreeClonerNoTimer

public class TreeCloner extends Object implements HashTreeTraverser
Clones the test tree, skipping test elements that implement NoThreadClone by default.
  • Constructor Details

    • TreeCloner

      public TreeCloner()
      Clone the test tree, honouring NoThreadClone markers.
    • TreeCloner

      public TreeCloner(boolean honourNoThreadClone)
      Clone the test tree.
      Parameters:
      honourNoThreadClone - set false to clone NoThreadClone nodes as well
  • Method Details

    • addNode

      public final 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
    • addNodeToTree

      protected Object addNodeToTree(Object node)
      Parameters:
      node - Node to add to tree or not
      Returns:
      Object node (clone or not)
    • subtractNode

      public void subtractNode()
      Description copied from interface: HashTreeTraverser
      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
    • getClonedTree

      public ListedHashTree getClonedTree()
    • processPath

      public void processPath()
      Description copied from interface: HashTreeTraverser
      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