Package weka.experiment
Class DatabaseResultListener
- java.lang.Object
-
- weka.experiment.DatabaseUtils
-
- weka.experiment.DatabaseResultListener
-
- All Implemented Interfaces:
java.io.Serializable
,RevisionHandler
,ResultListener
- Direct Known Subclasses:
DatabaseResultProducer
public class DatabaseResultListener extends DatabaseUtils implements ResultListener
Takes results from a result producer and sends them to a database.- Version:
- $Revision: 5125 $
- Author:
- Len Trigg (trigg@cs.waikato.ac.nz)
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class weka.experiment.DatabaseUtils
BOOL, BYTE, DATE, DOUBLE, EXP_INDEX_TABLE, EXP_RESULT_COL, EXP_RESULT_PREFIX, EXP_SETUP_COL, EXP_TYPE_COL, FLOAT, INTEGER, LONG, PROPERTY_FILE, SHORT, STRING, TEXT, TIME, TIMESTAMP
-
-
Constructor Summary
Constructors Constructor Description DatabaseResultListener()
Sets up the database drivers
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
acceptResult(ResultProducer rp, java.lang.Object[] key, java.lang.Object[] result)
Submit the result to the appropriate table of the databasejava.lang.String
cacheKeyNameTipText()
Returns the tip text for this propertyjava.lang.String[]
determineColumnConstraints(ResultProducer rp)
Determines if there are any constraints (imposed by the destination) on any additional measures produced by resultProducers.java.lang.String
getCacheKeyName()
Get the value of CacheKeyName.java.lang.String
getRevision()
Returns the revision string.java.lang.String
globalInfo()
Returns a string describing this result listenerboolean
isResultRequired(ResultProducer rp, java.lang.Object[] key)
Always says a result is required.void
postProcess(ResultProducer rp)
Perform any postprocessing.void
preProcess(ResultProducer rp)
Prepare for the results to be received.void
setCacheKeyName(java.lang.String newCacheKeyName)
Set the value of CacheKeyName.-
Methods inherited from class weka.experiment.DatabaseUtils
arrayToString, close, close, connectToDatabase, createExperimentIndex, createExperimentIndexEntry, createResultsTable, databaseURLTipText, debugTipText, disconnectFromDatabase, execute, experimentIndexExists, getDatabaseURL, getDebug, getKeywords, getKeywordsMaskChar, getPassword, getResultFromTable, getResultSet, getResultsTableName, getSupportedCursorScrollType, getUsername, isConnected, isCursorScrollable, isCursorScrollSensitive, isKeyword, maskKeyword, passwordTipText, processKeyString, putResultInTable, select, setDatabaseURL, setDebug, setKeywords, setKeywordsMaskChar, setPassword, setUsername, tableExists, translateDBColumnType, typeName, update, usernameTipText
-
-
-
-
Method Detail
-
globalInfo
public java.lang.String globalInfo()
Returns a string describing this result listener- Returns:
- a description of the result listener suitable for displaying in the explorer/experimenter gui
-
preProcess
public void preProcess(ResultProducer rp) throws java.lang.Exception
Prepare for the results to be received.- Specified by:
preProcess
in interfaceResultListener
- Parameters:
rp
- the ResultProducer that will generate the results- Throws:
java.lang.Exception
- if an error occurs during preprocessing.
-
postProcess
public void postProcess(ResultProducer rp) throws java.lang.Exception
Perform any postprocessing. When this method is called, it indicates that no more results will be sent that need to be grouped together in any way.- Specified by:
postProcess
in interfaceResultListener
- Parameters:
rp
- the ResultProducer that generated the results- Throws:
java.lang.Exception
- if an error occurs
-
determineColumnConstraints
public java.lang.String[] determineColumnConstraints(ResultProducer rp) throws java.lang.Exception
Determines if there are any constraints (imposed by the destination) on any additional measures produced by resultProducers. Null should be returned if there are NO constraints, otherwise a list of column names should be returned as an array of Strings. In the case of DatabaseResultListener, the structure of an existing database will impose constraints.- Specified by:
determineColumnConstraints
in interfaceResultListener
- Parameters:
rp
- the ResultProducer to which the constraints will apply- Returns:
- an array of column names to which resutltProducer's results will be restricted.
- Throws:
java.lang.Exception
- if an error occurs.
-
acceptResult
public void acceptResult(ResultProducer rp, java.lang.Object[] key, java.lang.Object[] result) throws java.lang.Exception
Submit the result to the appropriate table of the database- Specified by:
acceptResult
in interfaceResultListener
- Parameters:
rp
- the ResultProducer that generated the resultkey
- The key for the results.result
- The actual results.- Throws:
java.lang.Exception
- if the result couldn't be sent to the database
-
isResultRequired
public boolean isResultRequired(ResultProducer rp, java.lang.Object[] key) throws java.lang.Exception
Always says a result is required. If this is the first call, prints out the header for the Database output.- Specified by:
isResultRequired
in interfaceResultListener
- Parameters:
rp
- the ResultProducer wanting to generate the resultkey
- The key for which a result may be needed.- Returns:
- true if the result should be calculated.
- Throws:
java.lang.Exception
- if the database couldn't be queried
-
cacheKeyNameTipText
public java.lang.String cacheKeyNameTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getCacheKeyName
public java.lang.String getCacheKeyName()
Get the value of CacheKeyName.- Returns:
- Value of CacheKeyName.
-
setCacheKeyName
public void setCacheKeyName(java.lang.String newCacheKeyName)
Set the value of CacheKeyName.- Parameters:
newCacheKeyName
- Value to assign to CacheKeyName.
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classDatabaseUtils
- Returns:
- the revision
-
-