com.rapidminer.operator.meta.branch
Class ProcessBranch

java.lang.Object
  extended by com.rapidminer.operator.Operator
      extended by com.rapidminer.operator.OperatorChain
          extended by com.rapidminer.operator.meta.branch.ProcessBranch
All Implemented Interfaces:
ConfigurationListener, PreviewListener, ParameterHandler, LoggingHandler

public class ProcessBranch
extends OperatorChain

This operator provides a conditional execution of parts of processes. It has to have two OperatorChains as childs. The first chain is processed if the specified condition is true, the second one is processed if it is false (if-then-else). The second chain may be omitted (if-then). In this case, this operator has only one inner operator.

If the condition "attribute_value_filter" is used, the same attribute value conditions already known from the ExampleFilter operator can be used. In addition to the known attribute value relation format (e.g. "att1>=0.7"), this operator expects an additional definition for the used example which cam be added in "[" and "]" after the attribute value condition. The following values are possible:

Author:
Sebastian Land, Ingo Mierswa

Field Summary
static java.lang.Class[] CONDITION_CLASSES
           
static java.lang.String CONDITION_INPUT_EXISTS
           
static java.lang.String[] CONDITION_NAMES
           
static java.lang.String PARAMETER_CONDITION_TYPE
           
static java.lang.String PARAMETER_CONDITION_VALUE
           
static java.lang.String PARAMETER_IO_OBJECT
           
static java.lang.String PARAMETER_RETURN_INNER_OUTPUT
           
 
Constructor Summary
ProcessBranch(OperatorDescription description)
           
 
Method Summary
 IOObject[] apply()
          Applies all inner operators.
 boolean getAddOnlyAdditionalOutput()
          Indicates how additional output should be added to the IOContainer.
<T extends IOObject>
T
getConditionInput(java.lang.Class<T> cls)
           
 InnerOperatorCondition getInnerOperatorCondition()
          Must return a condition of the IO behaviour of all desired inner operators.
 java.lang.Class<?>[] getInputClasses()
          Returns the classes that are needed as input.
 int getMaxNumberOfInnerOperators()
          Returns the maximum number of inner operators.
 int getMinNumberOfInnerOperators()
          Returns the minimum number of inner operators.
 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.
 java.lang.Class<IOObject> getSelectedClass()
           
 
Methods inherited from class com.rapidminer.operator.OperatorChain
addAddListener, addOperator, addOperator, checkDeprecations, checkIO, checkNumberOfInnerOperators, checkProperties, clearErrorList, cloneOperator, createExperimentTree, createProcessTree, getAllInnerOperators, getIndexOfOperator, getInnerOperatorForName, getInnerOperatorsXML, getNumberOfAllOperators, getNumberOfOperators, getOperator, getOperatorFromAll, getOperators, performAdditionalChecks, processFinished, processStarts, registerOperator, removeAddListener, removeOperator, shouldAddNonConsumedInput, shouldReturnInnerOutput, unregisterOperator
 
Methods inherited from class com.rapidminer.operator.Operator
addError, addValue, addWarning, apply, checkForStop, createExperimentTree, createFromXML, createMarkedExperimentTree, createMarkedProcessTree, createProcessTree, getApplyCount, getDeliveredOutputClasses, getDeprecationInfo, getDesiredInputClasses, getEncoding, getErrorList, getExperiment, getInput, getInput, getInput, getInputDescription, getIOContainerForInApplyLoopBreakpoint, getIODescription, 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, register, remove, rename, resume, setApplyCount, setBreakpoint, setEnabled, setExpanded, 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

PARAMETER_CONDITION_TYPE

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

PARAMETER_CONDITION_VALUE

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

PARAMETER_RETURN_INNER_OUTPUT

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

PARAMETER_IO_OBJECT

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

CONDITION_NAMES

public static final java.lang.String[] CONDITION_NAMES

CONDITION_CLASSES

public static final java.lang.Class[] CONDITION_CLASSES

CONDITION_INPUT_EXISTS

public static final java.lang.String CONDITION_INPUT_EXISTS
Constructor Detail

ProcessBranch

public ProcessBranch(OperatorDescription description)
Method Detail

apply

public IOObject[] apply()
                 throws OperatorException
Description copied from class: OperatorChain
Applies all inner operators. The input to this operator becomes the input of the first inner operator. The latter's output is passed to the second inner operator and so on. Note to subclassers: If subclasses (for example wrappers) want to make use of this method remember to call exactly this method (super.apply()) and do not call super.apply(IOContainer) erroneously which will result in an infinite loop.

Overrides:
apply in class OperatorChain
Returns:
the last inner operator's output or the input itself if the chain is empty.
Throws:
OperatorException

getAddOnlyAdditionalOutput

public boolean getAddOnlyAdditionalOutput()
Description copied from class: Operator
Indicates how additional output should be added to the IOContainer. Usually the additional output should be preprended to the input container but some operators, especially operator chains might override this method in order add only the additional output instead of the complete IOContainer. This prevents doubling the IOObjects e.g. for SimpleOperatorChains. The default implementation returns false.

Overrides:
getAddOnlyAdditionalOutput in class Operator

getConditionInput

public <T extends IOObject> T getConditionInput(java.lang.Class<T> cls)
                                     throws MissingIOObjectException
Throws:
MissingIOObjectException

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

getInnerOperatorCondition

public InnerOperatorCondition getInnerOperatorCondition()
Description copied from class: OperatorChain
Must return a condition of the IO behaviour of all desired inner operators. If there are no "special" conditions and the chain works similar to a simple operator chain this method should at least return a SimpleChainInnerOperatorCondition. More than one condition should be combined with help of the class CombinedInnerOperatorCondition.

Specified by:
getInnerOperatorCondition in class OperatorChain

getMaxNumberOfInnerOperators

public int getMaxNumberOfInnerOperators()
Description copied from class: OperatorChain
Returns the maximum number of inner operators.

Specified by:
getMaxNumberOfInnerOperators in class OperatorChain

getMinNumberOfInnerOperators

public int getMinNumberOfInnerOperators()
Description copied from class: OperatorChain
Returns the minimum number of inner operators.

Specified by:
getMinNumberOfInnerOperators in class OperatorChain

getSelectedClass

public java.lang.Class<IOObject> getSelectedClass()
                                           throws UndefinedParameterError
Throws:
UndefinedParameterError

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