Package weka.experiment

# Interface ResultListener

All Superinterfaces:
  `Serializable`

All Known Implementing Classes:
  `AveragingResultProducer`, `CSVResultListener`, `DatabaseResultListener`, `DatabaseResultProducer`, `InstancesResultListener`, `LearningRateResultProducer`

public interface ResultListener extends Serializable
Interface for objects able to listen for results obtained by a ResultProducer

Version:
  $Revision: 1.7 $
Author:
  Len Trigg (trigg@cs.waikato.ac.nz)

## Method Summary

Modifier and Type
Method
Description
`void`
`acceptResult(ResultProducer rp, Object[] key, Object[] result)`
Accepts results from a ResultProducer.
`String[]`
`determineColumnConstraints(ResultProducer rp)`
Determines if there are any constraints (imposed by the destination) on additional result columns to be produced by resultProducers.
`boolean`
`isResultRequired(ResultProducer rp, Object[] key)`
Determines whether the results for a specified key must be generated.
`void`
`postProcess(ResultProducer rp)`
Perform any postprocessing.
`void`
`preProcess(ResultProducer rp)`
Prepare for the results to be received.

## Method Details

### determineColumnConstraints

String[] determineColumnConstraints(ResultProducer rp) throws Exception
Determines if there are any constraints (imposed by the destination) on additional 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.

Parameters:
  `rp` - the ResultProducer to which the constraints will apply
Returns:
  an array of column names to which resutltProducer's additional results will be restricted.
Throws:
  `Exception` - if an error occurs

### preProcess

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

Parameters:
  `rp` - the ResultProducer that will generate the results
Throws:
  `Exception` - if an error occurs during preprocessing.

### postProcess

void postProcess(ResultProducer rp) throws 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.

Parameters:
  `rp` - the ResultProducer that generated the results
Throws:
  `Exception` - if an error occurs

### acceptResult

void acceptResult(ResultProducer rp, Object[] key, Object[] result) throws Exception
Accepts results from a ResultProducer.

Parameters:
  `rp` - the ResultProducer that generated the results
  `key` - an array of Objects (Strings or Doubles) that uniquely identify a result for a given ResultProducer with given compatibilityState
  `result` - the results stored in an array. The objects stored in the array may be Strings, Doubles, or null (for the missing value).
Throws:
  `Exception` - if the result could not be accepted.

### isResultRequired

boolean isResultRequired(ResultProducer rp, Object[] key) throws Exception
Determines whether the results for a specified key must be generated.

Parameters:
  `rp` - the ResultProducer wanting to generate the results
  `key` - an array of Objects (Strings or Doubles) that uniquely identify a result for a given ResultProducer with given compatibilityState
Returns:
  true if the result should be generated
Throws:
  `Exception` - if it could not be determined if the result is needed.