5require_once
'./Services/WorkflowEngine/classes/nodes/class.ilBaseNode.php';
44 $this->detectors = array();
45 $this->emitters = array();
46 $this->activities = array();
47 $this->active =
false;
48 $this->is_forward_condition_node =
false;
49 $this->is_forward_condition_event =
false;
50 $this->ident = strtoupper(substr(md5(spl_object_hash($this)),0,6));
65 foreach($this->detectors as $detector)
67 $detector->onActivate();
78 $this->active =
false;
79 foreach($this->detectors as $detector)
81 $detector->onDeactivate();
94 $isPreconditionMet =
true;
95 foreach ($this->detectors as $detector)
97 if ($isPreconditionMet ==
true)
99 $isPreconditionMet = $detector->getDetectorState();
102 return $isPreconditionMet;
131 if (count($this->activities) != 0)
133 foreach ($this->activities as $activity)
135 $activity->execute();
145 if (count($this->emitters) != 0)
147 foreach ($this->emitters as $emitter)
161 $this->pingbackToPredecessorNodes();
203 public function deactivateForwardConditionNodes(
ilNode $activated_node)
205 if($this->is_forward_condition_node)
207 foreach ($this->emitters as $emitter)
210 $target_detector = $emitter->getTargetDetector();
213 $target_node = $target_detector->getContext();
215 if ($target_node === $activated_node)
219 $target_node->deactivate();
224 public function pingbackToPredecessorNodes()
227 foreach ($this->detectors as $detector)
230 $source_node = $detector->getSourceNode();
231 if ($source_node && $source_node->is_forward_condition_node)
233 $source_node->deactivateForwardConditionNodes( $this );
An exception for terminatinating execution or to throw for unit testing.
@noinspection PhpIncludeInspection
onDeactivate()
Method calles on deactivation of the node.
isActive()
Returns the activation status of the node.
onActivate()
Method called on activation of the node.
@noinspection PhpIncludeInspection
__construct(ilWorkflow $context)
Default constructor.
activate()
Activates the node.
executeEmitters()
Executes all attached emitters.
notifyDetectorSatisfaction(ilDetector $detector)
This method is called by detectors, that just switched to being satisfied.
checkTransitionPreconditions()
Checks, if the preconditions of the node to transit are met.
deactivate()
Deactivates the node.
attemptTransition()
Attempts to transit the node.
$is_forward_condition_event
executeTransition()
Executes the transition, calls all activities and emitters to execute.
setIsForwardConditionNode($is_forward_condition_node)
executeActivities()
Executes all attached activities.
$is_forward_condition_node
ilDetector Interface is part of the petri net based workflow engine.
@noinspection PhpIncludeInspection
@noinspection PhpIncludeInspection