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, 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

- - ### Field Summary

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

      `current, subControllersAndSamplers`

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

      `COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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, 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, 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, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getThreadContext, getThreadName, isEnabled, isRunningVersion, isTemporary, propertyIterator, recoverRunningVersion, removed, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse`

- - ### Constructor Detail

    - #### ModuleController

          public ModuleController()

      No-arg constructor
      See Also:
        `Object.Object()`

  - ### Method Detail

    - #### clone

          public Object clone()

      Specified by:
        `clone` in interface `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`

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