Package org.apache.jmeter.control

# Class TransactionController

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

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

public class TransactionController extends GenericController implements SampleListener, Controller, Serializable
Transaction Controller to measure transaction times There are two different modes for the controller: - generate additional total sample after nested samples (as in JMeter 2.2) - generate parent sampler containing the nested samples

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
`TransactionController()`
Creates a Transaction Controller

## Method Summary

Modifier and Type
Method
Description
`org.apache.jmeter.testelement.schema.PropertiesAccessor<? extends TransactionController,? extends org.apache.jmeter.control.TransactionControllerSchema>`
`getProps()`
`org.apache.jmeter.control.TransactionControllerSchema`
`getSchema()`
`static boolean`
`isFromTransactionController(SampleResult res)`
`boolean`
`isGenerateParentSample()`
`boolean`
`isIncludeTimers()`
Whether to include timer and pre/post processor time in overall sample.
`Sampler`
`next()`
Determines the next sampler to be processed.
`protected Sampler`
`nextIsAController(Controller controller)`
Called by `GenericController.next()` if the element is a Controller, and returns the next sampler from the controller.
`protected void`
`notifyListeners()`
Create additional SampleEvent in NON Parent Mode
`protected Object`
`readResolve()`
`void`
`sampleOccurred(SampleEvent se)`
A sample has started and stopped.
`void`
`sampleStarted(SampleEvent e)`
A sample has started.
`void`
`sampleStopped(SampleEvent e)`
A sample has stopped.
`void`
`setGenerateParentSample(boolean generateParent)`
`void`
`setIncludeTimers(boolean includeTimers)`
Whether to include timers and pre/post processor time in overall sample.
`void`
`triggerEndOfLoop()`
Trigger end of loop condition on controller (used by Start Next Loop feature)

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

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

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

`addPropertiesValues, addProperty, addProperty, canRemove, clear, clearTemporary, clearTestElementChildren, clone, 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.control.Controller

`addIterationListener, initialize, isDone, removeIterationListener`

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

`addTestElement, canRemove, clear, clearTestElementChildren, clone, 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

### TransactionController

public TransactionController()
Creates a Transaction Controller

## Method Details

### getSchema

public org.apache.jmeter.control.TransactionControllerSchema getSchema()

Specified by:
  `getSchema` in interface `org.apache.jmeter.testelement.TestElement`
Overrides:
  `getSchema` in class `GenericController`

### getProps

public org.apache.jmeter.testelement.schema.PropertiesAccessor<? extends TransactionController,? extends org.apache.jmeter.control.TransactionControllerSchema> getProps()

Specified by:
  `getProps` in interface `org.apache.jmeter.testelement.TestElement`
Overrides:
  `getProps` in class `GenericController`

### readResolve

protected Object readResolve()

Overrides:
  `readResolve` in class `GenericController`

### setGenerateParentSample

public void setGenerateParentSample(boolean generateParent)

Parameters:
  `generateParent` - flag whether a parent sample should be generated.

### isGenerateParentSample

public boolean isGenerateParentSample()

Returns:
  `true` if a parent sample will be generated

### next

public Sampler next()
Description copied from class: `GenericController`

Determines the next sampler to be processed.

If `GenericController.isDone()` is `true`, returns null.

Gets the list element using current pointer. If this is `null`, calls `GenericController.nextIsNull()`.

If the list element is a `Sampler`, calls `GenericController.nextIsASampler(Sampler)`, otherwise calls `GenericController.nextIsAController(Controller)`

If any of the called methods throws `NextIsNullException`, returns `null`, otherwise the value obtained above is returned.

Specified by:
  `next` in interface `Controller`
Overrides:
  `next` in class `GenericController`
Returns:
  the next sampler or `null`
See Also:
  - `Controller.next()`

### nextIsAController

protected Sampler nextIsAController(Controller controller) throws NextIsNullException
Description copied from class: `GenericController`
Called by `GenericController.next()` if the element is a Controller, and returns the next sampler from the controller. If this is `null`, then updates the current pointer and makes recursive call to `GenericController.next()`.

Overrides:
  `nextIsAController` in class `GenericController`
Parameters:
  `controller` - the current next element
Returns:
  the next sampler
Throws:
  `NextIsNullException` - when the end of the list has already been reached

### isFromTransactionController

public static boolean isFromTransactionController(SampleResult res)

Parameters:
  `res` - `SampleResult`
Returns:
  true if res is the ParentSampler transactions

### triggerEndOfLoop

public void triggerEndOfLoop()
Description copied from class: `GenericController`
Trigger end of loop condition on controller (used by Start Next Loop feature)

Specified by:
  `triggerEndOfLoop` in interface `Controller`
Overrides:
  `triggerEndOfLoop` in class `GenericController`
See Also:
  - `GenericController.triggerEndOfLoop()`

### notifyListeners

protected void notifyListeners()
Create additional SampleEvent in NON Parent Mode

### sampleOccurred

public void sampleOccurred(SampleEvent se)
Description copied from interface: `SampleListener`
A sample has started and stopped.

Specified by:
  `sampleOccurred` in interface `SampleListener`
Parameters:
  `se` - the `SampleEvent` that has occurred

### sampleStarted

public void sampleStarted(SampleEvent e)
Description copied from interface: `SampleListener`
A sample has started.

Specified by:
  `sampleStarted` in interface `SampleListener`
Parameters:
  `e` - the `SampleEvent` that has started

### sampleStopped

public void sampleStopped(SampleEvent e)
Description copied from interface: `SampleListener`
A sample has stopped.

Specified by:
  `sampleStopped` in interface `SampleListener`
Parameters:
  `e` - the `SampleEvent` that has stopped

### setIncludeTimers

public void setIncludeTimers(boolean includeTimers)
Whether to include timers and pre/post processor time in overall sample.

Parameters:
  `includeTimers` - Flag whether timers and pre/post processor should be included in overall sample

### isIncludeTimers

public boolean isIncludeTimers()
Whether to include timer and pre/post processor time in overall sample.

Returns:
  boolean (defaults to true for backwards compatibility)