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