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

### Workflow::ezcWorkflowNodeMultiChoice

### Class ezcWorkflowNodeMultiChoice

This node implements the Multi-Choice workflow pattern.

The Multi-Choice workflow pattern defines multiple possible paths for the workflow of which one or more are chosen. It is a generalization of the Parallel Split and Exclusive Choice workflow patterns.

Incoming nodes: 1 Outgoing nodes: 2..*

This example displays how you can use ezcWorkflowNodeMultiChoice to activate one or more branches depending on the input. Note that an input value of 5 will start only branch 1 while an input value of 11 or more will start both branch1 and branch2.

1. <?php
2. $workflow=new ezcWorkflow ('Test');
4. // wait for input into the workflow variable value.
5. $input=new ezcWorkflowNodeInput (array('value'=>newezcWorkflowConditionIsInt) );
6. $workflow->startNode-> addOutNode ($input);
8. // create the exclusive choice branching node
9. $choice=new ezcWorkflowNodeMultiChoice ;
10. $intput-> addOutNode ($choice);
12. $branch1= ....;// create nodes for the first branch of execution here..
13. $branch2= ....;// create nodes for the second branch of execution here..
15. // add the outnodes and set the conditions on the exclusive choice
16. $choice-> addConditionalOutNode (new ezcWorkflowConditionVariable ('value',
17. newezcWorkflowConditionGreaterThan(1) ),
18. $branch1);
19. $choice-> addConditionalOutNode (new ezcWorkflowConditionVariable ('value',
20. newezcWorkflowConditionGreaterThan(10) ),
21. $branch2);
23. // Merge the two branches together and continue execution.
24. $merge=new ezcWorkflowNodeSynchronizingMerge ();
25. $merge-> addInNode ($branch1);
26. $merge-> addInNode ($branch2);
27. $merge-> addOutNode ($workflow->endNode);
28. ?>

Source for this file: /Workflow/src/nodes/control_flow/multi_choice.php

    ezcWorkflowNode
       |
       --ezcWorkflowNodeBranch
          |
          --ezcWorkflowNodeConditionalBranch
             |
             --ezcWorkflowNodeMultiChoice

Version: | //autogen//

### 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.

### Inherited Member Variables

From ezcWorkflowNodeConditionalBranch
protected | `ezcWorkflowNodeConditionalBranch::$configuration`
protected | `ezcWorkflowNodeConditionalBranch::$maxActivatedConditionalOutNodes`
protected | `ezcWorkflowNodeConditionalBranch::$minActivatedConditionalOutNodes`
protected | `ezcWorkflowNodeConditionalBranch::$minConditionalOutNodes`
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`

### Inherited Methods

From ezcWorkflowNodeConditionalBranch
public ezcWorkflowNode | `ezcWorkflowNodeConditionalBranch::addConditionalOutNode()` 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 | `ezcWorkflowNodeConditionalBranch::verify()` Checks this node's constraints.
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.

Documentation generated by phpDocumentor 1.4.3