weka.experiment
Class CSVResultListener

java.lang.Object
  extended byweka.experiment.CSVResultListener
All Implemented Interfaces:
OptionHandler, ResultListener, java.io.Serializable
Direct Known Subclasses:
InstancesResultListener

public class CSVResultListener
extends java.lang.Object
implements ResultListener, OptionHandler

CSVResultListener outputs the received results in csv format to a Writer

Version:
$Revision: 1.8 $
Author:
Len Trigg (trigg@cs.waikato.ac.nz)
See Also:
Serialized Form

Field Summary
protected  java.io.PrintWriter m_Out
          The destination for results (typically connected to the output file)
protected  java.io.File m_OutputFile
          The destination output file, null sends to System.out
protected  ResultProducer m_RP
          The ResultProducer sending us results
 
Constructor Summary
CSVResultListener()
           
 
Method Summary
 void acceptResult(ResultProducer rp, java.lang.Object[] key, java.lang.Object[] result)
          Just prints out each result as it is received.
 java.lang.String[] determineColumnConstraints(ResultProducer rp)
          Determines if there are any constraints (imposed by the destination) on the result columns to be produced by resultProducers.
 java.lang.String[] getOptions()
          Gets the current settings of the Classifier.
 java.io.File getOutputFile()
          Get the value of OutputFile.
 java.lang.String globalInfo()
          Returns a string describing this result listener
 boolean isResultRequired(ResultProducer rp, java.lang.Object[] key)
          Always says a result is required.
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options..
 java.lang.String outputFileTipText()
          Returns the tip text for this property
 void postProcess(ResultProducer rp)
          Perform any postprocessing.
 void preProcess(ResultProducer rp)
          Prepare for the results to be received.
private  void printResultNames(ResultProducer rp)
          Prints the names of each field out as the first row of the CSV output.
 void setOptions(java.lang.String[] options)
          Parses a given list of options.
 void setOutputFile(java.io.File newOutputFile)
          Set the value of OutputFile.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_RP

protected ResultProducer m_RP
The ResultProducer sending us results


m_OutputFile

protected java.io.File m_OutputFile
The destination output file, null sends to System.out


m_Out

protected transient java.io.PrintWriter m_Out
The destination for results (typically connected to the output file)

Constructor Detail

CSVResultListener

public CSVResultListener()
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

listOptions

public java.util.Enumeration listOptions()
Returns an enumeration describing the available options..

Specified by:
listOptions in interface OptionHandler
Returns:
an enumeration of all the available options.

setOptions

public void setOptions(java.lang.String[] options)
                throws java.lang.Exception
Parses a given list of options. Valid options are:

-O filename
The filename where output will be stored. Use - for stdout. (default stdout)

Specified by:
setOptions in interface OptionHandler
Parameters:
options - the list of options as an array of strings
Throws:
java.lang.Exception - if an option is not supported

getOptions

public java.lang.String[] getOptions()
Gets the current settings of the Classifier.

Specified by:
getOptions in interface OptionHandler
Returns:
an array of strings suitable for passing to setOptions

outputFileTipText

public java.lang.String outputFileTipText()
Returns the tip text for this property

Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

getOutputFile

public java.io.File getOutputFile()
Get the value of OutputFile.

Returns:
Value of OutputFile.

setOutputFile

public void setOutputFile(java.io.File newOutputFile)
Set the value of OutputFile.

Parameters:
newOutputFile - Value to assign to OutputFile.

preProcess

public void preProcess(ResultProducer rp)
                throws java.lang.Exception
Prepare for the results to be received.

Specified by:
preProcess in interface ResultListener
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 interface ResultListener
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 the result columns to be 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.

Specified by:
determineColumnConstraints in interface ResultListener
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
Just prints out each result as it is received.

Specified by:
acceptResult in interface ResultListener
Parameters:
rp - the ResultProducer that generated the result
key - The key for the results.
result - The actual results.
Throws:
java.lang.Exception - if the result could not be accepted.

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 csv output.

Specified by:
isResultRequired in interface ResultListener
Parameters:
rp - the ResultProducer wanting to generate the result
key - The key for which a result may be needed.
Returns:
true if the result should be calculated.
Throws:
java.lang.Exception - if it could not be determined if the result is needed.

printResultNames

private void printResultNames(ResultProducer rp)
                       throws java.lang.Exception
Prints the names of each field out as the first row of the CSV output.

Parameters:
rp - the ResultProducer generating our results.
Throws:
java.lang.Exception - if the field names could not be determined.