Package adams.flow.transformer
Class SpreadSheetStorageRowIterator
- java.lang.Object
-
- adams.core.logging.LoggingObject
-
- adams.core.logging.CustomLoggingLevelObject
-
- adams.core.option.AbstractOptionHandler
-
- adams.flow.core.AbstractActor
-
- adams.flow.transformer.AbstractTransformer
-
- adams.flow.transformer.SpreadSheetStorageRowIterator
-
- All Implemented Interfaces:
AdditionalInformationHandler,CleanUpHandler,Destroyable,GlobalInfoSupporter,LenientModeSupporter,LoggingLevelHandler,LoggingSupporter,OptionHandler,QuickInfoSupporter,ShallowCopySupporter<Actor>,SizeOfHandler,Stoppable,StoppableWithFeedback,VariablesInspectionHandler,VariableChangeListener,Actor,ErrorHandler,InputConsumer,OutputProducer,Serializable,Comparable
public class SpreadSheetStorageRowIterator extends AbstractTransformer implements LenientModeSupporter
Iterates through a defined range of rows. In each iteration the cell values of the defined column range are mapped to storage values.
By default the (cleaned up) header names of the columns are used as storage names. To avoid name clashes, a prefix can be chosen for the storage names.
The subset of columns of the row in the current iteration can be output as spreadsheet well (computationally expensive). By default, the complete spreadsheet is forwarded as is.
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: SpreadSheetStorageRowIterator
-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
-rows <adams.core.Range> (property: rows) The rows to retrieve the values from; A range is a comma-separated list of single 1-based indices or sub-ranges of indices ('start-end'); 'inv(.. .)' inverts the range '...'; column names (case-sensitive) as well as the following placeholders can be used: first, second, third, last_2, last_1, last default: first-last example: A range is a comma-separated list of single 1-based indices or sub-ranges of indices ('start-end'); 'inv(...)' inverts the range '...'; the following placeholders can be used as well: first, second, third, last_2, last_1, last-columns <adams.data.spreadsheet.SpreadSheetColumnRange> (property: columns) The columns to retrieve the values from; A range is a comma-separated list of single 1-based indices or sub-ranges of indices ('start-end'); 'inv(.. .)' inverts the range '...'; column names (case-sensitive) as well as the following placeholders can be used: first, second, third, last_2, last_1, last default: first-last example: A range is a comma-separated list of single 1-based indices or sub-ranges of indices ('start-end'); 'inv(...)' inverts the range '...'; column names (case-sensitive) as well as the following placeholders can be used: first, second, third, last_2, last_1, last-storage-prefix <java.lang.String> (property: storagePrefix) The prefix to prepend the header names with to make up the storage name. default:
-missing-value <java.lang.String> (property: missingValue) The value to use as storage value in case of missing cells. default:
-use-native <boolean> (property: useNative) If enabled, native objects are stored rather than strings. default: false
-output-modified <boolean> (property: outputModified) If enabled, the modified spreadsheet (current row with subset of columns ) is output instead of the full dataset (computationally expensive). default: false
-lenient <boolean> (property: lenient) If enabled, then no error message is generated if no rows are found. default: false
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static StringBACKUP_COLUMNSthe column indices.static StringBACKUP_QUEUEthe key for storing the queue of rows to process.static StringBACKUP_SHEETthe underlying spreadsheet.protected int[]m_ColumnIndicesthe column indices.protected SpreadSheetColumnRangem_Columnsthe range of columns to use.protected booleanm_Lenientwhether to suppress the error message if no rows selected.protected Stringm_MissingValuethe value to use for missing cells.protected booleanm_OutputModifiedwhether to output the modified spreadsheet.protected ArrayList<Integer>m_Queuethe rows to iterate.protected Rangem_Rowsthe range of rows to use.protected SpreadSheetm_Sheetthe underlying sheet.protected Stringm_StoragePrefixthe prefix for the storage names.protected booleanm_UseNativewhether to store native objects rather than strings.-
Fields inherited from class adams.flow.transformer.AbstractTransformer
BACKUP_INPUT, BACKUP_OUTPUT, m_InputToken, m_OutputToken
-
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 SpreadSheetStorageRowIterator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Class[]accepts()Returns the class that the consumer accepts.protected Hashtable<String,Object>backupState()Backs up the current state of the actor before update the variables.voidcleanUp()Cleans up after the execution has finished.StringcolumnsTipText()Returns the tip text for this property.voiddefineOptions()Adds options to the internal list of options.protected StringdoExecute()Executes the flow item.Class[]generates()Returns the class of objects that it generates.SpreadSheetColumnRangegetColumns()Returns the columns to retrieve the values from.booleangetLenient()Returns whether to suppress error message if no rows found.StringgetMissingValue()Returns the value to use for missing cells.booleangetOutputModified()Returns whether to output the modified spreadsheet (current row, subset of columns) instead of the full one.StringgetQuickInfo()Returns a quick info about the actor, which will be displayed in the GUI.RangegetRows()Returns the rows to retrieve the values from.StringgetStoragePrefix()Returns the prefix for the storage name (prefix + header).booleangetUseNative()Returns whether native objects are used rather than strings.StringglobalInfo()Returns a string describing the object.booleanhasPendingOutput()Checks whether there is pending output to be collected after executing the flow item.protected voidinitialize()Initializes the members.StringlenientTipText()Returns the tip text for this property.StringmissingValueTipText()Returns the tip text for this property.Tokenoutput()Returns the generated token.StringoutputModifiedTipText()Returns the tip text for this property.protected voidpruneBackup()Removes entries from the backup.protected voidreset()Resets the actor.protected voidrestoreState(Hashtable<String,Object> state)Restores the state of the actor before the variables got updated.StringrowsTipText()Returns the tip text for this property.voidsetColumns(SpreadSheetColumnRange value)Sets the columns to retrieve the values from.voidsetLenient(boolean value)Sets whether to suppress error message if no rows found.voidsetMissingValue(String value)Sets the value to use for missing cells.voidsetOutputModified(boolean value)Sets whether to output the modified spreadsheet (current row, subset of columns) instead of the full one.voidsetRows(Range value)Sets the rows to retrieve the values from.voidsetStoragePrefix(String value)Sets the prefix for the storage name (prefix + header).voidsetUseNative(boolean value)Sets whether to store native objects rather than strings.StringstoragePrefixTipText()Returns the tip text for this property.StringuseNativeTipText()Returns the tip text for this property.voidwrapUp()Frees up memory.-
Methods inherited from class adams.flow.transformer.AbstractTransformer
currentInput, execute, hasInput, input, postExecute
-
Methods inherited from class adams.flow.core.AbstractActor
annotationsTipText, canInspectOptions, canPerformSetUpCheck, compareTo, configureLogger, destroy, equals, 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, isBackedUp, isExecuted, isExecuting, isFinished, isHeadless, isStopped, nameTipText, performSetUpChecks, performVariableChecks, preExecute, pruneBackup, setAnnotations, setErrorHandler, setName, setParent, setSilent, setSkip, setStopFlowOnError, setUp, 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 class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface adams.flow.core.Actor
compareTo, destroy, equals, 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, setUp, 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
-
BACKUP_QUEUE
public static final String BACKUP_QUEUE
the key for storing the queue of rows to process.- See Also:
- Constant Field Values
-
BACKUP_SHEET
public static final String BACKUP_SHEET
the underlying spreadsheet.- See Also:
- Constant Field Values
-
BACKUP_COLUMNS
public static final String BACKUP_COLUMNS
the column indices.- See Also:
- Constant Field Values
-
m_Columns
protected SpreadSheetColumnRange m_Columns
the range of columns to use.
-
m_Rows
protected Range m_Rows
the range of rows to use.
-
m_StoragePrefix
protected String m_StoragePrefix
the prefix for the storage names.
-
m_MissingValue
protected String m_MissingValue
the value to use for missing cells.
-
m_UseNative
protected boolean m_UseNative
whether to store native objects rather than strings.
-
m_Sheet
protected SpreadSheet m_Sheet
the underlying sheet.
-
m_ColumnIndices
protected int[] m_ColumnIndices
the column indices.
-
m_OutputModified
protected boolean m_OutputModified
whether to output the modified spreadsheet.
-
m_Lenient
protected boolean m_Lenient
whether to suppress the error message if no rows selected.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfoin interfaceGlobalInfoSupporter- Specified by:
globalInfoin classAbstractOptionHandler- Returns:
- a description suitable for displaying in the gui
-
defineOptions
public void defineOptions()
Adds options to the internal list of options.- Specified by:
defineOptionsin interfaceOptionHandler- Overrides:
defineOptionsin classAbstractActor
-
initialize
protected void initialize()
Initializes the members.- Overrides:
initializein classAbstractActor
-
reset
protected void reset()
Resets the actor.- Overrides:
resetin classAbstractActor
-
pruneBackup
protected void pruneBackup()
Removes entries from the backup.- Overrides:
pruneBackupin classAbstractActor- See Also:
AbstractActor.reset()
-
backupState
protected Hashtable<String,Object> backupState()
Backs up the current state of the actor before update the variables.- Overrides:
backupStatein classAbstractTransformer- Returns:
- the backup
- See Also:
AbstractActor.updateVariables(),AbstractActor.restoreState(Hashtable)
-
restoreState
protected void restoreState(Hashtable<String,Object> state)
Restores the state of the actor before the variables got updated.- Overrides:
restoreStatein classAbstractTransformer- Parameters:
state- the backup of the state to restore from- See Also:
AbstractActor.updateVariables(),AbstractActor.backupState()
-
setColumns
public void setColumns(SpreadSheetColumnRange value)
Sets the columns to retrieve the values from.- Parameters:
value- the columns
-
getColumns
public SpreadSheetColumnRange getColumns()
Returns the columns to retrieve the values from.- Returns:
- the columns
-
columnsTipText
public String columnsTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setRows
public void setRows(Range value)
Sets the rows to retrieve the values from.- Parameters:
value- the rows
-
getRows
public Range getRows()
Returns the rows to retrieve the values from.- Returns:
- the rows
-
rowsTipText
public String rowsTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setStoragePrefix
public void setStoragePrefix(String value)
Sets the prefix for the storage name (prefix + header).- Parameters:
value- the prefix
-
getStoragePrefix
public String getStoragePrefix()
Returns the prefix for the storage name (prefix + header).- Returns:
- the prefix
-
storagePrefixTipText
public String storagePrefixTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setMissingValue
public void setMissingValue(String value)
Sets the value to use for missing cells.- Parameters:
value- the value for missing cells
-
getMissingValue
public String getMissingValue()
Returns the value to use for missing cells.- Returns:
- the value for missing cells
-
missingValueTipText
public String missingValueTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setUseNative
public void setUseNative(boolean value)
Sets whether to store native objects rather than strings.- Parameters:
value- true if to store native objects
-
getUseNative
public boolean getUseNative()
Returns whether native objects are used rather than strings.- Returns:
- true if native objects are used
-
useNativeTipText
public String useNativeTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setOutputModified
public void setOutputModified(boolean value)
Sets whether to output the modified spreadsheet (current row, subset of columns) instead of the full one.- Parameters:
value- true if to output modified spreadsheet
-
getOutputModified
public boolean getOutputModified()
Returns whether to output the modified spreadsheet (current row, subset of columns) instead of the full one.- Returns:
- true if to output modified spreadsheet
-
outputModifiedTipText
public String outputModifiedTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setLenient
public void setLenient(boolean value)
Sets whether to suppress error message if no rows found.- Specified by:
setLenientin interfaceLenientModeSupporter- Parameters:
value- true if to suppress
-
getLenient
public boolean getLenient()
Returns whether to suppress error message if no rows found.- Specified by:
getLenientin interfaceLenientModeSupporter- Returns:
- true if to suppress
-
lenientTipText
public String lenientTipText()
Returns the tip text for this property.- Specified by:
lenientTipTextin interfaceLenientModeSupporter- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
getQuickInfo
public String getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.- Specified by:
getQuickInfoin interfaceActor- Specified by:
getQuickInfoin interfaceQuickInfoSupporter- Overrides:
getQuickInfoin classAbstractActor- Returns:
- null if no info available, otherwise short string
-
accepts
public Class[] accepts()
Returns the class that the consumer accepts.- Specified by:
acceptsin interfaceInputConsumer- Returns:
- the Class of objects that can be processed
-
generates
public Class[] generates()
Returns the class of objects that it generates.- Specified by:
generatesin interfaceOutputProducer- Returns:
- the Class of the generated tokens
-
doExecute
protected String doExecute()
Executes the flow item.- Specified by:
doExecutein classAbstractActor- Returns:
- null if everything is fine, otherwise error message
-
hasPendingOutput
public boolean hasPendingOutput()
Checks whether there is pending output to be collected after executing the flow item.- Specified by:
hasPendingOutputin interfaceOutputProducer- Overrides:
hasPendingOutputin classAbstractTransformer- Returns:
- true if there is pending output
-
output
public Token output()
Returns the generated token.- Specified by:
outputin interfaceOutputProducer- Overrides:
outputin classAbstractTransformer- Returns:
- the generated token
-
wrapUp
public void wrapUp()
Frees up memory.- Specified by:
wrapUpin interfaceActor- Overrides:
wrapUpin classAbstractTransformer
-
cleanUp
public void cleanUp()
Cleans up after the execution has finished. Also removes graphical components.- Specified by:
cleanUpin interfaceActor- Specified by:
cleanUpin interfaceCleanUpHandler- Overrides:
cleanUpin classAbstractActor
-
-