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: 8034 $
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.