Class SubProcessEvent

  • All Implemented Interfaces:
    AdditionalInformationHandler, CleanUpHandler, Destroyable, GlobalInfoSupporter, LoggingLevelHandler, LoggingSupporter, OptionHandler, Pausable, QuickInfoSupporter, ShallowCopySupporter<Actor>, SizeOfHandler, Stoppable, StoppableWithFeedback, VariablesInspectionHandler, VariableChangeListener, Actor, ActorHandler, DaemonEvent, ErrorHandler, Event, Flushable, MutableActorHandler, Serializable, Comparable

    public class SubProcessEvent
    extends AbstractStandalone
    implements MutableActorHandler, DaemonEvent, Pausable
    Executes its sub-flow after a predefined number of milli-seconds.

    -logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel)
        The logging level for outputting errors and debugging output.
        default: WARNING
        min-user-mode: Expert
     
    -name <java.lang.String> (property: name)
        The name of the actor.
        default: SubProcessEvent
     
    -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 execution at this level gets stopped in case this
        actor encounters an error; the error gets propagated; useful for critical
        actors.
        default: false
        min-user-mode: Expert
     
    -silent <boolean> (property: silent)
        If enabled, then no errors are output in the console; Note: the enclosing
        actor handler must have this enabled as well.
        default: false
        min-user-mode: Expert
     
    -event-trigger <adams.flow.standalone.subprocessevent.SubProcessEventTrigger> (property: eventTrigger)
        The event trigger to reveive data from, process it and send back via.
        default: adams.flow.standalone.subprocessevent.Null
     
    -actor <adams.flow.core.Actor> [-actor ...] (property: actors)
        The actor to use for processing the data.
        default: adams.flow.transformer.PassThrough
     
    -scope-handling-variables <EMPTY|COPY|SHARE> (property: scopeHandlingVariables)
        Defines how variables are handled in the local scope; whether to start with
        empty set, a copy of the outer scope variables or share variables with the
        outer scope.
        default: EMPTY
     
    -scope-handling-storage <EMPTY|COPY|SHARE> (property: scopeHandlingStorage)
        Defines how storage is handled in the local scope; whether to start with
        empty set, a (deep) copy of the outer scope storage or share the storage
        with the outer scope.
        default: EMPTY
     
    -finish-before-stopping <boolean> (property: finishBeforeStopping)
        If enabled, actor first finishes processing all data before stopping.
        default: false
     
    -stopping-timeout <int> (property: stoppingTimeout)
        The timeout in milliseconds when waiting for actors to finish (<= 0 for
        infinity; see 'finishBeforeStopping').
        default: -1
        minimum: -1
     
    -stopping-warning-interval <int> (property: stoppingWarningInterval)
        The interval in milliseconds to output logging warnings if the actors haven't
        stopped yet (and no stopping timeout set); no warning if <= 0.
        default: 10000
        minimum: -1
     
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • m_Busy

        protected boolean m_Busy
        whether data is currently being processed.
    • Constructor Detail

      • SubProcessEvent

        public SubProcessEvent()
    • Method Detail

      • setEventTrigger

        public void setEventTrigger​(SubProcessEventTrigger value)
        Sets the even trigger to use.
        Parameters:
        value - the trigger
      • getEventTrigger

        public SubProcessEventTrigger getEventTrigger()
        Returns the event trigger in use.
        Returns:
        the trigger
      • eventTriggerTipText

        public String eventTriggerTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setScopeHandlingVariables

        public void setScopeHandlingVariables​(ScopeHandler.ScopeHandling value)
        Sets how to handle variables into the local scope.
        Parameters:
        value - the scope handling
      • getScopeHandlingVariables

        public ScopeHandler.ScopeHandling getScopeHandlingVariables()
        Returns how variables are handled in the local scope.
        Returns:
        the scope handling
      • scopeHandlingVariablesTipText

        public String scopeHandlingVariablesTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setScopeHandlingStorage

        public void setScopeHandlingStorage​(ScopeHandler.ScopeHandling value)
        Sets how to handle storage in the local scope.
        Parameters:
        value - the scope handling
      • getScopeHandlingStorage

        public ScopeHandler.ScopeHandling getScopeHandlingStorage()
        Returns how storage is handled in the local scope.
        Returns:
        the scope handling
      • scopeHandlingStorageTipText

        public String scopeHandlingStorageTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setFinishBeforeStopping

        public void setFinishBeforeStopping​(boolean value)
        Sets whether to finish processing before stopping execution.
        Parameters:
        value - if true then actor finishes processing first
      • getFinishBeforeStopping

        public boolean getFinishBeforeStopping()
        Returns whether to finish processing before stopping execution.
        Returns:
        true if actor finishes processing first
      • finishBeforeStoppingTipText

        public String finishBeforeStoppingTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setStoppingTimeout

        public void setStoppingTimeout​(int value)
        Sets the timeout for waiting for the sub-flow to stop.
        Parameters:
        value - timeout in milliseconds (<= 0 for infinity)
      • getStoppingTimeout

        public int getStoppingTimeout()
        Returns the timeout for waiting for the sub-flow to stop.
        Returns:
        timeout in milliseconds (<= 0 for infinity)
      • stoppingTimeoutTipText

        public String stoppingTimeoutTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setStoppingWarningInterval

        public void setStoppingWarningInterval​(int value)
        Sets the interval for outputting warnings if the sub-flow hasn't stopped yet (and no stopping timeout set).
        Parameters:
        value - interval in milliseconds (<= 0 no warning)
      • getStoppingWarningInterval

        public int getStoppingWarningInterval()
        Returns the interval for outputting warnings if the sub-flow hasn't stopped yet (and no stopping timeout set).
        Returns:
        interval in milliseconds (<= 0 no warning)
      • stoppingWarningIntervalTipText

        public String stoppingWarningIntervalTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • getInternalActors

        protected LocalScopeSubProcess getInternalActors()
        Returns the internal representation of the actors.
        Returns:
        the actors
      • checkActors

        protected String checkActors​(Actor[] actors)
        Checks the cron actors before they are set via the setActors method. Returns an error message if the actors are not acceptable, null otherwise.

        Default implementation always returns null.
        Parameters:
        actors - the actors to check
        Returns:
        null if accepted, otherwise error message
      • updateParent

        protected void updateParent()
        Updates the parent of all actors in this group.
      • setActors

        public void setActors​(Actor[] value)
        Sets the actors for processing the data.
        Parameters:
        value - the actors
      • getActors

        public Actor[] getActors()
        Returns the actors for processing the data.
        Returns:
        the actors
      • actorsTipText

        public String actorsTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • size

        public int size()
        Returns the size of the group.
        Specified by:
        size in interface ActorHandler
        Returns:
        always 1
      • get

        public Actor get​(int index)
        Returns the actor at the given position.
        Specified by:
        get in interface ActorHandler
        Parameters:
        index - the position
        Returns:
        the actor
      • set

        public String set​(int index,
                          Actor actor)
        Sets the actor at the given position.
        Specified by:
        set in interface ActorHandler
        Parameters:
        index - the position
        actor - the actor to set at this position
        Returns:
        null if successful, otherwise error message
      • indexOf

        public int indexOf​(String actor)
        Returns the index of the actor.
        Specified by:
        indexOf in interface ActorHandler
        Parameters:
        actor - the name of the actor to look for
        Returns:
        the index of -1 if not found
      • add

        public String add​(Actor actor)
        Inserts the actor at the end.
        Specified by:
        add in interface MutableActorHandler
        Parameters:
        actor - the actor to insert
        Returns:
        null if successful, otherwise error message
      • add

        public String add​(int index,
                          Actor actor)
        Inserts the actor at the given position.
        Specified by:
        add in interface MutableActorHandler
        Parameters:
        index - the position
        actor - the actor to insert
        Returns:
        null if successful, otherwise error message
      • remove

        public Actor remove​(int index)
        Removes the actor at the given position and returns the removed object.
        Specified by:
        remove in interface MutableActorHandler
        Parameters:
        index - the position
        Returns:
        the removed actor
      • getActorHandlerInfo

        public ActorHandlerInfo getActorHandlerInfo()
        Returns some information about the actor handler, e.g., whether it can contain standalones and the actor execution.
        Specified by:
        getActorHandlerInfo in interface ActorHandler
        Returns:
        the info
      • active

        public int active()
        Returns the number of non-skipped actors.
        Returns:
        the 'active' actors
      • firstActive

        public Actor firstActive()
        Returns the first non-skipped actor.
        Specified by:
        firstActive in interface ActorHandler
        Returns:
        the first 'active' actor, null if none available
      • lastActive

        public Actor lastActive()
        Returns the last non-skipped actor.
        Specified by:
        lastActive in interface ActorHandler
        Returns:
        the last 'active' actor, null if none available
      • check

        public String check()
        Performs checks on the "sub-actors".
        Specified by:
        check in interface ActorHandler
        Returns:
        null if everything OK, otherwise error message
      • forceVariables

        protected void forceVariables​(Variables value)
        Updates the Variables instance in use.

        Use with caution!
        Overrides:
        forceVariables in class AbstractActor
        Parameters:
        value - the instance to use
      • doExecute

        protected String doExecute()
        Executes the flow item.
        Specified by:
        doExecute in class AbstractActor
        Returns:
        null if everything is fine, otherwise error message
      • doProcess

        protected Object doProcess​(Object data,
                                   MessageCollection errors)
        Processes the data with the sub-flow.
        Parameters:
        data - the data to process
        errors - for collecting errors
        Returns:
        the processed data, null if failed to process or no data generated
      • process

        public Object process​(Object data,
                              MessageCollection errors)
        Processes the data with the sub-flow.
        Parameters:
        data - the data to process
        errors - for collecting errors
        Returns:
        the processed data, null if failed to process or no data generated
      • isBusy

        public boolean isBusy()
        Checks whether data is currently being processed.
        Returns:
        true if data is being processed
      • pauseExecution

        public void pauseExecution()
        Pauses the execution.
        Specified by:
        pauseExecution in interface Pausable
      • isPaused

        public boolean isPaused()
        Returns whether the object is currently paused.
        Specified by:
        isPaused in interface Pausable
        Returns:
        true if object is paused
      • resumeExecution

        public void resumeExecution()
        Resumes the execution.
        Specified by:
        resumeExecution in interface Pausable
      • wrapUp

        public void wrapUp()
        Cleans up after the execution has finished. Graphical output is left untouched.
        Specified by:
        wrapUp in interface Actor
        Overrides:
        wrapUp in class AbstractActor