Class ContainerValuePicker

  • 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, Serializable, Comparable

    public class ContainerValuePicker
    extends Tee
    Picks a named value from any container object and tees it off.
    With the 'switch-outputs' option it is possible to forward the named value and teeing off the container instead.
    If 'ignore missing' is turned off, any value that cannot be found will generate an error logging message and, in case of switched outputs, an actual error.

    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: ContainerValuePicker
     
    -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: 
     
    -value <java.lang.String> (property: valueName)
        The name of the value to tee off.
        default: Classification
     
    -switch-outputs <boolean> (property: switchOutputs)
        Whether to switch the output for the tee actors with the one normally being 
        forwarded.
        default: false
     
    -ignore-missing <boolean> (property: ignoreMissing)
        If enabled, quietly ignores missing values; otherwise a logging message 
        is generated or, in case of switched outputs, an error message.
        default: true
     
    Version:
    $Revision$
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • m_ValueName

        protected String m_ValueName
        the value to pick.
      • m_SwitchOutputs

        protected boolean m_SwitchOutputs
        whether to switch outputs.
      • m_IgnoreMissing

        protected boolean m_IgnoreMissing
        whether to quietly ignored missing values.
    • Constructor Detail

      • ContainerValuePicker

        public ContainerValuePicker()
    • Method Detail

      • setValueName

        public void setValueName​(String value)
        Sets the name of the value to tee off.
        Parameters:
        value - the name
      • getValueName

        public String getValueName()
        Returns the name of the value to tee off.
        Returns:
        the name
      • valueNameTipText

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

        public void setSwitchOutputs​(boolean value)
        Sets whether to switch regular and tee output.
        Parameters:
        value - if true then outputs are switched
      • getSwitchOutputs

        public boolean getSwitchOutputs()
        Returns whether the regular and tee output are switched.
        Returns:
        true if the outputs are switched
      • switchOutputsTipText

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

        public void setIgnoreMissing​(boolean value)
        Sets whether to quietly ignore missing values.
        Parameters:
        value - if true then missing values will get ignored
      • getIgnoreMissing

        public boolean getIgnoreMissing()
        Returns whether to quietly ignore missing values.
        Returns:
        true if to quietly ignore missing values
      • ignoreMissingTipText

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

        protected Token extract​(Token token)
        Extracts the container value, if possible.
        Parameters:
        token - the token to get the container value from
      • createTeeToken

        protected Token createTeeToken​(Token token)
        Creates the token to tee-off.
        Overrides:
        createTeeToken in class AbstractTee
        Parameters:
        token - the input token
        Returns:
        the token to tee-off or null if nothing available
      • canProcessToken

        protected boolean canProcessToken​(Token token)
        Checks whether we can process the token.
        Parameters:
        token - the token to check
        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:
        canProcessInput in class AbstractTee
        Parameters:
        token - the token to process
        Returns:
        true if token can be processed
      • doExecute

        protected String doExecute()
        Executes the flow item.
        Overrides:
        doExecute in class AbstractTee
        Returns:
        null if everything is fine, otherwise error message