Class RenjinSink

  • All Implemented Interfaces:
    adams.core.AdditionalInformationHandler, adams.core.CleanUpHandler, adams.core.Destroyable, adams.core.GlobalInfoSupporter, adams.core.io.EncodingSupporter, adams.core.logging.LoggingLevelHandler, adams.core.logging.LoggingSupporter, adams.core.option.OptionHandler, adams.core.QuickInfoSupporter, adams.core.ShallowCopySupporter<adams.flow.core.Actor>, adams.core.SizeOfHandler, adams.core.Stoppable, adams.core.StoppableWithFeedback, adams.core.VariablesInspectionHandler, adams.event.VariableChangeListener, adams.flow.core.Actor, adams.flow.core.ErrorHandler, adams.flow.core.InputConsumer, Serializable, Comparable

    public class RenjinSink
    extends adams.flow.sink.AbstractSink
    implements adams.core.io.EncodingSupporter
    Adds the object passing through to the Renjin context and executes the script.

    Input/output:
    - accepts:
       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: RenjinSink
     
    -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
     
    -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
     
    -variable-name <java.lang.String> (property: variableName)
        The variable name to use in the Renjin context.
        default: x
     
    -script-file <adams.core.io.PlaceholderFile> (property: scriptFile)
        The script file to load and execute.
        default: ${CWD}
     
    -encoding <adams.core.base.BaseCharset> (property: encoding)
        The type of encoding to use when loading the script file.
        default: Default
     
    -inline-script <adams.core.scripting.RScript> (property: inlineScript)
        The inline script to execute (when no script file supplied).
        default:
     
    -placeholder <boolean> (property: scriptContainsPlaceholder)
        Set this to true to enable automatic placeholder expansion in the script.
        default: false
     
    -variable <boolean> (property: scriptContainsVariable)
        Set this to true to enable automatic variable expansion in the script.
        default: false
     
    Author:
    FracPete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected RenjinContext m_Context
      the context.
      protected adams.core.base.BaseCharset m_Encoding
      the encoding to use.
      protected RScript m_InlineScript
      Script to pass to r
      protected boolean m_ScriptContainsPlaceholder
      whether the script contains a placeholder, which needs to be expanded first.
      protected boolean m_ScriptContainsVariable
      whether the script contains a variable, which needs to be expanded first.
      protected adams.core.io.PlaceholderFile m_ScriptFile
      the script.
      protected String m_VariableName
      the name to use in the context.
      • Fields inherited from class adams.flow.sink.AbstractSink

        BACKUP_INPUT, m_InputToken
      • 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
      RenjinSink()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Class[] accepts()
      Returns the class that the consumer accepts.
      void defineOptions()
      Adds to the internal list of options.
      protected String doExecute()
      Executes the flow, including reading the input and returning R's output.
      String encodingTipText()
      Returns the tip text for this property.
      adams.core.base.BaseCharset getEncoding()
      Returns the encoding to use for the script file.
      RScript getInlineScript()
      Returns to script to execute (when no script file supplied).
      String getQuickInfo()
      Returns a quick info about the actor, which will be displayed in the GUI.
      boolean getScriptContainsPlaceholder()
      Returns whether the scripts contains a placeholder which needs to be expanded first.
      boolean getScriptContainsVariable()
      Returns whether the script contains a variable which needs to be expanded first.
      adams.core.io.PlaceholderFile getScriptFile()
      Gets the script file.
      String getVariableName()
      Returns the variable name to use in the Renjin context.
      String globalInfo()
      Returns a string describing the object.
      String inlineScriptTipText()
      Returns the tip text for this property.
      String scriptContainsPlaceholderTipText()
      Returns the tip text for this property.
      String scriptContainsVariableTipText()
      Returns the tip text for this property.
      String scriptFileTipText()
      Returns the tip text for this property.
      void setEncoding​(adams.core.base.BaseCharset value)
      Sets the encoding to use for the script file.
      void setInlineScript​(RScript value)
      Sets the script to execute (when no script file supplied).
      void setScriptContainsPlaceholder​(boolean value)
      Sets whether the script contains a placeholder which needs to be expanded first.
      void setScriptContainsVariable​(boolean value)
      Sets whether the script contains a variable which needs to be expanded first.
      void setScriptFile​(adams.core.io.PlaceholderFile value)
      Sets the script file.
      String setUp()
      Initializes the item for flow execution.
      void setVariableName​(String value)
      Sets the variable name to use in the Renjin context.
      String variableNameTipText()
      Returns the tip text for this property.
      • Methods inherited from class adams.flow.sink.AbstractSink

        backupState, currentInput, hasInput, input, postExecute, restoreState, wrapUp
      • Methods inherited from class adams.flow.core.AbstractActor

        annotationsTipText, canInspectOptions, canPerformSetUpCheck, cleanUp, compareTo, configureLogger, destroy, equals, execute, finalUpdateVariables, findVariables, findVariables, forceVariables, 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, initialize, isBackedUp, isExecuted, isExecuting, isFinished, isHeadless, isStopped, nameTipText, performSetUpChecks, performVariableChecks, preExecute, pruneBackup, pruneBackup, reset, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, setVariables, shallowCopy, shallowCopy, silentTipText, sizeOf, skipTipText, stopExecution, stopExecution, stopFlowOnErrorTipText, updateDetectedVariables, updatePrefix, updateVariables, variableChanged
      • Methods inherited from class adams.core.option.AbstractOptionHandler

        cleanUpOptions, finishInit, getDefaultLoggingLevel, getOptionManager, loggingLevelTipText, newOptionManager, setLoggingLevel, toCommandLine, toString
      • Methods inherited from class adams.core.logging.LoggingObject

        getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled
      • 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, stopExecution, toCommandLine, variableChanged
      • 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

      • m_VariableName

        protected String m_VariableName
        the name to use in the context.
      • m_ScriptFile

        protected adams.core.io.PlaceholderFile m_ScriptFile
        the script.
      • m_Encoding

        protected adams.core.base.BaseCharset m_Encoding
        the encoding to use.
      • m_InlineScript

        protected RScript m_InlineScript
        Script to pass to r
      • m_ScriptContainsPlaceholder

        protected boolean m_ScriptContainsPlaceholder
        whether the script contains a placeholder, which needs to be expanded first.
      • m_ScriptContainsVariable

        protected boolean m_ScriptContainsVariable
        whether the script contains a variable, which needs to be expanded first.
      • m_Context

        protected transient RenjinContext m_Context
        the context.
    • Constructor Detail

      • RenjinSink

        public RenjinSink()
    • Method Detail

      • globalInfo

        public String globalInfo()
        Returns a string describing the object.
        Specified by:
        globalInfo in interface adams.core.GlobalInfoSupporter
        Specified by:
        globalInfo in class adams.core.option.AbstractOptionHandler
        Returns:
        a description suitable for displaying in the gui
      • defineOptions

        public void defineOptions()
        Adds to the internal list of options.
        Specified by:
        defineOptions in interface adams.core.option.OptionHandler
        Overrides:
        defineOptions in class adams.flow.core.AbstractActor
      • setVariableName

        public void setVariableName​(String value)
        Sets the variable name to use in the Renjin context.
        Parameters:
        value - the name
      • getVariableName

        public String getVariableName()
        Returns the variable name to use in the Renjin context.
        Returns:
        the name
      • variableNameTipText

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

        public void setScriptFile​(adams.core.io.PlaceholderFile value)
        Sets the script file.
        Parameters:
        value - the script
      • getScriptFile

        public adams.core.io.PlaceholderFile getScriptFile()
        Gets the script file.
        Returns:
        the script
      • scriptFileTipText

        public String scriptFileTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • setEncoding

        public void setEncoding​(adams.core.base.BaseCharset value)
        Sets the encoding to use for the script file.
        Specified by:
        setEncoding in interface adams.core.io.EncodingSupporter
        Parameters:
        value - the encoding, e.g. "UTF-8" or "UTF-16", empty string for default
      • getEncoding

        public adams.core.base.BaseCharset getEncoding()
        Returns the encoding to use for the script file.
        Specified by:
        getEncoding in interface adams.core.io.EncodingSupporter
        Returns:
        the encoding, e.g. "UTF-8" or "UTF-16", empty string for default
      • encodingTipText

        public String encodingTipText()
        Returns the tip text for this property.
        Specified by:
        encodingTipText in interface adams.core.io.EncodingSupporter
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setInlineScript

        public void setInlineScript​(RScript value)
        Sets the script to execute (when no script file supplied).
        Parameters:
        value - the script
      • getInlineScript

        public RScript getInlineScript()
        Returns to script to execute (when no script file supplied).
        Returns:
        the script
      • inlineScriptTipText

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

        public void setScriptContainsPlaceholder​(boolean value)
        Sets whether the script contains a placeholder which needs to be expanded first.
        Parameters:
        value - true if script contains a placeholder
      • getScriptContainsPlaceholder

        public boolean getScriptContainsPlaceholder()
        Returns whether the scripts contains a placeholder which needs to be expanded first.
        Returns:
        true if script contains a placeholder
      • scriptContainsPlaceholderTipText

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

        public void setScriptContainsVariable​(boolean value)
        Sets whether the script contains a variable which needs to be expanded first.
        Parameters:
        value - true if script contains a variable
      • getScriptContainsVariable

        public boolean getScriptContainsVariable()
        Returns whether the script contains a variable which needs to be expanded first.
        Returns:
        true if script contains a variable
      • scriptContainsVariableTipText

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

        public Class[] accepts()
        Returns the class that the consumer accepts.
        Specified by:
        accepts in interface adams.flow.core.InputConsumer
        Returns:
        the Class of objects that can be processed
      • getQuickInfo

        public String getQuickInfo()
        Returns a quick info about the actor, which will be displayed in the GUI.
        Specified by:
        getQuickInfo in interface adams.flow.core.Actor
        Specified by:
        getQuickInfo in interface adams.core.QuickInfoSupporter
        Overrides:
        getQuickInfo in class adams.flow.core.AbstractActor
        Returns:
        null if no info available, otherwise short string
      • setUp

        public String setUp()
        Initializes the item for flow execution.
        Specified by:
        setUp in interface adams.flow.core.Actor
        Overrides:
        setUp in class adams.flow.core.AbstractActor
        Returns:
        null if everything is fine, otherwise error message
      • doExecute

        protected String doExecute()
        Executes the flow, including reading the input and returning R's output.
        Specified by:
        doExecute in class adams.flow.core.AbstractActor