The Exclusive Choice workflow pattern defines multiple possible paths
for the workflow of which exactly one is chosen based on the conditions
set for the out nodes.
Incoming nodes: 1
Outgoing nodes: 2..*
This example displays how you can use an exclusive choice to select one of two
possible branches depending on the workflow variable 'value' which is read using
an input node.
new ezcWorkflowConditionIsInt ) );
$workflow->startNode->addOutNode( $input );
create the exclusive choice branching node
$choice = new ezcWorkflowNodeExclusiveChoice;
$intput->addOutNode( $choice );
$branch1 = ....; // create nodes for the first branch of execution here..
$branch2 = ....; // create nodes for the second branch of execution here..
add the outnodes and set the conditions on the exclusive choice
$choice->addConditionalOutNode( new ezcWorkflowConditionVariable( 'value',
new ezcWorkflowConditionGreaterThan( 10 ) ),
$branch1 );
$choice->addConditionalOutNode( new ezcWorkflowConditionVariable( 'value',
new ezcWorkflowConditionLessThan( 11 ) ),
$branch2 );
Merge the two branches together and continue execution.
$merge = new ezcWorkflowNodeSimpleMerge();
$merge->addInNode( $branch1 );
$merge->addInNode( $branch2 );
$merge->addOutNode( $workflow->endNode );
?>