Package adams.flow.control
Class TriggerOnce
-
- 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 TriggerOnce extends Trigger implements VariableMonitor
Triggers the sub-flow only once.
However, this can be reset when the monitored variable changes.
Input/output:
- accepts:
adams.flow.core.Unknown
- generates:
adams.flow.core.Unknown
-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: TriggerOnce
-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:
-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_EXECUTEDONCEthe key for storing whether the actor already got executed.protected booleanm_ExecutedOncewhether the actor was executed once.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 TriggerOnce()Default constructor.TriggerOnce(String name)Initializes the actor with the specified name.
-
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 booleancanProcessInput(Token token)Returns whether the token can be processed in the tee actor.voiddefineOptions()Adds options to the internal list of options.ClassgetConditionalEquivalent()Returns the class that is the corresponding conditional equivalent.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.protected StringprocessInput(Token token)Processes the token.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.voidsetVariableName(VariableName value)Sets the name of the variable to monitor.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.Trigger
canContainStandalones, checkTeeActor, checkTeeActors, getActorHandlerInfo, getTimedEquivalent, initialize, setUpTeeActors
-
Methods inherited from class adams.flow.control.AbstractTee
accepts, actorsTipText, add, add, asynchronousTipText, check, cleanUp, createTeeToken, currentInput, doExecute, execute, finishBeforeStoppingTipText, finishedAsynchronousExecution, flushExecution, forceVariables, generates, get, getActors, getAsynchronous, getFinishBeforeStopping, getInternalActors, getMinimumActiveActors, getStoppingTimeout, hasInput, hasPendingOutput, indexOf, input, output, remove, removeAll, set, setActors, setAsynchronous, setFinishBeforeStopping, setLoggingLevel, setMinimumActiveActors, setSkip, setStoppingTimeout, setUpSubActors, size, stopExecution, 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, setUp, 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, setUp, setVariables, shallowCopy, shallowCopy, sizeOf, stopExecution, 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_EXECUTEDONCE
public static final String BACKUP_EXECUTEDONCE
the key for storing whether the actor already got executed.- See Also:
- Constant Field Values
-
m_VariableName
protected VariableName m_VariableName
the variable to listen to.
-
m_ExecutedOnce
protected boolean m_ExecutedOnce
whether the actor was executed once.
-
-
Constructor Detail
-
TriggerOnce
public TriggerOnce()
Default constructor.
-
TriggerOnce
public TriggerOnce(String name)
Initializes the actor with the specified name.- Parameters:
name- the name to use
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfoin interfaceGlobalInfoSupporter- Overrides:
globalInfoin classTrigger- 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
-
reset
protected void reset()
Resets the scheme.- Overrides:
resetin classAbstractControlActor
-
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
-
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.
-
getConditionalEquivalent
public Class getConditionalEquivalent()
Returns the class that is the corresponding conditional equivalent.- Specified by:
getConditionalEquivalentin interfaceActorWithConditionalEquivalent- Overrides:
getConditionalEquivalentin classTrigger- Returns:
- always null
-
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()
-
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
-
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
-
processInput
protected String processInput(Token token)
Processes the token.- Overrides:
processInputin classTrigger- Parameters:
token- the token to process- Returns:
- an optional error message, null if everything OK
-
-