24 {
27 $this->element_varname = '$_v_' . $element_id;
28
29 $event_definition = null;
30
31 $hasChildren = (isset($element['children']) && is_array($element['children']) && count($element['children']) > 0);
32 if ($hasChildren) {
33 foreach ($element['children'] as $child) {
34 if ($child['name'] == 'messageEventDefinition') {
37 $child['attributes']['messageRef'],
38 'message',
39 $this->bpmn2_array
40 );
41 }
42 if ($child['name'] == 'signalEventDefinition') {
45 $child['attributes']['signalRef'],
46 'signal',
47 $this->bpmn2_array
48 );
49 }
50 if ($child['name'] == 'timerEventDefinition') {
53 $child['attributes']['id'],
54 'startEvent',
55 $this->bpmn2_array
56 );
57
58 }
59 }
60 }
61 $class_object->
registerRequire(
'./Services/WorkflowEngine/classes/nodes/class.ilBasicNode.php');
63 ' . $this->element_varname . ' = new ilBasicNode($this);
64 $this->addNode(' . $this->element_varname . ');
65 ' . $this->element_varname . '->setName(\'' . $this->element_varname . '\');
66 ';
67
68 if (is_array($event_definition)) {
69 $class_object->registerRequire('./
Services/WorkflowEngine/classes/detectors/
class.ilEventDetector.php
');
70 $code .= '
71 ' . $this->element_varname . '_detector =
new ilEventDetector(
' . $this->element_varname . ');
72 ' . $this->element_varname . '_detector->setName(\'' . $this->element_varname . '_detector\');
73 ' . $this->element_varname . '_detector->setEvent( "' . $event_definition['type'] . '", "' . $event_definition['content'] . '");
74 ' . $this->element_varname . '_detector->setEventSubject( "' . $event_definition['subject_type'] . '", "' . $event_definition['subject_id'] . '");
75 ' . $this->element_varname . '_detector->setEventContext( "' . $event_definition['context_type'] . '", "' . $event_definition['context_id'] . '");
76 ';
77 if (isset($event_definition['listening_start']) || isset($event_definition['listening_end'])) {
78 $code .= $this->element_varname .
'_detector->setListeningTimeframe(' . (int) $event_definition[
'listening_start'] .
79 ', ' . (int) $event_definition['listening_end'] . ');';
80 } elseif (isset($event_definition['listening_relative']) && isset($event_definition['listening_interval'])) {
81 $code .= $this->element_varname .
'_detector->setTimerRelative(true);';
82 $code .= $this->element_varname .
'_detector->setTimerLimit(' . (int) $event_definition[
'listening_interval'] .
');';
83 }
84 } else {
86 $this->setStartNode(' . $this->element_varname . ');
87 ';
88 }
89
91
93 }
static extractILIASEventDefinitionFromProcess($start_event_ref, $type, $bpmn2_array)
static extractTimeDateEventDefinitionFromElement($start_event_ref, $type, $bpmn2_array)
static xsIDToPHPVarname($xsID)
handleDataAssociations($element, $class_object, $element_varname)
@noinspection PhpIncludeInspection
registerStartEventRef($start_event_ref)
registerStartSignalRef($start_event_ref)
registerStartTimerRef($start_event_ref)
registerRequire($require)