Package adams.flow.transformer
Class AbstractReportDbWriter<T extends Report,I>
-
- Type Parameters:
T
- the type of report to handleI
- the type of ID used
- All Implemented Interfaces:
AdditionalInformationHandler
,CleanUpHandler
,Destroyable
,GlobalInfoSupporter
,LoggingLevelHandler
,LoggingSupporter
,OptionHandler
,QuickInfoSupporter
,ShallowCopySupporter<Actor>
,SizeOfHandler
,Stoppable
,StoppableWithFeedback
,VariablesInspectionHandler
,DatabaseConnectionUser
,VariableChangeListener
,Actor
,ErrorHandler
,InputConsumer
,OutputProducer
,Serializable
,Comparable
- Direct Known Subclasses:
AbstractReportDbWriterByDBID
,AbstractReportDbWriterByID
public abstract class AbstractReportDbWriter<T extends Report,I> extends AbstractDbTransformer
Abstract ancestor for actors that write reports to the database.- Version:
- $Revision$
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
m_Merge
whether to merge the current and existing report.protected Field[]
m_OverwriteFields
the fields to overwrite in "merge" mode.protected AbstractReportPreProcessor
m_PreProcessor
the pre-processor to apply to the data.protected boolean
m_RemoveExisting
whether to remove existing reports (i.e., completely remove them from the DB).protected boolean
m_StandaloneReports
whether to allow reports that are not associated with a data container.-
Fields inherited from class adams.flow.transformer.AbstractDbTransformer
m_DatabaseConnection
-
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 AbstractReportDbWriter()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract Class[]
accepts()
Returns the class that the consumer accepts.protected abstract boolean
checkID(I id)
Checks whether the ID is valid.void
defineOptions()
Adds options to the internal list of options.protected abstract I
extractID(T report)
Extracts the ID from the report.boolean
getMerge()
Returns whether the information of current report is added to an existing one.Field[]
getOverwriteFields()
Returns the fields to overwrite in "merge" mode.AbstractReportPreProcessor
getPreProcessor()
Returns the pre-processor in use.String
getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.boolean
getRemoveExisting()
Returns whether existing reports are removed first.protected abstract ReportProvider<T,I>
getReportProvider()
Returns the report provider to use for writing the reports to the database.boolean
getStandaloneReports()
Returns whether reports don't have to be associated with a data container.String
mergeTipText()
Returns the tip text for this property.String
overwriteFieldsTipText()
Returns the tip text for this property.String
preProcessorTipText()
Returns the tip text for this property.protected String
queryDatabase()
Executes the flow item.String
removeExistingTipText()
Returns the tip text for this property.void
setMerge(boolean value)
Sets whether the information of the current report is added to an existing one.void
setOverwriteFields(Field[] value)
Sets the fields to overwrite in "merge" mode.void
setPreProcessor(AbstractReportPreProcessor value)
Sets the pre-processor to apply to the data.void
setRemoveExisting(boolean value)
Sets whether existing reports are removed first.void
setStandaloneReports(boolean value)
Sets whether reports are allowed that are not associated with a data container.String
standaloneReportsTipText()
Returns the tip text for this property.-
Methods inherited from class adams.flow.transformer.AbstractDbTransformer
doExecute, getDatabaseConnection, getDefaultDatabaseConnection, initialize, setUpDatabaseConnection, wrapUp
-
Methods inherited from class adams.flow.transformer.AbstractTransformer
backupState, currentInput, execute, hasInput, hasPendingOutput, input, output, postExecute, restoreState
-
Methods inherited from class adams.flow.core.AbstractActor
annotationsTipText, canInspectOptions, canPerformSetUpCheck, cleanUp, 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, pruneBackup, reset, 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, globalInfo, 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
cleanUp, 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.flow.core.OutputProducer
generates
-
Methods inherited from interface adams.core.VariablesInspectionHandler
canInspectOptions
-
-
-
-
Field Detail
-
m_RemoveExisting
protected boolean m_RemoveExisting
whether to remove existing reports (i.e., completely remove them from the DB).
-
m_Merge
protected boolean m_Merge
whether to merge the current and existing report.
-
m_OverwriteFields
protected Field[] m_OverwriteFields
the fields to overwrite in "merge" mode.
-
m_StandaloneReports
protected boolean m_StandaloneReports
whether to allow reports that are not associated with a data container.
-
m_PreProcessor
protected AbstractReportPreProcessor m_PreProcessor
the pre-processor to apply to the data.
-
-
Method Detail
-
defineOptions
public void defineOptions()
Adds options to the internal list of options.- Specified by:
defineOptions
in interfaceOptionHandler
- Overrides:
defineOptions
in classAbstractActor
-
setRemoveExisting
public void setRemoveExisting(boolean value)
Sets whether existing reports are removed first.- Parameters:
value
- if true then existing reports will be removed first
-
getRemoveExisting
public boolean getRemoveExisting()
Returns whether existing reports are removed first.- Returns:
- true if are removed first
-
removeExistingTipText
public String removeExistingTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setMerge
public void setMerge(boolean value)
Sets whether the information of the current report is added to an existing one.- Parameters:
value
- if true then information is added
-
getMerge
public boolean getMerge()
Returns whether the information of current report is added to an existing one.- Returns:
- true if information is added
-
mergeTipText
public String mergeTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setOverwriteFields
public void setOverwriteFields(Field[] value)
Sets the fields to overwrite in "merge" mode.- Parameters:
value
- the fields
-
getOverwriteFields
public Field[] getOverwriteFields()
Returns the fields to overwrite in "merge" mode.- Returns:
- the fields
-
overwriteFieldsTipText
public String overwriteFieldsTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setStandaloneReports
public void setStandaloneReports(boolean value)
Sets whether reports are allowed that are not associated with a data container.- Parameters:
value
- if true then reports don't have to be associated with a data container
-
getStandaloneReports
public boolean getStandaloneReports()
Returns whether reports don't have to be associated with a data container.- Returns:
- true if reports don't have to be associated with a data container
-
standaloneReportsTipText
public String standaloneReportsTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setPreProcessor
public void setPreProcessor(AbstractReportPreProcessor value)
Sets the pre-processor to apply to the data.- Parameters:
value
- the pre-processor
-
getPreProcessor
public AbstractReportPreProcessor getPreProcessor()
Returns the pre-processor in use.- Returns:
- the pre-processor
-
preProcessorTipText
public String preProcessorTipText()
Returns the tip text for this property.- 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:
getQuickInfo
in interfaceActor
- Specified by:
getQuickInfo
in interfaceQuickInfoSupporter
- Overrides:
getQuickInfo
in classAbstractActor
- Returns:
- null if no info available, otherwise short string
-
accepts
public abstract Class[] accepts()
Returns the class that the consumer accepts.- Returns:
- the report class
-
getReportProvider
protected abstract ReportProvider<T,I> getReportProvider()
Returns the report provider to use for writing the reports to the database.- Returns:
- the provider to use
-
extractID
protected abstract I extractID(T report)
Extracts the ID from the report.- Parameters:
report
- the report to extract the ID from- Returns:
- the ID
-
checkID
protected abstract boolean checkID(I id)
Checks whether the ID is valid.- Parameters:
id
- the ID to check- Returns:
- true if valid
-
queryDatabase
protected String queryDatabase()
Executes the flow item.- Specified by:
queryDatabase
in classAbstractDbTransformer
- Returns:
- null if everything is fine, otherwise error message
-
-