edu.udo.cs.yale.operator.visualization
Class ExperimentLogOperator

java.lang.Object
  extended by edu.udo.cs.yale.operator.Operator
      extended by edu.udo.cs.yale.operator.visualization.ExperimentLogOperator
All Implemented Interfaces:
ConfigurationListener

public class ExperimentLogOperator
extends Operator

This operator records almost arbitrary data. It can written to a file which can be read e.g. by gnuplot. Alternatively, the collected data can be plotted by the GUI. This is even possible during experiment runtime (i.e. online plotting).
Parameters in the list log are interpreted as follows: The key gives the name for the column name (e.g. for use in the plotter). The value specifies where to retrieve the value from. This is best explained by an example:

Each time the ExperimentLogOperator is applied, all the values and parameters specified by the list log are collected and stored in a data row. When the experiment finishes, the operator writes the collected data rows to a file (if specified). In GUI mode, 2D or 3D plots are automatically generated and displayed in the result viewer.
Please refer to section Advanced experiments/Parameter and performance analysis for an example application.

Version:
$Id: ExperimentLogOperator.java,v 2.27 2006/03/27 13:21:58 ingomierswa Exp $
Author:
Simon Fischer, Ingo Mierswa
To do:
Use IOObjects for logging as well (e.g. PerformanceVector)

Field Summary
private static java.lang.Class[] OUTPUT_CLASSES
           
private  java.lang.String[] valueNames
           
 
Constructor Summary
ExperimentLogOperator(OperatorDescription description)
           
 
Method Summary
 IOObject[] apply()
          Implement this method in subclasses.
 void experimentFinished()
          Called at the end of the experiment.
 void experimentStarts()
          Called when the experiment starts.
private  void fetchAllValues()
           
private  double fetchValue(java.lang.String name, int column)
           
 java.lang.Class[] getInputClasses()
          Returns the classes that are needed as input.
 java.lang.Class[] getOutputClasses()
          Returns the classes that are guaranteed to be returned by apply() as additional output.
 java.util.List<ParameterType> getParameterTypes()
          Returns a list of ParameterTypes describing the parameters of this operator.
 
Methods inherited from class edu.udo.cs.yale.operator.Operator
addError, addValue, addWarning, apply, checkDeprecations, checkIO, checkProperties, clearErrorList, cloneOperator, createExperimentTree, createExperimentTree, createFromXML, createMarkedExperimentTree, delete, getAddOnlyAdditionalOutput, getApplyCount, getDeliveredOutputClasses, getDeprecationInfo, getDesiredInputClasses, getErrorList, getExperiment, getInnerOperatorsXML, getInput, getInput, getInput, getInputDescription, getIOContainerForInApplyLoopBreakpoint, getName, getNumberOfSteps, getOperatorClassName, getOperatorDescription, getParameter, getParameterAsBoolean, getParameterAsColor, getParameterAsDouble, getParameterAsFile, getParameterAsInt, getParameterAsString, getParameterList, getParameters, getParameterType, getParent, getStartTime, getStatus, getUserDescription, getValue, getValues, getXML, hasBreakpoint, hasBreakpoint, hasInput, inApplyLoop, isEnabled, isParameterSet, logMessage, performAdditionalChecks, register, remove, rename, resume, setBreakpoint, setEnabled, setExperiment, setInput, setListParameter, setOperatorParameters, setParameter, setParameters, setParent, setUserDescription, toString, writeXML
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

OUTPUT_CLASSES

private static final java.lang.Class[] OUTPUT_CLASSES

valueNames

private java.lang.String[] valueNames
Constructor Detail

ExperimentLogOperator

public ExperimentLogOperator(OperatorDescription description)
Method Detail

fetchValue

private double fetchValue(java.lang.String name,
                          int column)
                   throws UndefinedParameterError
Throws:
UndefinedParameterError

experimentStarts

public void experimentStarts()
Description copied from class: Operator
Called when the experiment starts. Resets all counters.

Overrides:
experimentStarts in class Operator


getInputClasses

public java.lang.Class[] getInputClasses()
Description copied from class: Operator
Returns the classes that are needed as input. May be null or an empty (no desired input). As default, all delivered input objects are consumed and must be also delivered as output in both Operator.getOutputClasses() and Operator.apply() if this is necessary. This default behavior can be changed by overriding Operator.getInputDescription(Class). Subclasses which implement this method should not make use of parameters since this method is invoked by getParameterTypes(). Therefore, parameters are not fully available at this point of time and this might lead to exceptions. Please use InputDescriptions instead.

Specified by:
getInputClasses in class Operator


getOutputClasses

public java.lang.Class[] getOutputClasses()
Description copied from class: Operator
Returns the classes that are guaranteed to be returned by apply() as additional output. Please note that input object which should not be consumed must also be defined by this method (e.g. for preprocessing operators). The default behavior for input consumation is defined by Operator.getInputDescription(Class) and can be changed by overwriting this method. Objects which are not consumed must not be defined as additional output in this method. May be null or an empy array (no additional output is produced).

Specified by:
getOutputClasses in class Operator


apply

public IOObject[] apply()
                 throws OperatorException
Description copied from class: Operator
Implement this method in subclasses.

Specified by:
apply in class Operator
Throws:
OperatorException


fetchAllValues

private void fetchAllValues()
                     throws UndefinedParameterError
Throws:
UndefinedParameterError

experimentFinished

public void experimentFinished()
Description copied from class: Operator
Called at the end of the experiment. The default implementation does nothing.

Overrides:
experimentFinished in class Operator


getParameterTypes

public java.util.List<ParameterType> getParameterTypes()
Description copied from class: Operator
Returns a list of ParameterTypes describing the parameters of this operator. The default implementation returns an empty list if no input objects can be retained and special parameters for those input objects which can be prevented from being consumed.

Overrides:
getParameterTypes in class Operator



Copyright © 2001-2006