Package adams.flow.control
Class Count
-
- All Implemented Interfaces:
AdditionalInformationHandler,CleanUpHandler,Destroyable,GlobalInfoSupporter,LoggingLevelHandler,LoggingSupporter,OptionHandler,Pausable,QuickInfoSupporter,ShallowCopySupporter<Actor>,SizeOfHandler,Stoppable,StoppableWithFeedback,VariablesInspectionHandler,FlowPauseStateListener,VariableChangeListener,AtomicExecution,Actor,ActorHandler,ActorWithConditionalEquivalent,ActorWithTimedEquivalent,ControlActor,ErrorHandler,Flushable,InputConsumer,MutableActorHandler,OutputProducer,SubFlowWrapUp,VariableMonitor,Serializable,Comparable
public class Count extends Tee implements VariableMonitor
Counts the number of tokens that pass through and meet the condition and tees off the current count every n-th token.
Input/output:
- accepts:
adams.flow.core.Unknown
- generates:
adams.flow.core.Unknown
Conditional equivalent:
adams.flow.control.ConditionalTee
-logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel) The logging level for outputting errors and debugging output. default: WARNING
-name <java.lang.String> (property: name) The name of the actor. default: Count
-annotation <adams.core.base.BaseAnnotation> (property: annotations) The annotations to attach to this actor. default:
-skip <boolean> (property: skip) If set to true, transformation is skipped and the input token is just forwarded as it is. default: false
-stop-flow-on-error <boolean> (property: stopFlowOnError) If set to true, the flow gets stopped in case this actor encounters an error; useful for critical actors. default: false
-silent <boolean> (property: silent) If enabled, then no errors are output in the console. default: false
-finish-before-stopping <boolean> (property: finishBeforeStopping) If enabled, actor first finishes processing all data before stopping. default: false
-asynchronous <boolean> (property: asynchronous) If enabled, the sub-actors get executed asynchronously rather than the flow waiting for them to finish before proceeding with execution. default: false
-tee <adams.flow.core.AbstractActor> [-tee ...] (property: actors) The actors to siphon-off the tokens to. default:
-condition <adams.flow.condition.bool.BooleanCondition> (property: condition) The boolean condition to evaluate. default: adams.flow.condition.bool.Counting
-increment-only-if-condition-met <boolean> (property: incrementOnlyIfConditionMet) If enabled, the counter gets only incremented if the condition is met; useful if you want to count tokens of a certain value. default: false
-var-name <adams.core.VariableName> (property: variableName) The variable to monitor. default: variable
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class adams.flow.control.AbstractTee
AbstractTee.TeeSwingWorker
-
-
Field Summary
Fields Modifier and Type Field Description static StringBACKUP_CURRENTthe key for storing the current counter in the backup.protected BooleanConditionm_Conditionthe condition to use.protected intm_Currentthe current count.protected booleanm_IncrementOnlyIfConditionMetonly increments the counter when the condition is met.protected VariableNamem_VariableNamethe variable to listen to.-
Fields inherited from class adams.flow.control.AbstractTee
BACKUP_INPUT, m_Actors, m_Asynchronous, m_AsynchronousWorker, m_InputToken, m_MinimumActiveActors, m_OutputToken
-
Fields inherited from class adams.flow.control.AbstractControlActor
m_Compatibility, m_PauseStateManager, m_SetUpSubActors
-
Fields inherited from class adams.flow.core.AbstractActor
m_Annotations, m_BackupState, m_DetectedObjectVariables, m_DetectedVariables, m_ErrorHandler, m_Executed, m_Executing, m_ExecutionListeningSupporter, m_FullName, m_LoggingPrefix, m_Name, m_Parent, m_ScopeHandler, m_Self, m_Silent, m_Skip, m_StopFlowOnError, m_StopMessage, m_Stopped, m_StorageHandler, m_VariablesUpdated
-
Fields inherited from class adams.core.option.AbstractOptionHandler
m_OptionManager
-
Fields inherited from class adams.core.logging.LoggingObject
m_Logger, m_LoggingIsEnabled, m_LoggingLevel
-
Fields inherited from interface adams.flow.core.Actor
FILE_EXTENSION, FILE_EXTENSION_GZ
-
-
Constructor Summary
Constructors Constructor Description Count()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Hashtable<String,Object>backupState()Backs up the current state of the actor before update the variables.protected booleancanFire()Checks whether we can process the token.protected booleancanProcessInput(Token token)Returns whether the token can be processed in the tee actor.StringconditionTipText()Returns the tip text for this property.protected TokencreateTeeToken(Token token)Creates the token to tee-off.voiddefineOptions()Adds options to the internal list of options.BooleanConditiongetCondition()Returns the condition responsible for tee-ing of the token.booleangetIncrementOnlyIfConditionMet()Returns whether the counter is only incremented if the condition is met.StringgetQuickInfo()Returns a quick info about the actor, which will be displayed in the GUI.VariableNamegetVariableName()Returns the name of the variable to monitor.StringglobalInfo()Returns a string describing the object.StringincrementOnlyIfConditionMetTipText()Returns the tip text for this property.voidinput(Token token)The method that accepts the input token and then processes it.protected StringprocessInput(Token token)Processes the token normal, i.e., not in thread.protected voidpruneBackup()Removes entries from the backup.protected voidreset()Resets the scheme.protected voidrestoreState(Hashtable<String,Object> state)Restores the state of the actor before the variables got updated.voidsetCondition(BooleanCondition value)Sets the condition responsible for tee-ing of the token.voidsetIncrementOnlyIfConditionMet(boolean value)Sets whether to increment the counter only if the condition is met.StringsetUp()Initializes the sub-actors for flow execution.voidsetVariableName(VariableName value)Sets the name of the variable to monitor.voidstopExecution()Stops the execution.voidvariableChanged(VariableChangeEvent e)Gets triggered when a variable changed (added, modified, removed).StringvariableNameTipText()Returns the tip text for this property.-
Methods inherited from class adams.flow.control.Tee
checkTeeActor, checkTeeActors, getActorHandlerInfo, getConditionalEquivalent, getTimedEquivalent, setUpTeeActors
-
Methods inherited from class adams.flow.control.AbstractTee
accepts, actorsTipText, add, add, asynchronousTipText, check, cleanUp, currentInput, doExecute, execute, finishBeforeStoppingTipText, finishedAsynchronousExecution, flushExecution, forceVariables, generates, get, getActors, getAsynchronous, getFinishBeforeStopping, getInternalActors, getMinimumActiveActors, getStoppingTimeout, hasInput, hasPendingOutput, indexOf, initialize, output, remove, removeAll, set, setActors, setAsynchronous, setFinishBeforeStopping, setLoggingLevel, setMinimumActiveActors, setSkip, setStoppingTimeout, setUpSubActors, size, stoppingTimeoutTipText, updateParent, waitForAsynchronousExecution, wrapUp
-
Methods inherited from class adams.flow.control.AbstractControlActor
active, canInspectOptions, destroy, firstActive, firstInputConsumer, flowPauseStateChanged, isPaused, isSubFlowWrappedUp, lastActive, pauseExecution, preExecute, resumeExecution, setParent, wrapUpSubFlow
-
Methods inherited from class adams.flow.core.AbstractActor
annotationsTipText, canPerformSetUpCheck, compareTo, configureLogger, equals, finalUpdateVariables, findVariables, findVariables, forCommandLine, forName, forName, getAdditionalInformation, getAnnotations, getDefaultName, getDetectedVariables, getErrorHandler, getFlowActors, getFlowExecutionListeningSupporter, getFullName, getName, getNextSibling, getParent, getParentComponent, getPreviousSibling, getRoot, getScopeHandler, getSilent, getSkip, getStopFlowOnError, getStopMessage, getStorageHandler, getVariables, handleError, handleException, hasErrorHandler, hasStopMessage, index, isBackedUp, isExecuted, isExecuting, isFinished, isHeadless, isStopped, nameTipText, performSetUpChecks, performVariableChecks, postExecute, pruneBackup, setAnnotations, setErrorHandler, setName, setSilent, setStopFlowOnError, setVariables, shallowCopy, shallowCopy, silentTipText, sizeOf, skipTipText, stopExecution, stopFlowOnErrorTipText, updateDetectedVariables, updatePrefix, updateVariables
-
Methods inherited from class adams.core.option.AbstractOptionHandler
cleanUpOptions, finishInit, getDefaultLoggingLevel, getOptionManager, loggingLevelTipText, newOptionManager, toCommandLine, toString
-
Methods inherited from class adams.core.logging.LoggingObject
getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface adams.flow.core.Actor
cleanUp, compareTo, destroy, equals, execute, findVariables, getAnnotations, getDefaultName, getDetectedVariables, getErrorHandler, getFlowExecutionListeningSupporter, getFullName, getName, getNextSibling, getParent, getParentComponent, getPreviousSibling, getRoot, getScopeHandler, getSilent, getSkip, getStopFlowOnError, getStopMessage, getStorageHandler, getVariables, handleError, hasErrorHandler, hasStopMessage, index, isExecuted, isFinished, isHeadless, isStopped, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, setVariables, shallowCopy, shallowCopy, sizeOf, stopExecution, toCommandLine, wrapUp
-
Methods inherited from interface adams.flow.core.ActorHandler
firstActive, lastActive
-
Methods inherited from interface adams.core.AdditionalInformationHandler
getAdditionalInformation
-
Methods inherited from interface adams.core.logging.LoggingLevelHandler
getLoggingLevel, setLoggingLevel
-
Methods inherited from interface adams.core.logging.LoggingSupporter
getLogger, isLoggingEnabled
-
Methods inherited from interface adams.core.option.OptionHandler
cleanUpOptions, getOptionManager
-
Methods inherited from interface adams.core.VariablesInspectionHandler
canInspectOptions
-
-
-
-
Field Detail
-
BACKUP_CURRENT
public static final String BACKUP_CURRENT
the key for storing the current counter in the backup.- See Also:
- Constant Field Values
-
m_Condition
protected BooleanCondition m_Condition
the condition to use.
-
m_IncrementOnlyIfConditionMet
protected boolean m_IncrementOnlyIfConditionMet
only increments the counter when the condition is met.
-
m_VariableName
protected VariableName m_VariableName
the variable to listen to.
-
m_Current
protected int m_Current
the current count.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfoin interfaceGlobalInfoSupporter- Overrides:
globalInfoin classTee- Returns:
- a description suitable for displaying in the gui
-
defineOptions
public void defineOptions()
Adds options to the internal list of options.- Specified by:
defineOptionsin interfaceOptionHandler- Overrides:
defineOptionsin classAbstractTee
-
getQuickInfo
public String getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.- Specified by:
getQuickInfoin interfaceActor- Specified by:
getQuickInfoin interfaceQuickInfoSupporter- Overrides:
getQuickInfoin classAbstractTee- Returns:
- null if no info available, otherwise short string
-
setCondition
public void setCondition(BooleanCondition value)
Sets the condition responsible for tee-ing of the token.- Parameters:
value- the condition
-
getCondition
public BooleanCondition getCondition()
Returns the condition responsible for tee-ing of the token.- Returns:
- the condition
-
conditionTipText
public String conditionTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setIncrementOnlyIfConditionMet
public void setIncrementOnlyIfConditionMet(boolean value)
Sets whether to increment the counter only if the condition is met.- Parameters:
value- if true then the counter is only increment if the boolean condition returns true
-
getIncrementOnlyIfConditionMet
public boolean getIncrementOnlyIfConditionMet()
Returns whether the counter is only incremented if the condition is met.- Returns:
- true if the counter is only incremented of the boolean condition returns true
-
incrementOnlyIfConditionMetTipText
public String incrementOnlyIfConditionMetTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setVariableName
public void setVariableName(VariableName value)
Sets the name of the variable to monitor.- Specified by:
setVariableNamein interfaceVariableMonitor- Parameters:
value- the name
-
getVariableName
public VariableName getVariableName()
Returns the name of the variable to monitor.- Specified by:
getVariableNamein interfaceVariableMonitor- Returns:
- the name
-
variableNameTipText
public String variableNameTipText()
Returns the tip text for this property.- Specified by:
variableNameTipTextin interfaceVariableMonitor- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
pruneBackup
protected void pruneBackup()
Removes entries from the backup.- Overrides:
pruneBackupin classAbstractActor- See Also:
AbstractActor.reset()
-
backupState
protected Hashtable<String,Object> backupState()
Backs up the current state of the actor before update the variables.- Overrides:
backupStatein classAbstractTee- Returns:
- the backup
- See Also:
AbstractActor.updateVariables(),AbstractActor.restoreState(Hashtable)
-
restoreState
protected void restoreState(Hashtable<String,Object> state)
Restores the state of the actor before the variables got updated.- Overrides:
restoreStatein classAbstractTee- Parameters:
state- the backup of the state to restore from- See Also:
AbstractActor.updateVariables(),AbstractActor.backupState()
-
reset
protected void reset()
Resets the scheme.- Overrides:
resetin classAbstractControlActor
-
variableChanged
public void variableChanged(VariableChangeEvent e)
Gets triggered when a variable changed (added, modified, removed).- Specified by:
variableChangedin interfaceActor- Specified by:
variableChangedin interfaceVariableChangeListener- Overrides:
variableChangedin classAbstractActor- Parameters:
e- the event
-
input
public void input(Token token)
The method that accepts the input token and then processes it.- Specified by:
inputin interfaceInputConsumer- Overrides:
inputin classAbstractTee- Parameters:
token- the token to accept and process
-
canFire
protected boolean canFire()
Checks whether we can process the token.- Returns:
- true if token can be processed
-
canProcessInput
protected boolean canProcessInput(Token token)
Returns whether the token can be processed in the tee actor.- Overrides:
canProcessInputin classAbstractTee- Parameters:
token- the token to process- Returns:
- true if token can be processed
-
createTeeToken
protected Token createTeeToken(Token token)
Creates the token to tee-off.- Overrides:
createTeeTokenin classAbstractTee- Parameters:
token- the input token- Returns:
- the token to tee-off
-
processInput
protected String processInput(Token token)
Processes the token normal, i.e., not in thread.- Overrides:
processInputin classAbstractTee- Parameters:
token- the token to process- Returns:
- an optional error message, null if everything OK
-
setUp
public String setUp()
Initializes the sub-actors for flow execution.- Specified by:
setUpin interfaceActor- Overrides:
setUpin classAbstractControlActor- Returns:
- null if everything is fine, otherwise error message
- See Also:
AbstractActor.reset()
-
stopExecution
public void stopExecution()
Stops the execution.- Specified by:
stopExecutionin interfaceActor- Specified by:
stopExecutionin interfaceStoppable- Overrides:
stopExecutionin classAbstractTee
-
-