ModuleController (Apache JMeter dist API)
Description: declaration: package: org.apache.jmeter.control, class: ModuleController

Package org.apache.jmeter.control

# Class ModuleController

java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.control.GenericController
org.apache.jmeter.control.ModuleController

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Controller`, `ReplaceableController`, `Searchable`, `org.apache.jmeter.testelement.TestElement`, `TestCompilerHelper`

public class ModuleController extends GenericController implements ReplaceableController
The goal of ModuleController is to add modularity to JMeter. The general idea is that web applications consist of small units of functionality (i.e. Logon, Create Account, Logoff...) which consist of requests that implement the functionality. These small units of functionality can be stored in SimpleControllers as modules that can be linked together quickly to form tests. ModuleController facilitates this by acting as a pointer to any controller that sits under the WorkBench. The controller and it's subelements will be substituted in place of the ModuleController at runtime. Config elements can be attached to the ModuleController to alter the functionality (which user logs in, which account is created, etc.) of the module.

See Also:
  - Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface org.apache.jmeter.testelement.TestElement

  `org.apache.jmeter.testelement.TestElement.Companion`

- ## Field Summary

  ### Fields inherited from class org.apache.jmeter.control.GenericController

  `current, subControllersAndSamplers`

  ### Fields inherited from interface org.apache.jmeter.testelement.TestElement

  `COMMENTS, Companion, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ModuleController()`
  No-arg constructor

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  `List<?>`
  `getNodePath()`
  `HashTree`
  `getReplacementSubTree()`
  Used to replace the test execution tree (usually by adding the subelements of the TestElement that is replacing the ReplaceableController.
  `JMeterTreeNode`
  `getSelectedNode()`
  Gets the `JMeterTreeNode` for the Controller
  `void`
  `resolveReplacementSubTree(JMeterTreeNode context)`
  Compute the replacement tree.
  `void`
  `setSelectedNode(JMeterTreeNode tn)`
  Sets the `JMeterTreeNode` which represents the controller which this object is pointing to.

  ### Methods inherited from class org.apache.jmeter.control.GenericController

  `addIterationListener, addTestElement, addTestElementOnce, currentReturnedNull, fireIterationStart, fireIterEvents, getCurrentElement, getIterCount, getProps, getSchema, getSubControllers, incrementCurrent, incrementIterCount, initialize, initializeSubControllers, isDone, isFirst, next, nextIsAController, nextIsASampler, nextIsNull, readResolve, reInitialize, removeCurrentElement, removeIterationListener, resetCurrent, resetIterCount, setCurrentElement, setDone, setFirst, triggerEndOfLoop`

  ### Methods inherited from class org.apache.jmeter.testelement.AbstractTestElement

  `addPropertiesValues, addProperty, addProperty, canRemove, clear, clearTemporary, clearTestElementChildren, emptyTemporary, equals, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getPropertyOrNull, getSearchableTokens, getThreadContext, getThreadName, hashCode, isEnabled, isRunningVersion, isTemporary, logProperties, mergeIn, propertyIterator, recoverRunningVersion, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse, traverseCollection, traverseMap, traverseProperty`

  ### Methods inherited from class java.lang.Object

  `finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.apache.jmeter.testelement.TestElement

  `canRemove, clear, clearTestElementChildren, get, get, get, get, get, get, get, get, get, getComment, getName, getOrCreate, getOrCreate, getOrNull, getOrNull, getOrNull, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getPropertyOrNull, getPropertyOrNull, getString, getThreadContext, getThreadName, isEnabled, isRunningVersion, isTemporary, propertyIterator, recoverRunningVersion, removed, removeProperty, removeProperty, set, set, set, set, set, set, set, set, set, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse`

- ## Constructor Details

  - ### ModuleController

    public ModuleController()
    No-arg constructor
    See Also:
      - `Object()`

- ## Method Details

  - ### clone

    public Object clone()
    Specified by:
      `clone` in interface `org.apache.jmeter.testelement.TestElement`
    Overrides:
      `clone` in class `AbstractTestElement`

  - ### setSelectedNode

    public void setSelectedNode(JMeterTreeNode tn)
    Sets the `JMeterTreeNode` which represents the controller which this object is pointing to. Used for building the test case upon execution.
    Parameters:
      `tn` - JMeterTreeNode
    See Also:
      - `JMeterTreeNode`

  - ### getSelectedNode

    public JMeterTreeNode getSelectedNode()
    Gets the `JMeterTreeNode` for the Controller
    Returns:
      JMeterTreeNode

  - ### getNodePath

    public List<?> getNodePath()

  - ### resolveReplacementSubTree

    public void resolveReplacementSubTree(JMeterTreeNode context)
    Compute the replacement tree.
    Specified by:
      `resolveReplacementSubTree` in interface `ReplaceableController`
    Parameters:
      `context` - the starting point of the replacement

  - ### getReplacementSubTree

    public HashTree getReplacementSubTree()
    Used to replace the test execution tree (usually by adding the subelements of the TestElement that is replacing the ReplaceableController.
    Specified by:
      `getReplacementSubTree` in interface `ReplaceableController`
    Returns:
      The replaced sub tree
    See Also:
      - `HashTree`