Class SpreadSheetTransformCells

  • All Implemented Interfaces:
    AdditionalInformationHandler, CleanUpHandler, Destroyable, GlobalInfoSupporter, LoggingLevelHandler, LoggingSupporter, OptionHandler, QuickInfoSupporter, ShallowCopySupporter<Actor>, SizeOfHandler, Stoppable, StoppableWithFeedback, VariablesInspectionHandler, InPlaceProcessing, VariableChangeListener, Actor, CallableActorUser, ErrorHandler, InputConsumer, OutputProducer, Serializable, Comparable

    public class SpreadSheetTransformCells
    extends AbstractInPlaceSpreadSheetTransformer
    implements CallableActorUser
    Finds cells in a spreadsheet and transforms them with a callable transformer.
    In case of transformers having Object or Unknown in their types of classes that they accept, no proper type can be inferred automatically. Therefore it is recommended to manually enforce the 'input type'.
    If the transformer generates a adams.data.spreadsheet.SpreadSheet object itself, this will get merged with the enclosing one: any additional columns get added and the content of the first row gets added to the row the trasnformed cell belongs to.

    Input/output:
    - accepts:
       adams.data.spreadsheet.SpreadSheet
    - generates:
       adams.data.spreadsheet.SpreadSheet


    -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: SpreadSheetTransformCells
     
    -annotation <adams.core.base.BaseText> (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
     
    -no-copy <boolean> (property: noCopy)
        If enabled, no copy of the spreadsheet is created before processing it.
        default: false
     
    -finder <adams.data.spreadsheet.cellfinder.CellFinder> (property: finder)
        The cell finder to use.
        default: adams.data.spreadsheet.cellfinder.CellRange
     
    -force-input-type <boolean> (property: forceInputType)
        If enabled, the input type is forced to a user-specified type, rather than
        trying to determine type based on data types that the callable transformer
        accepts.
        default: false
     
    -input-type <MISSING|STRING|BOOLEAN|LONG|DOUBLE|DATE|DATETIME|TIME|OBJECT> (property: inputType)
        The input type to use in case the input type is enforced.
        default: STRING
     
    -skip-missing <boolean> (property: skipMissing)
        If enabled, missing cells are skipped.
        default: true
     
    -missing-replacement-value <java.lang.String> (property: missingReplacementValue)
        The string representation of the value to use for replacing missing values.
        default:
     
    -missing-replacement-type <MISSING|STRING|BOOLEAN|LONG|DOUBLE|DATE|DATETIME|TIME|OBJECT> (property: missingReplacementType)
        The data type to use for the replacement value for missing values.
        default: STRING
     
    -transformer <adams.flow.core.CallableActorReference> (property: transformer)
        The callable transformer to apply to the located cells.
        default: unknown
     
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • BACKUP_CALLABLEACTOR

        public static final String BACKUP_CALLABLEACTOR
        the key for backing up the callable actor.
        See Also:
        Constant Field Values
      • m_Finder

        protected CellFinder m_Finder
        for locating the cells.
      • m_ForceInputType

        protected boolean m_ForceInputType
        whether to force the input type.
      • m_SkipMissing

        protected boolean m_SkipMissing
        whether to skip missing cells.
      • m_MissingReplacementValue

        protected String m_MissingReplacementValue
        the value to use instead of missing.
      • m_MissingReplacementType

        protected Cell.ContentType m_MissingReplacementType
        the data type of the replacement value.
      • m_Transformer

        protected CallableActorReference m_Transformer
        the callable transformer to apply to the cells.
      • m_CallableActor

        protected Actor m_CallableActor
        the callable actor.
      • m_Cell

        protected Cell m_Cell
        used for parsing missing value replacement strings.
      • m_Compatibility

        protected Compatibility m_Compatibility
        for compatibility comparisons.
    • Constructor Detail

      • SpreadSheetTransformCells

        public SpreadSheetTransformCells()
    • Method Detail

      • reset

        protected void reset()
        Resets the scheme.
        Overrides:
        reset in class AbstractActor
      • setFinder

        public void setFinder​(CellFinder value)
        Sets the cell finder to use.
        Parameters:
        value - the finder
      • getFinder

        public CellFinder getFinder()
        Returns the cell finder to use.
        Returns:
        the finder
      • finderTipText

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

        public void setForceInputType​(boolean value)
        Sets whether to force the input type.
        Parameters:
        value - true if to force type
      • getForceInputType

        public boolean getForceInputType()
        Returns whether to force the input type.
        Returns:
        true type forced
      • forceInputTypeTipText

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

        public void setInputType​(Cell.ContentType value)
        Sets the input type to enforce.
        Parameters:
        value - the input type
      • getInputType

        public Cell.ContentType getInputType()
        Returns the input type to enforce.
        Returns:
        the input type
      • inputTypeTipText

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

        public void setSkipMissing​(boolean value)
        Sets whether to skip missing cells.
        Parameters:
        value - true if to skip missing cells
      • getSkipMissing

        public boolean getSkipMissing()
        Returns whether missing cells are skipped.
        Returns:
        true if missing cells are skipped
      • skipMissingTipText

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

        public void setMissingReplacementValue​(String value)
        Sets the replacement value for missing values.
        Parameters:
        value - the replacement value
      • getMissingReplacementValue

        public String getMissingReplacementValue()
        Returns the replacement value for missing values.
        Returns:
        the replacement value
      • missingReplacementValueTipText

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

        public void setMissingReplacementType​(Cell.ContentType value)
        Sets the data type of the replacement value.
        Parameters:
        value - the replacement type
      • getMissingReplacementType

        public Cell.ContentType getMissingReplacementType()
        Returns the data type of the replacement value.
        Returns:
        the replacement type
      • missingReplacementTypeTipText

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

        public void setTransformer​(CallableActorReference value)
        Sets the reference to the callable transformer.
        Parameters:
        value - the reference
      • getTransformer

        public CallableActorReference getTransformer()
        Returns the reference to the callable transformer.
        Returns:
        the reference
      • transformerTipText

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

        protected Actor findCallableActor()
        Tries to find the callable actor referenced by its callable name.
        Returns:
        the callable actor or null if not found
      • hasCallableActor

        public boolean hasCallableActor()
        Checks whether a reference to the callable actor is currently available.
        Returns:
        true if a reference is available
        See Also:
        getCallableActor()
      • getCallableActor

        public Actor getCallableActor()
        Returns the currently set callable actor.
        Specified by:
        getCallableActor in interface CallableActorUser
        Returns:
        the actor, can be null
      • setUpCallableActor

        protected String setUpCallableActor()
        Configures the callable actor.
        Returns:
        null if successful, otherwise error message
      • transfer

        protected void transfer​(SpreadSheet source,
                                Cell cell)
        Transfers the spreadsheet content as new columns to the spreadsheet the row belongs to.
        Parameters:
        source - the content to transfer
        cell - the cell where the spreadsheet data originated from
      • transformCell

        protected String transformCell​(CellLocation location,
                                       SpreadSheet sheet)
        Applies the transformation to the cell.
        Parameters:
        location - the cell location to convert
        sheet - the sheet to process
        Returns:
        null if successful, otherwise error message
      • doExecute

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