Class InterleaveControl
java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.control.GenericController
org.apache.jmeter.control.InterleaveControl
- All Implemented Interfaces:
Serializable, Cloneable, Controller, Searchable, TestElement, TestCompilerHelper
- Direct Known Subclasses:
RandomController
Alternate among each of the children controllers or samplers for each loop iteration
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intFields inherited from class GenericController
current, subControllersAndSamplersFields inherited from interface TestElement
COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidIf the controller is done, remove it from the list, otherwise increment to next entry in list.intgetStyle()protected voidIncrements the current pointer; called by currentReturnedNull to move the controller on to its next child.protected booleannext()Determines the next sampler to be processed.protected SamplernextIsAController(Controller controller) Called byGenericController.next()if the element is a Controller, and returns the next sampler from the controller.protected SamplernextIsASampler(Sampler element) Increment the current pointer and return the element.protected SamplerIf the current is null, reset and continue searching.voidResets the controller (called after execution of last child of controller): resetCurrent() (i.e. current=0) increment iteration count sets first=true recoverRunningVersion() to set the controller back to the initial stateprotected voidsetCurrentElement(TestElement currentElement) Empty implementation - does nothing.protected voidsetSkipNext(boolean skipNext) voidsetStyle(int style) Methods inherited from class GenericController
addIterationListener, addTestElement, addTestElementOnce, fireIterationStart, fireIterEvents, getCurrentElement, getIterCount, getSubControllers, incrementIterCount, initialize, initializeSubControllers, isDone, isFirst, readResolve, reInitializeSubController, removeCurrentElement, removeIterationListener, resetCurrent, resetIterCount, setDone, setFirst, triggerEndOfLoopMethods inherited from class AbstractTestElement
addPropertiesValues, addProperty, addProperty, canRemove, clear, clearTemporary, clearTestElementChildren, clone, 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, traversePropertyMethods inherited from class Object
finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface TestElement
canRemove, clear, clearTestElementChildren, clone, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getThreadContext, getThreadName, isEnabled, isRunningVersion, isTemporary, propertyIterator, recoverRunningVersion, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse
-
Field Details
-
IGNORE_SUB_CONTROLLERS
public static final int IGNORE_SUB_CONTROLLERS- See Also:
-
USE_SUB_CONTROLLERS
public static final int USE_SUB_CONTROLLERS- See Also:
-
-
Constructor Details
-
InterleaveControl
public InterleaveControl()Constructor for the InterleaveControl object
-
-
Method Details
-
reInitialize
public void reInitialize()Resets the controller (called after execution of last child of controller):- resetCurrent() (i.e. current=0)
- increment iteration count
- sets first=true
- recoverRunningVersion() to set the controller back to the initial state
- Overrides:
reInitializein classGenericController
-
setStyle
public void setStyle(int style) -
getStyle
public int getStyle() -
next
Determines the next sampler to be processed.
If
GenericController.isDone()istrue, returns null.Gets the list element using current pointer. If this is
null, callsGenericController.nextIsNull().If the list element is a
Sampler, callsGenericController.nextIsASampler(Sampler), otherwise callsGenericController.nextIsAController(Controller)If any of the called methods throws
NextIsNullException, returnsnull, otherwise the value obtained above is returned.- Specified by:
nextin interfaceController- Overrides:
nextin classGenericController- Returns:
- the next sampler or
null
-
nextIsAController
Called byGenericController.next()if the element is a Controller, and returns the next sampler from the controller. If this isnull, then updates the current pointer and makes recursive call toGenericController.next().- Overrides:
nextIsAControllerin classGenericController- Parameters:
controller- the current next element- Returns:
- the next sampler
- Throws:
NextIsNullException- when the end of the list has already been reached
-
nextIsASampler
Increment the current pointer and return the element. Called byGenericController.next()if the element is a sampler. (May be overriden by sub-classes).- Overrides:
nextIsASamplerin classGenericController- Parameters:
element- the current next element- Returns:
- input element
- Throws:
NextIsNullException- when the end of the list has already been reached
-
nextIsNull
If the current is null, reset and continue searching. The searchStart attribute will break us off when we start a repeat.Called by
GenericController.next()whenGenericController.getCurrentElement()returnsnull. Reinitialises the controller.- Overrides:
nextIsNullin classGenericController- Returns:
- null (always, for this class)
-
setCurrentElement
Empty implementation - does nothing.- Overrides:
setCurrentElementin classGenericController- Parameters:
currentElement- the current element- Throws:
NextIsNullException- when the list has been completed already
-
currentReturnedNull
If the controller is done, remove it from the list, otherwise increment to next entry in list.- Overrides:
currentReturnedNullin classGenericController- Parameters:
c- controller
-
isSkipNext
protected boolean isSkipNext() -
setSkipNext
protected void setSkipNext(boolean skipNext) -
incrementCurrent
protected void incrementCurrent()Increments the current pointer; called by currentReturnedNull to move the controller on to its next child.- Overrides:
incrementCurrentin classGenericController
-