Package org.apache.jmeter.control
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
public class InterleaveControl extends GenericController implements Serializable
Alternate among each of the children controllers or samplers for each loop iteration- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
IGNORE_SUB_CONTROLLERS
static int
USE_SUB_CONTROLLERS
-
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 Description InterleaveControl()
Constructor for the InterleaveControl object
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
currentReturnedNull(Controller c)
If the controller is done, remove it from the list, otherwise increment to next entry in list.int
getStyle()
protected void
incrementCurrent()
Increments the current pointer; called by currentReturnedNull to move the controller on to its next child.protected boolean
isSkipNext()
Sampler
next()
Determines the next sampler to be processed.protected Sampler
nextIsAController(Controller controller)
Called byGenericController.next()
if the element is a Controller, and returns the next sampler from the controller.protected Sampler
nextIsASampler(Sampler element)
Increment the current pointer and return the element.protected Sampler
nextIsNull()
If the current is null, reset and continue searching.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 stateprotected void
setCurrentElement(TestElement currentElement)
Empty implementation - does nothing.protected void
setSkipNext(boolean skipNext)
void
setStyle(int style)
-
Methods inherited from class org.apache.jmeter.control.GenericController
addIterationListener, addTestElement, addTestElementOnce, fireIterationStart, fireIterEvents, getCurrentElement, getIterCount, getSubControllers, incrementIterCount, initialize, initializeSubControllers, isDone, isFirst, readResolve, reInitializeSubController, removeCurrentElement, removeIterationListener, resetCurrent, resetIterCount, setDone, setFirst, triggerEndOfLoop
-
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, 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, 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 Detail
-
IGNORE_SUB_CONTROLLERS
public static final int IGNORE_SUB_CONTROLLERS
- See Also:
- Constant Field Values
-
USE_SUB_CONTROLLERS
public static final int USE_SUB_CONTROLLERS
- See Also:
- Constant Field Values
-
-
Method Detail
-
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:
reInitialize
in classGenericController
-
setStyle
public void setStyle(int style)
-
getStyle
public int getStyle()
-
next
public Sampler 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:
next
in interfaceController
- Overrides:
next
in classGenericController
- Returns:
- the next sampler or
null
-
nextIsAController
protected Sampler nextIsAController(Controller controller) throws NextIsNullException
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:
nextIsAController
in classGenericController
- Parameters:
controller
- the current next element- Returns:
- the next sampler
- Throws:
NextIsNullException
- when the end of the list has already been reached
-
nextIsASampler
protected Sampler nextIsASampler(Sampler element) throws NextIsNullException
Increment the current pointer and return the element. Called byGenericController.next()
if the element is a sampler. (May be overriden by sub-classes).- Overrides:
nextIsASampler
in classGenericController
- Parameters:
element
- the current next element- Returns:
- input element
- Throws:
NextIsNullException
- when the end of the list has already been reached
-
nextIsNull
protected Sampler 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:
nextIsNull
in classGenericController
- Returns:
- null (always, for this class)
-
setCurrentElement
protected void setCurrentElement(TestElement currentElement) throws NextIsNullException
Empty implementation - does nothing.- Overrides:
setCurrentElement
in classGenericController
- Parameters:
currentElement
- the current element- Throws:
NextIsNullException
- when the list has been completed already
-
currentReturnedNull
protected void currentReturnedNull(Controller c)
If the controller is done, remove it from the list, otherwise increment to next entry in list.- Overrides:
currentReturnedNull
in 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:
incrementCurrent
in classGenericController
-
-