com.rapidminer.operator
Class IOConsumeOperator

java.lang.Object
  extended by com.rapidminer.operator.Operator
      extended by com.rapidminer.operator.IOConsumeOperator
All Implemented Interfaces:
ConfigurationListener, PreviewListener, ParameterHandler, LoggingHandler

public class IOConsumeOperator
extends Operator

Most RapidMiner operators should define their desired input and delivered output in a senseful way. In some cases operators can produce additional output which is indicated with a boolean parameter. Other operators are able to deliver their input as output instead of consuming it (parameter keep_...). However, in some cases it might be usefull to delete unwanted output to ensure that following operators use the correct input object. Furthermore, some operators produce additional unneeded and therefore unconsumed output. In an iterating operator chain this unneeded output will grow with each iteration. Therefore, the IOConsumeOperator can be used to delete one (the n-th) object of a given type (indicated by delete_one), all input objects of a given type (indicated by delete_all), all input objects but those of a given type (indicated by delete_all_but), or all input objects of the given type except for the n-th object of the type.

Author:
Ingo Mierswa Exp $

Field Summary
static int DELETE_ALL
           
static int DELETE_ALL_BUT
           
static int DELETE_ALL_BUT_NUMBER
           
static int DELETE_ONE
           
static java.lang.String PARAMETER_DELETE_WHICH
           
static java.lang.String PARAMETER_DELETION_TYPE
           
static java.lang.String PARAMETER_EXCEPT
           
static java.lang.String PARAMETER_IO_OBJECT
           
 
Constructor Summary
IOConsumeOperator(OperatorDescription description)
           
 
Method Summary
 IOObject[] apply()
          Implement this method in subclasses.
 java.lang.Class<?>[] getInputClasses()
          Returns the classes that are needed as input.
protected  IODescription getIODescription()
          If you find the getInputClasses() and getOuputClasses() methods for some reason not useful, you may override this method.
 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 com.rapidminer.operator.Operator
addError, addValue, addWarning, apply, checkDeprecations, checkForStop, checkIO, checkProperties, clearErrorList, cloneOperator, createExperimentTree, createExperimentTree, createFromXML, createMarkedExperimentTree, createMarkedProcessTree, createProcessTree, createProcessTree, getAddOnlyAdditionalOutput, getApplyCount, getDeliveredOutputClasses, getDeprecationInfo, getDesiredInputClasses, getEncoding, getErrorList, getExperiment, getInnerOperatorsXML, getInput, getInput, getInput, getInputDescription, getIOContainerForInApplyLoopBreakpoint, getLog, getName, getOperatorClassName, getOperatorDescription, getParameter, getParameterAsBoolean, getParameterAsColor, getParameterAsDouble, getParameterAsFile, getParameterAsFile, getParameterAsInputStream, getParameterAsInt, getParameterAsMatrix, getParameterAsString, getParameterList, getParameters, getParameterType, getParent, getProcess, getStartTime, getStatus, getUserDescription, getValue, getValues, getXML, hasBreakpoint, hasBreakpoint, hasInput, inApplyLoop, isDebugMode, isEnabled, isExpanded, isParallel, isParameterSet, log, logError, logNote, logWarning, performAdditionalChecks, processFinished, processStarts, register, registerOperator, remove, rename, resume, setApplyCount, setBreakpoint, setEnabled, setExpanded, setInput, setListParameter, setOperatorParameters, setParameter, setParameters, setParent, setUserDescription, toString, unregisterOperator, writeXML
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

PARAMETER_IO_OBJECT

public static final java.lang.String PARAMETER_IO_OBJECT
See Also:
Constant Field Values

PARAMETER_DELETION_TYPE

public static final java.lang.String PARAMETER_DELETION_TYPE
See Also:
Constant Field Values

PARAMETER_DELETE_WHICH

public static final java.lang.String PARAMETER_DELETE_WHICH
See Also:
Constant Field Values

PARAMETER_EXCEPT

public static final java.lang.String PARAMETER_EXCEPT
See Also:
Constant Field Values

DELETE_ONE

public static final int DELETE_ONE
See Also:
Constant Field Values

DELETE_ALL

public static final int DELETE_ALL
See Also:
Constant Field Values

DELETE_ALL_BUT

public static final int DELETE_ALL_BUT
See Also:
Constant Field Values

DELETE_ALL_BUT_NUMBER

public static final int DELETE_ALL_BUT_NUMBER
See Also:
Constant Field Values
Constructor Detail

IOConsumeOperator

public IOConsumeOperator(OperatorDescription description)
Method Detail

apply

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

Specified by:
apply in class Operator
Throws:
OperatorException

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 objects which should not be consumed must also be defined by this method (e.g. an example set which is changed but not consumed in the case of a preprocessing operator must be defined in both, the methods Operator.getInputClasses() and Operator.getOutputClasses()). 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 (defined by changing the implementation in Operator.getInputDescription(Class)) must not be defined as additional output in this method.

May deliver null or an empy array (no additional output is produced or guaranteed). Must return the class array of delivered output objects otherwise.

Specified by:
getOutputClasses in class Operator

getIODescription

protected IODescription getIODescription()
If you find the getInputClasses() and getOuputClasses() methods for some reason not useful, you may override this method. Otherwise it returns a default IODescription containing the classes returned by the first.

Overrides:
getIODescription 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.

Specified by:
getParameterTypes in interface ParameterHandler
Overrides:
getParameterTypes in class Operator


Copyright © 2001-2009 by Rapid-I