## Apache Zeta Components Manual :: Docs For Class ezcWorkflowNodeConditionalBranch

### Workflow::ezcWorkflowNodeConditionalBranch

### Class ezcWorkflowNodeConditionalBranch

Abstract base class for nodes that conditionally branch multiple threads of execution.

Most implementations only need to set the conditions for proper functioning.

Source for this file: /Workflow/src/interfaces/node_conditional_branch.php

    ezcWorkflowNode
       |
       --ezcWorkflowNodeBranch
          |
          --ezcWorkflowNodeConditionalBranch

Version: | //autogen//

### Descendants

Child Class | Description
--- | ---
ezcWorkflowNodeLoop | The Loop node type is a special type of conditional branch node that has two incoming nodes instead of just one. It is used to conveniently express loops.
ezcWorkflowNodeMultiChoice | This node implements the Multi-Choice workflow pattern.
ezcWorkflowNodeExclusiveChoice | This node implements the Exclusive Choice workflow pattern.

### Inherited Constants

From ezcWorkflowNode:
`ezcWorkflowNode::WAITING_FOR_ACTIVATION` | The node is waiting to be activated.
`ezcWorkflowNode::WAITING_FOR_EXECUTION` | The node is activated and waiting to be executed.

### Member Variables

protected array( | `$configuration = array( 'condition' => array(),'else'=>array())` Holds the conditions of the out nodes. The key is the position of the out node in the array of out nodes.
protected integer | `$maxActivatedConditionalOutNodes = false` Constraint: The maximum number of conditional outgoing nodes this node may activate. Set to false to disable this constraint.
protected integer | `$minActivatedConditionalOutNodes = false` Constraint: The minimum number of conditional outgoing nodes this node has to activate. Set to false to disable this constraint.
protected integer | `$minConditionalOutNodes = false` Constraint: The minimum number of conditional outgoing nodes this node has to have. Set to false to disable this constraint.

### Inherited Member Variables

From ezcWorkflowNodeBranch
protected | `ezcWorkflowNodeBranch::$maxOutNodes`
protected | `ezcWorkflowNodeBranch::$minOutNodes`
protected | `ezcWorkflowNodeBranch::$startNewThreadForBranch`
From ezcWorkflowNode
protected | `ezcWorkflowNode::$activatedFrom`
protected | `ezcWorkflowNode::$activationState`
protected | `ezcWorkflowNode::$id`
protected | `ezcWorkflowNode::$inNodes`
protected | `ezcWorkflowNode::$internalCall`
protected | `ezcWorkflowNode::$maxInNodes`
protected | `ezcWorkflowNode::$minInNodes`
protected | `ezcWorkflowNode::$numInNodes`
protected | `ezcWorkflowNode::$numOutNodes`
protected | `ezcWorkflowNode::$outNodes`
protected | `ezcWorkflowNode::$state`
protected | `ezcWorkflowNode::$threadId`

### Method Summary

public ezcWorkflowNode | `addConditionalOutNode( $condition , $outNode , [ $else = null] )` Adds the conditional outgoing node $outNode to this node with the condition $condition. Optionally, an $else node can be specified that is activated when the $condition evaluates to false.
public void | `verify( )` Checks this node's constraints.

### Inherited Methods

From ezcWorkflowNodeBranch
protected boolean | `ezcWorkflowNodeBranch::activateOutgoingNodes()` Activates this node's outgoing nodes.
From ezcWorkflowNode
public ezcWorkflowNode | `ezcWorkflowNode::__construct()` Constructs a new node with the configuration $configuration.
public void | `ezcWorkflowNode::accept()` Reimplementation of accept() calls accept on all out nodes.
protected void | `ezcWorkflowNode::activateNode()` Convenience method for activating an (outgoing) node.
public ezcWorkflowNode | `ezcWorkflowNode::addInNode()` Adds a node to the incoming nodes of this node.
public ezcWorkflowNode | `ezcWorkflowNode::addOutNode()` Adds a node to the outgoing nodes of this node.
public mixed | `ezcWorkflowNode::getConfiguration()` Returns the configuration of this node.
public ezcWorkflowNode[] | `ezcWorkflowNode::getInNodes()` Returns the incoming nodes of this node.
public ezcWorkflowNode[] | `ezcWorkflowNode::getOutNodes()` Returns the outgoing nodes of this node.
public boolean | `ezcWorkflowNode::removeInNode()` Removes a node from the incoming nodes of this node.
public boolean | `ezcWorkflowNode::removeOutNode()` Removes a node from the outgoing nodes of this node.
public void | `ezcWorkflowNode::verify()` Checks this node's constraints.

### Methods

#### addConditionalOutNode

ezcWorkflowNode addConditionalOutNode( ezcWorkflowCondition $condition , ezcWorkflowNode $outNode , [ezcWorkflowNode $else = null] )

Adds the conditional outgoing node $outNode to this node with the condition $condition. Optionally, an $else node can be specified that is activated when the $condition evaluates to false.

##### Parameters:

Name | Type | Description
--- | --- | ---
`$condition` | ezcWorkflowCondition |
`$outNode` | ezcWorkflowNode |
`$else` | ezcWorkflowNode |

#### verify

void verify( )

Checks this node's constraints.

##### Exceptions:

Type | Description
--- | ---
`ezcWorkflowInvalidWorkflowException` | if the constraints of this node are not met.

##### Redefinition of:

Method | Description
--- | ---
`ezcWorkflowNode::verify()` | Checks this node's constraints.

Documentation generated by phpDocumentor 1.4.3