28 require_once
'./Services/WorkflowEngine/classes/parser/class.ilWorkflowScaffold.php';
31 $constructor_method_content =
'';
33 $class_object->setWorkflowName($workflow_name);
35 if(count(@$process[
'children']))
37 $stashed_sequence_flows =
array();
39 $stashed_associations =
array();
41 $stashed_process_extensions =
array();
43 require_once
'./Services/WorkflowEngine/classes/parser/elements/class.ilBPMN2ElementLoader.php';
47 foreach($process[
'children'] as $element)
49 if($element[
'name'] ==
'ioSpecification')
51 foreach($element[
'children'] as $iospec_element)
53 $element_object =
$loader->load($iospec_element[
'name']);
54 $constructor_method_content .= $element_object->getPHP($iospec_element, $class_object);
60 if($element[
'name'] ==
'sequenceFlow')
62 $stashed_sequence_flows[] = $element;
64 else if($element[
'name'] ==
'association')
66 $stashed_associations[] = $element;
68 else if($element[
'name'] ==
'extensionElements')
70 $stashed_process_extensions[] = $element;
74 $element_object =
$loader->load($element[
'name']);
75 $constructor_method_content .= $element_object->getPHP($element, $class_object);
79 foreach($stashed_sequence_flows as $element)
81 $element_object =
$loader->load($element[
'name']);
82 $constructor_method_content .= $element_object->getPHP($element, $class_object);
85 foreach($stashed_associations as $element)
87 $element_object =
$loader->load($element[
'name']);
88 $constructor_method_content .= $element_object->getPHP($element, $class_object);
94 $message_definitions =
array();
97 $element_object =
$loader->load(
'messageDefinition');
98 $message_definitions[] = $element_object->getMessageDefinitionArray($message);
102 public static function getMessageDefinition($id) 104 $definitions = array('.implode(
',', $message_definitions).
' 106 return $definitions[$id]; 109 $class_object->addAuxilliaryMethod(
$code);
112 $class_object->setConstructorMethodContent($constructor_method_content);
115 if (strlen($constructor_method_content))
117 $class_source .= $class_object->getPHP();
120 return "<?php\n" . $class_source .
"\n?>";
130 require_once
'./Services/WorkflowEngine/classes/parser/class.ilBPMN2ParserUtils.php';
132 $bpmn2 = $xml_to_array_parser->load_string( $xml );
144 foreach ((
array)@$bpmn2[
'children'] as $bpmn2_part)
146 if ($bpmn2_part[
'name'] ==
'process')
148 $process = $bpmn2_part;
163 foreach ((
array)@$bpmn2[
'children'] as $bpmn2_part)
165 if ($bpmn2_part[
'name'] ==
'message')
183 if (!$workflow_name && !count( @$bpmn2_array[
'children'] ))
185 $workflow_name = $bpmn2_array[
'attributes'][
'id'];
190 $workflow_name = $process[
'attributes'][
'id'];
191 return $workflow_name;
196 $workflow_name = substr($workflow_name,0,strpos($workflow_name,
'.'));
198 return $workflow_name;
Class ilBPMN2ElementLoader.
Class ilWorkflowScaffold.
getMessageNodesFromArray($bpmn2)
determineWorkflowClassName($workflow_name, $bpmn2_array, $process)
Class ilBPMN2ParserUtils.
getProcessNodeFromArray($bpmn2)
Create styles array
The data for the language used.
parseBPMN2XML($bpmn2_xml, $workflow_name=null)