Package adams.flow.sink
Class WekaDatabaseWriter
- java.lang.Object
-
- adams.core.logging.LoggingObject
-
- adams.core.logging.CustomLoggingLevelObject
-
- adams.core.option.AbstractOptionHandler
-
- adams.flow.core.AbstractActor
-
- adams.flow.sink.AbstractSink
-
- adams.flow.sink.WekaDatabaseWriter
-
- All Implemented Interfaces:
adams.core.AdditionalInformationHandler,adams.core.CleanUpHandler,adams.core.Destroyable,adams.core.GlobalInfoSupporter,adams.core.logging.LoggingLevelHandler,adams.core.logging.LoggingSupporter,adams.core.option.OptionHandler,adams.core.PasswordSupporter,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 WekaDatabaseWriter extends adams.flow.sink.AbstractSink implements adams.core.PasswordSupporterActor for saving a weka.core.Instances object in a database.
The relation name of the incoming dataset can be used to replace the current filename (path and extension are kept).
Input/output:
- accepts:
weka.core.Instances
weka.core.Instance
Valid options are:
-D <int> (property: debugLevel) The greater the number the more additional info the scheme may output to the console (0 = off). default: 0 minimum: 0
-name <java.lang.String> (property: name) The name of the actor. default: WekaDatabaseWriter
-annotation <adams.core.base.BaseText> (property: annotations) The annotations to attach to this actor. default:
-skip (property: skip) If set to true, transformation is skipped and the input token is just forwarded as it is.
-stop-flow-on-error (property: stopFlowOnError) If set to true, the flow gets stopped in case this actor encounters an error; useful for critical actors.
-url <java.lang.String> (property: URL) The JDBC URL of the database to query.
-user <java.lang.String> (property: user) The user for connecting to the database.
-password <adams.core.base.BasePassword> (property: password) The password for the database user.
-table <java.lang.String> (property: tableName) The name of the table to store the data in. default: weka
-auto-key-generation (property: autoKeyGeneration) If set to true, a primary key is automatically generated.
-use-relation-as-table (property: useRelationNameAsTable) If set to true, the relation name is used as table name.
-custom-props <adams.core.io.PlaceholderFile> (property: customPropsFile) Custom properties file to override the default database settings, eg, for accessing a different type of database; ignored if pointing to a directory. default: .
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static StringBACKUP_SAVERthe key for storing the current incremental clusterer in the backup.protected booleanm_AutoKeyGenerationwhether to automatically generate a primary key.protected adams.core.io.PlaceholderFilem_CustomPropsFilea custom properties file to use instead of default one.protected adams.core.base.BasePasswordm_Passwordthe password for the user used for connecting.protected weka.core.converters.DatabaseSaverm_Saverthe database saver.protected Stringm_TableNameprotected the name of the table to store the data in.protected Stringm_URLthe database URL to query.protected Stringm_Userthe database user to use for connecting.protected booleanm_UseRelationNameAsTablewhether to use the relation as table name.-
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
-
-
Constructor Summary
Constructors Constructor Description WekaDatabaseWriter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Class[]accepts()Returns the class that the consumer accepts.StringautoKeyGenerationTipText()Returns the tip text for this property.protected Hashtable<String,Object>backupState()Backs up the current state of the actor before update the variables.StringcustomPropsFileTipText()Returns the tip text for this property.voiddefineOptions()Adds options to the internal list of options.protected StringdoExecute()Executes the flow item.booleangetAutoKeyGeneration()Returns whether a primary key is automatically generated.adams.core.io.PlaceholderFilegetCustomPropsFile()Returns the custom properties file to use for initializing the database setup instead of WEKA's default one.adams.core.base.BasePasswordgetPassword()Returns the database password.StringgetQuickInfo()Returns a quick info about the actor, which will be displayed in the GUI.StringgetTableName()Returns the table name to store the data in.StringgetURL()Returns the query to execute.StringgetUser()Returns the database user.booleangetUseRelationNameAsTable()Returns whether to output single Instance objects or just one Instances object.StringglobalInfo()Returns a string describing the object.StringpasswordTipText()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.voidsetAutoKeyGeneration(boolean value)Sets whether to automatically generate a primary key.voidsetCustomPropsFile(adams.core.io.PlaceholderFile value)Sets the custom properties file to use for initializing the database setup instead of WEKA's default one.voidsetPassword(adams.core.base.BasePassword value)Sets the database password.voidsetTableName(String value)Sets the table name to store the data in.voidsetURL(String value)Sets the database URL to query.voidsetUser(String value)Sets the database user.voidsetUseRelationNameAsTable(boolean value)Sets whether to output single Instance objects or just one Instances object.StringtableNameTipText()Returns the tip text for this property.StringURLTipText()Returns the tip text for this property.StringuseRelationNameAsTableTipText()Returns the tip text for this property.StringuserTipText()Returns the tip text for this property.voidwrapUp()Cleans up after the execution has finished.-
Methods inherited from class adams.flow.sink.AbstractSink
currentInput, hasInput, input, postExecute
-
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, 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
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, setUp, setVariables, shallowCopy, shallowCopy, sizeOf, stopExecution, stopExecution, toCommandLine, variableChanged
-
-
-
-
Field Detail
-
BACKUP_SAVER
public static final String BACKUP_SAVER
the key for storing the current incremental clusterer in the backup.- See Also:
- Constant Field Values
-
m_URL
protected String m_URL
the database URL to query.
-
m_User
protected String m_User
the database user to use for connecting.
-
m_Password
protected adams.core.base.BasePassword m_Password
the password for the user used for connecting.
-
m_TableName
protected String m_TableName
protected the name of the table to store the data in.
-
m_AutoKeyGeneration
protected boolean m_AutoKeyGeneration
whether to automatically generate a primary key.
-
m_UseRelationNameAsTable
protected boolean m_UseRelationNameAsTable
whether to use the relation as table name.
-
m_CustomPropsFile
protected adams.core.io.PlaceholderFile m_CustomPropsFile
a custom properties file to use instead of default one.
-
m_Saver
protected weka.core.converters.DatabaseSaver m_Saver
the database saver.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfoin interfaceadams.core.GlobalInfoSupporter- Specified by:
globalInfoin classadams.core.option.AbstractOptionHandler- Returns:
- a description suitable for displaying in the gui
-
defineOptions
public void defineOptions()
Adds options to the internal list of options.- Specified by:
defineOptionsin interfaceadams.core.option.OptionHandler- Overrides:
defineOptionsin classadams.flow.core.AbstractActor
-
reset
protected void reset()
Resets the actor.- Overrides:
resetin classadams.flow.core.AbstractActor
-
getQuickInfo
public String getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.- Specified by:
getQuickInfoin interfaceadams.flow.core.Actor- Specified by:
getQuickInfoin interfaceadams.core.QuickInfoSupporter- Overrides:
getQuickInfoin classadams.flow.core.AbstractActor- Returns:
- null if no info available, otherwise short string
-
pruneBackup
protected void pruneBackup()
Removes entries from the backup.- Overrides:
pruneBackupin classadams.flow.core.AbstractActor
-
backupState
protected Hashtable<String,Object> backupState()
Backs up the current state of the actor before update the variables.- Overrides:
backupStatein classadams.flow.sink.AbstractSink- Returns:
- the backup
-
restoreState
protected void restoreState(Hashtable<String,Object> state)
Restores the state of the actor before the variables got updated.- Overrides:
restoreStatein classadams.flow.sink.AbstractSink- Parameters:
state- the backup of the state to restore from
-
setURL
public void setURL(String value)
Sets the database URL to query.- Parameters:
value- the JDBC URL
-
getURL
public String getURL()
Returns the query to execute.- Returns:
- the query
-
URLTipText
public String URLTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setUser
public void setUser(String value)
Sets the database user.- Parameters:
value- the user
-
getUser
public String getUser()
Returns the database user.- Returns:
- the user
-
userTipText
public String userTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setPassword
public void setPassword(adams.core.base.BasePassword value)
Sets the database password.- Specified by:
setPasswordin interfaceadams.core.PasswordSupporter- Parameters:
value- the password
-
getPassword
public adams.core.base.BasePassword getPassword()
Returns the database password.- Specified by:
getPasswordin interfaceadams.core.PasswordSupporter- Returns:
- the password
-
passwordTipText
public String passwordTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setTableName
public void setTableName(String value)
Sets the table name to store the data in.- Parameters:
value- the table name
-
getTableName
public String getTableName()
Returns the table name to store the data in.- Returns:
- the table name
-
tableNameTipText
public String tableNameTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setAutoKeyGeneration
public void setAutoKeyGeneration(boolean value)
Sets whether to automatically generate a primary key.- Parameters:
value- if true then a primary key is generated
-
getAutoKeyGeneration
public boolean getAutoKeyGeneration()
Returns whether a primary key is automatically generated.- Returns:
- true if a primary key is generated
-
autoKeyGenerationTipText
public String autoKeyGenerationTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setUseRelationNameAsTable
public void setUseRelationNameAsTable(boolean value)
Sets whether to output single Instance objects or just one Instances object.- Parameters:
value- if true then a single Instance objects are output
-
getUseRelationNameAsTable
public boolean getUseRelationNameAsTable()
Returns whether to output single Instance objects or just one Instances object.- Returns:
- true if single Instance objects are output
-
useRelationNameAsTableTipText
public String useRelationNameAsTableTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the GUI or for listing the options.
-
setCustomPropsFile
public void setCustomPropsFile(adams.core.io.PlaceholderFile value)
Sets the custom properties file to use for initializing the database setup instead of WEKA's default one.- Parameters:
value- the custom props file, ignored if a directory
-
getCustomPropsFile
public adams.core.io.PlaceholderFile getCustomPropsFile()
Returns the custom properties file to use for initializing the database setup instead of WEKA's default one.- Returns:
- the custom props file, ignored if a directory
-
customPropsFileTipText
public String customPropsFileTipText()
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:
acceptsin interfaceadams.flow.core.InputConsumer- Returns:
- weka.core.Instances.class, weka.core.Instance.class
-
doExecute
protected String doExecute()
Executes the flow item.- Specified by:
doExecutein classadams.flow.core.AbstractActor- Returns:
- null if everything is fine, otherwise error message
-
wrapUp
public void wrapUp()
Cleans up after the execution has finished.- Specified by:
wrapUpin interfaceadams.flow.core.Actor- Overrides:
wrapUpin classadams.flow.sink.AbstractSink
-
-