Class RSource

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

    public class RSource
    extends adams.flow.source.AbstractSource
    implements adams.core.io.EncodingSupporter
    Carries out an R function on the input script and returns data of a particular type.

    Input/output:
    - generates:
       java.lang.Integer


    -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: RSource
     
    -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
     
    -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
     
    -script <adams.core.scripting.RScript> (property: inlineScript)
        Script to pass into r
        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
     
    -line-by-line <boolean> (property: lineByLine)
        If enabled, the script gets split into lines and evaluated one line at a
        time (useful for debugging).
        default: true
     
    -return-type <Integer|Double|DoubleArray|DoubleMatrix|String|DataFrame> (property: returnType)
        Data type of returned object
        default: Integer
     
    -data-frame-columns <java.lang.String> (property: dataFrameColumns)
        The comma-separated list of dataframe column names to return only (if return 
        type is DataFrame)
        default: 
     
    Author:
    rsmith, FracPete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected String m_DataFrameColumns
      the comma-separated list of dataframe column names in case of {@see RDataType#DataFrame}.
      protected adams.core.base.BaseCharset m_Encoding
      the encoding to use.
      protected RScript m_InlineScript
      Script to pass to r
      protected boolean m_LineByLine
      whether to evaluate line by line.
      protected org.rosuda.REngine.Rserve.RConnection m_RConn
      Connection to Rserve
      protected Object m_returnedObject
      Object returned from r
      protected RDataType m_returnType
      Data type of object returned from r script
      protected Rserve m_Rserve
      the Rserve actor.
      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.
      • 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
      RSource()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      String dataFrameColumnsTipText()
      A description of the return type.
      void defineOptions()
      Adds to the internal list of options.
      protected String doExecute()
      Connects with Rserve and feeds it the script and returns the resulting data.
      String encodingTipText()
      Returns the tip text for this property.
      Class[] generates()
      Returns the datatype this flow is set to return.
      String getDataFrameColumns()
      Returns the comma-separated list of dataframe column names to retrieve only.
      adams.core.base.BaseCharset getEncoding()
      Returns the encoding to use for the script file.
      RScript getInlineScript()
      Returns to script.
      boolean getLineByLine()
      Returns whether to evaluate the script line by line.
      String getQuickInfo()
      Returns a quick info about the actor, which will be displayed in the GUI.
      RDataType getReturnType()
      Returns the return type.
      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 globalInfo()
      Description of the flow.
      boolean hasPendingOutput()
      Returns true if the is pending output.
      String inlineScriptTipText()
      Returns a description of the script.
      String lineByLineTipText()
      Returns the tip text for this property.
      adams.flow.core.Token output()
      Turns the returned object into a token to be passed through the system.
      String returnTypeTipText()
      A description of the return type.
      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 setDataFrameColumns​(String value)
      Sets the comma-separated list of dataframe column names to retrieve only.
      void setEncoding​(adams.core.base.BaseCharset value)
      Sets the encoding to use for the script file.
      void setInlineScript​(RScript val)
      Sets the script to be fed to R.
      void setLineByLine​(boolean value)
      Sets whether to evaluate the script line by line.
      void setReturnType​(RDataType val)
      Determines the return type of the flow.
      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()
      Sets up the connection to Rserve.
      void wrapUp()
      Closes the Rserve connection as the flow finishes.
      • Methods inherited from class adams.flow.core.AbstractActor

        annotationsTipText, backupState, 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, postExecute, preExecute, pruneBackup, pruneBackup, reset, restoreState, 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_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_returnType

        protected RDataType m_returnType
        Data type of object returned from r script
      • m_DataFrameColumns

        protected String m_DataFrameColumns
        the comma-separated list of dataframe column names in case of {@see RDataType#DataFrame}.
      • 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_LineByLine

        protected boolean m_LineByLine
        whether to evaluate line by line.
      • m_returnedObject

        protected Object m_returnedObject
        Object returned from r
      • m_RConn

        protected org.rosuda.REngine.Rserve.RConnection m_RConn
        Connection to Rserve
      • m_Rserve

        protected Rserve m_Rserve
        the Rserve actor.
    • Constructor Detail

      • RSource

        public RSource()
    • Method Detail

      • globalInfo

        public String globalInfo()
        Description of the flow.
        Specified by:
        globalInfo in interface adams.core.GlobalInfoSupporter
        Specified by:
        globalInfo in class adams.core.option.AbstractOptionHandler
      • 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
      • 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 val)
        Sets the script to be fed to R.
        Parameters:
        val - the script to be fed to R
      • getInlineScript

        public RScript getInlineScript()
        Returns to script.
        Returns:
        string version of the script
      • inlineScriptTipText

        public String inlineScriptTipText()
        Returns a description of the script.
        Returns:
        string description
      • 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.
      • setLineByLine

        public void setLineByLine​(boolean value)
        Sets whether to evaluate the script line by line.
        Parameters:
        value - true if line-by-line
      • getLineByLine

        public boolean getLineByLine()
        Returns whether to evaluate the script line by line.
        Returns:
        true if line-by-line
      • lineByLineTipText

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

        public void setReturnType​(RDataType val)
        Determines the return type of the flow.
        Parameters:
        val - the return type
      • getReturnType

        public RDataType getReturnType()
        Returns the return type.
        Returns:
        the return type
      • returnTypeTipText

        public String returnTypeTipText()
        A description of the return type.
        Returns:
        string description
      • setDataFrameColumns

        public void setDataFrameColumns​(String value)
        Sets the comma-separated list of dataframe column names to retrieve only.
        Parameters:
        value - the comma-separated list
      • getDataFrameColumns

        public String getDataFrameColumns()
        Returns the comma-separated list of dataframe column names to retrieve only.
        Returns:
        the comma-separated list
      • dataFrameColumnsTipText

        public String dataFrameColumnsTipText()
        A description of the return type.
        Returns:
        string description
      • 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
      • generates

        public Class[] generates()
        Returns the datatype this flow is set to return.
        Specified by:
        generates in interface adams.flow.core.OutputProducer
      • output

        public adams.flow.core.Token output()
        Turns the returned object into a token to be passed through the system.
        Specified by:
        output in interface adams.flow.core.OutputProducer
      • hasPendingOutput

        public boolean hasPendingOutput()
        Returns true if the is pending output.
        Specified by:
        hasPendingOutput in interface adams.flow.core.OutputProducer
      • setUp

        public String setUp()
        Sets up the connection to Rserve.
        Specified by:
        setUp in interface adams.flow.core.Actor
        Overrides:
        setUp in class adams.flow.core.AbstractActor
      • doExecute

        protected String doExecute()
        Connects with Rserve and feeds it the script and returns the resulting data.
        Specified by:
        doExecute in class adams.flow.core.AbstractActor
      • wrapUp

        public void wrapUp()
        Closes the Rserve connection as the flow finishes.
        Specified by:
        wrapUp in interface adams.flow.core.Actor
        Overrides:
        wrapUp in class adams.flow.core.AbstractActor