public class GenericController extends AbstractTestElement implements Controller, Serializable, TestCompilerHelper
This class is the basis for all the controllers. It also implements SimpleController.
The main entry point is next(), which is called by by JMeterThread as follows:
while (running && (sampler = controller.next()) != null)
Modifier and Type | Field and Description |
---|---|
protected int |
current
Index of current sub controller or sampler
|
protected List<TestElement> |
subControllersAndSamplers |
COMMENTS, ENABLED, GUI_CLASS, NAME, TEST_CLASS
Constructor and Description |
---|
GenericController()
Creates a Generic Controller
|
Modifier and Type | Method and Description |
---|---|
void |
addIterationListener(LoopIterationListener lis)
Controllers have to notify listeners of when they begin an iteration
through their sub-elements.
|
void |
addTestElement(TestElement child) |
boolean |
addTestElementOnce(TestElement child)
Add child test element only if it has not already been added.
|
protected void |
currentReturnedNull(Controller c)
If the controller is done, remove it from the list,
otherwise increment to next entry in list.
|
protected void |
fireIterationStart() |
protected void |
fireIterEvents() |
protected TestElement |
getCurrentElement()
Gets the element indicated by the
current index, if one exists,
from the subControllersAndSamplers list. |
protected int |
getIterCount() |
protected List<TestElement> |
getSubControllers()
Gets the SubControllers attribute of the GenericController object
|
protected void |
incrementCurrent()
Increments the current pointer; called by currentReturnedNull to move the
controller on to its next child.
|
protected void |
incrementIterCount() |
void |
initialize()
Called to initialize a controller at the beginning of a test iteration.
|
boolean |
isDone()
Indicates whether the Controller is done delivering Samplers for the rest
of the test.
|
protected boolean |
isFirst() |
Sampler |
next()
Determines the next sampler to be processed.
|
protected Sampler |
nextIsAController(Controller controller)
Called by 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()
Called by next() when getCurrentElement() returns null.
|
protected void |
reInitialize()
Resets the controller:
resetCurrent() (i.e. current=0)
increment iteration count
sets first=true
recoverRunningVersion() to set the controller back to the initial state
|
protected void |
reInitializeSubController()
Called to re-initialize a index of controller's elements (Bug 50032)
|
protected void |
removeCurrentElement() |
void |
removeIterationListener(LoopIterationListener iterationListener)
Remove listener
|
protected void |
resetCurrent() |
protected void |
resetIterCount() |
protected void |
setCurrentElement(TestElement currentElement)
Empty implementation - does nothing.
|
protected void |
setDone(boolean done) |
void |
setFirst(boolean b) |
void |
triggerEndOfLoop()
Trigger end of loop condition on controller (used by Start Next Loop feature)
|
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, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse, traverseCollection, traverseMap, traverseProperty
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
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, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse
protected transient List<TestElement> subControllersAndSamplers
protected transient int current
public void initialize()
Controller
initialize
in interface Controller
protected void reInitialize()
public Sampler next()
Determines the next sampler to be processed.
If isDone, returns null.
Gets the list element using current pointer.
If this is null, calls nextIsNull()
.
If the list element is a sampler, calls nextIsASampler(Sampler)
,
otherwise calls nextIsAController(Controller)
If any of the called methods throws NextIsNullException, returns null, otherwise the value obtained above is returned.
next
in interface Controller
public boolean isDone()
Controller
isDone
in interface Controller
Controller.isDone()
protected void setDone(boolean done)
protected boolean isFirst()
public void setFirst(boolean b)
protected Sampler nextIsAController(Controller controller) throws NextIsNullException
controller
- NextIsNullException
protected Sampler nextIsASampler(Sampler element) throws NextIsNullException
element
- NextIsNullException
protected Sampler nextIsNull() throws NextIsNullException
NextIsNullException
public void triggerEndOfLoop()
triggerEndOfLoop
in interface Controller
protected void reInitializeSubController()
protected void currentReturnedNull(Controller c)
c
- controllerprotected List<TestElement> getSubControllers()
protected void setCurrentElement(TestElement currentElement) throws NextIsNullException
currentElement
- NextIsNullException
protected TestElement getCurrentElement() throws NextIsNullException
Gets the element indicated by the current
index, if one exists,
from the subControllersAndSamplers
list.
If the subControllersAndSamplers
list is empty,
then set done = true, and throw NextIsNullException.
NextIsNullException
- if list is emptyprotected void removeCurrentElement()
protected void incrementCurrent()
protected void resetCurrent()
public void addTestElement(TestElement child)
AbstractTestElement
addTestElement
in interface TestElement
addTestElement
in class AbstractTestElement
public final boolean addTestElementOnce(TestElement child)
Only for use by TestCompiler.
addTestElementOnce
in interface TestCompilerHelper
public void addIterationListener(LoopIterationListener lis)
Controller
addIterationListener
in interface Controller
public void removeIterationListener(LoopIterationListener iterationListener)
removeIterationListener
in interface Controller
iterationListener
- LoopIterationListener
protected void fireIterEvents()
protected void fireIterationStart()
protected int getIterCount()
protected void incrementIterCount()
protected void resetIterCount()
Copyright © 1998-2014 Apache Software Foundation. All Rights Reserved.