Parcourir la source

imroved trafo ...

terfloth@itemis.de il y a 14 ans
Parent
commit
4aefafcaec

+ 597 - 0
plugins/org.yakindu.sct.model.sexec/model/sexec.ecorediag

@@ -0,0 +1,597 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_rNHyMN3uEeC2ApQLB53SXQ" type="EcoreTools" measurementUnit="Pixel">
+  <children xmi:type="notation:Node" xmi:id="_rNKOcN3uEeC2ApQLB53SXQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_rNK1gN3uEeC2ApQLB53SXQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_rNK1gd3uEeC2ApQLB53SXQ" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNK1gt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNK1g93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNK1hN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNK1hd3uEeC2ApQLB53SXQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNK1ht3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNK1h93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNK1iN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_rNKOcd3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//ExecutionFlow"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rNKOct3uEeC2ApQLB53SXQ" x="170" y="547"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_rNNRwN3uEeC2ApQLB53SXQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_rNN40N3uEeC2ApQLB53SXQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_rNN40d3uEeC2ApQLB53SXQ" type="5001">
+      <children xmi:type="notation:Node" xmi:id="_rNN42d3uEeC2ApQLB53SXQ" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sexec.ecore#//ExecutionState/simpleName"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_rNN42t3uEeC2ApQLB53SXQ"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_rNOf4N3uEeC2ApQLB53SXQ" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sexec.ecore#//ExecutionState/leaf"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_rNOf4d3uEeC2ApQLB53SXQ"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNN40t3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNN4093uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNN41N3uEeC2ApQLB53SXQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNN41d3uEeC2ApQLB53SXQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNN41t3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNN4193uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNN42N3uEeC2ApQLB53SXQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_rNNRwd3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//ExecutionState"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rNNRwt3uEeC2ApQLB53SXQ" x="825" y="422"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_rNOf4t3uEeC2ApQLB53SXQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_rNOf5d3uEeC2ApQLB53SXQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_rNPG8N3uEeC2ApQLB53SXQ" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNPG8d3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNPG8t3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNPG893uEeC2ApQLB53SXQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNPG9N3uEeC2ApQLB53SXQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNPG9d3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNPG9t3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNPG993uEeC2ApQLB53SXQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_rNOf493uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//Reaction"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rNOf5N3uEeC2ApQLB53SXQ" x="660" y="320"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_rNPG-N3uEeC2ApQLB53SXQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_rNPG-93uEeC2ApQLB53SXQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_rNPuAN3uEeC2ApQLB53SXQ" type="5001">
+      <children xmi:type="notation:Node" xmi:id="_rNPuCN3uEeC2ApQLB53SXQ" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sexec.ecore#//StateVector/size"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_rNPuCd3uEeC2ApQLB53SXQ"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_rNPuCt3uEeC2ApQLB53SXQ" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sexec.ecore#//StateVector/offset"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_rNPuC93uEeC2ApQLB53SXQ"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNPuAd3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNPuAt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNPuA93uEeC2ApQLB53SXQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNPuBN3uEeC2ApQLB53SXQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNPuBd3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNPuBt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNPuB93uEeC2ApQLB53SXQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_rNPG-d3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//StateVector"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rNPG-t3uEeC2ApQLB53SXQ" x="336" y="422"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_rNQVEN3uEeC2ApQLB53SXQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_rNQVE93uEeC2ApQLB53SXQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_rNQVFN3uEeC2ApQLB53SXQ" type="5001">
+      <children xmi:type="notation:Node" xmi:id="_rNQ8IN3uEeC2ApQLB53SXQ" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sexec.ecore#//NamedElement/name"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_rNQ8Id3uEeC2ApQLB53SXQ"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNQVFd3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNQVFt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNQVF93uEeC2ApQLB53SXQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNQVGN3uEeC2ApQLB53SXQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNQVGd3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNQVGt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNQVG93uEeC2ApQLB53SXQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_rNQVEd3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//NamedElement"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rNQVEt3uEeC2ApQLB53SXQ" x="985"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_rNQ8It3uEeC2ApQLB53SXQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_rNQ8Jd3uEeC2ApQLB53SXQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_rNQ8Jt3uEeC2ApQLB53SXQ" type="5001">
+      <children xmi:type="notation:Node" xmi:id="_rNRjNN3uEeC2ApQLB53SXQ" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sexec.ecore#//Step/comment"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_rNRjNd3uEeC2ApQLB53SXQ"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNQ8J93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNQ8KN3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNQ8Kd3uEeC2ApQLB53SXQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNRjMN3uEeC2ApQLB53SXQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNRjMd3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNRjMt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNRjM93uEeC2ApQLB53SXQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_rNQ8I93uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//Step"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rNQ8JN3uEeC2ApQLB53SXQ" x="658" y="109"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_rNRjNt3uEeC2ApQLB53SXQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_rNSKQN3uEeC2ApQLB53SXQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_rNSKQd3uEeC2ApQLB53SXQ" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNSKQt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNSKQ93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNSKRN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNSKRd3uEeC2ApQLB53SXQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNSKRt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNSKR93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNSKSN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_rNRjN93uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//Sequence"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rNRjON3uEeC2ApQLB53SXQ" x="324" y="218"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_rNSKSd3uEeC2ApQLB53SXQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_rNSxUN3uEeC2ApQLB53SXQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_rNSxUd3uEeC2ApQLB53SXQ" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNSxUt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNSxU93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNSxVN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNSxVd3uEeC2ApQLB53SXQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNSxVt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNSxV93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNSxWN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_rNSKSt3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//Cycle"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rNSKS93uEeC2ApQLB53SXQ" x="336" y="320"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_rNSxWd3uEeC2ApQLB53SXQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_rNSxXN3uEeC2ApQLB53SXQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_rNTYYN3uEeC2ApQLB53SXQ" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNTYYd3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNTYYt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNTYY93uEeC2ApQLB53SXQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNTYZN3uEeC2ApQLB53SXQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNTYZd3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNTYZt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNTYZ93uEeC2ApQLB53SXQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_rNSxWt3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//Check"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rNSxW93uEeC2ApQLB53SXQ" x="486" y="218"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_rNTYaN3uEeC2ApQLB53SXQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_rNT_cN3uEeC2ApQLB53SXQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_rNT_cd3uEeC2ApQLB53SXQ" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNT_ct3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNT_c93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNT_dN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNT_dd3uEeC2ApQLB53SXQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNT_dt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNT_d93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNT_eN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_rNTYad3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//If"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rNTYat3uEeC2ApQLB53SXQ" x="822" y="320"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_rNT_ed3uEeC2ApQLB53SXQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_rNUmgN3uEeC2ApQLB53SXQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_rNUmgd3uEeC2ApQLB53SXQ" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNUmgt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNUmg93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNUmhN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNUmhd3uEeC2ApQLB53SXQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNUmht3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNUmh93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNUmiN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_rNT_et3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//Execution"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rNT_e93uEeC2ApQLB53SXQ" y="218"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_rNUmid3uEeC2ApQLB53SXQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_rNVNkN3uEeC2ApQLB53SXQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_rNVNkd3uEeC2ApQLB53SXQ" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNVNkt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNVNk93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNVNlN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNVNld3uEeC2ApQLB53SXQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNVNlt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNVNl93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNVNmN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_rNUmit3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//EnterState"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rNUmi93uEeC2ApQLB53SXQ" x="1016" y="547"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_rNVNmd3uEeC2ApQLB53SXQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_rNV0oN3uEeC2ApQLB53SXQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_rNV0od3uEeC2ApQLB53SXQ" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNV0ot3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNV0o93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNV0pN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNV0pd3uEeC2ApQLB53SXQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNV0pt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNV0p93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNV0qN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_rNVNmt3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//ExitState"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rNVNm93uEeC2ApQLB53SXQ" x="854" y="547"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_rNV0qd3uEeC2ApQLB53SXQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_rNWbsN3uEeC2ApQLB53SXQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_rNWbsd3uEeC2ApQLB53SXQ" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNWbst3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNWbs93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNWbtN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNWbtd3uEeC2ApQLB53SXQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNWbtt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNWbt93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNWbuN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_rNV0qt3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//Call"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rNV0q93uEeC2ApQLB53SXQ" x="162" y="218"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_rNWbud3uEeC2ApQLB53SXQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_rNXCwN3uEeC2ApQLB53SXQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_rNXCwd3uEeC2ApQLB53SXQ" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNXCwt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNXCw93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNXCxN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNXCxd3uEeC2ApQLB53SXQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_rNXCxt3uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_rNXCx93uEeC2ApQLB53SXQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_rNXCyN3uEeC2ApQLB53SXQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_rNWbut3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//CheckRef"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rNWbu93uEeC2ApQLB53SXQ" x="498" y="320"/>
+  </children>
+  <styles xmi:type="notation:DiagramStyle" xmi:id="_rNHyMd3uEeC2ApQLB53SXQ"/>
+  <element xmi:type="ecore:EPackage" href="sexec.ecore#/"/>
+  <edges xmi:type="notation:Edge" xmi:id="_rNXCyd3uEeC2ApQLB53SXQ" type="3002" source="_rNKOcN3uEeC2ApQLB53SXQ" target="_rNNRwN3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNXp0N3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNXp0d3uEeC2ApQLB53SXQ" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNXp0t3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNXp093uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNXCyt3uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNXCy93uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//ExecutionFlow/states"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNXCzN3uEeC2ApQLB53SXQ" points="[0, 0, -607, 60]$[607, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSrnoN3uEeC2ApQLB53SXQ" id="(0.8627450980392157,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSrnod3uEeC2ApQLB53SXQ" id="(0.2962962962962963,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNXp1N3uEeC2ApQLB53SXQ" type="3002" source="_rNKOcN3uEeC2ApQLB53SXQ" target="_rNRjNt3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNXp2N3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNXp2d3uEeC2ApQLB53SXQ" x="-51" y="11"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNXp2t3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNXp293uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNXp1d3uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNXp1t3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//ExecutionFlow/sequences"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNXp193uEeC2ApQLB53SXQ" points="[0, 0, -129, 287]$[0, -227, -129, 60]$[129, -287, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSxHMN3uEeC2ApQLB53SXQ" id="(0.5784313725490197,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSxHMd3uEeC2ApQLB53SXQ" id="(0.3333333333333333,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNYQ4N3uEeC2ApQLB53SXQ" type="3002" source="_rNKOcN3uEeC2ApQLB53SXQ" target="_rNRjNt3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNYQ5N3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNYQ5d3uEeC2ApQLB53SXQ" x="-101" y="-4"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNYQ5t3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNYQ593uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNYQ4d3uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNYQ4t3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//ExecutionFlow/enterSequence"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNYQ493uEeC2ApQLB53SXQ" points="[0, 0, -131, 287]$[-149, -61, -280, 226]$[-149, -227, -280, 60]$[131, -287, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSwgId3uEeC2ApQLB53SXQ" id="(0.39215686274509803,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSwgIt3uEeC2ApQLB53SXQ" id="(0.16666666666666666,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNYQ6N3uEeC2ApQLB53SXQ" type="3002" source="_rNKOcN3uEeC2ApQLB53SXQ" target="_rNPG-N3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNYQ7N3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNYQ7d3uEeC2ApQLB53SXQ" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNY38N3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNY38d3uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNYQ6d3uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNYQ6t3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//ExecutionFlow/stateVector"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNYQ693uEeC2ApQLB53SXQ" points="[0, 0, -143, 60]$[143, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSrAkd3uEeC2ApQLB53SXQ" id="(0.7254901960784313,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSrAkt3uEeC2ApQLB53SXQ" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNY38t3uEeC2ApQLB53SXQ" type="3003" source="_rNKOcN3uEeC2ApQLB53SXQ" target="_rNQVEN3uEeC2ApQLB53SXQ">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNY3893uEeC2ApQLB53SXQ" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNY39N3uEeC2ApQLB53SXQ" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNY39d3uEeC2ApQLB53SXQ" points="[0, 0, -812, 498]$[0, -30, -812, 468]$[-236, -30, -1048, 468]$[-236, -468, -1048, 30]$[812, -468, 0, 30]$[812, -498, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rStc093uEeC2ApQLB53SXQ" id="(0.19607843137254902,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSuD4N3uEeC2ApQLB53SXQ" id="(0.16666666666666666,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNY39t3uEeC2ApQLB53SXQ" type="3002" source="_rNNRwN3uEeC2ApQLB53SXQ" target="_rNSKSd3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNY3-t3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNY3-93uEeC2ApQLB53SXQ" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNZfAN3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNZfAd3uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNY3993uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNY3-N3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//ExecutionState/cycle"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNY3-d3uEeC2ApQLB53SXQ" points="[0, 0, 471, 60]$[-471, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSlhAd3uEeC2ApQLB53SXQ" id="(0.24444444444444444,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSmIEN3uEeC2ApQLB53SXQ" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNZfAt3uEeC2ApQLB53SXQ" type="3002" source="_rNNRwN3uEeC2ApQLB53SXQ" target="_rNOf4t3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNZfBt3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNZfB93uEeC2ApQLB53SXQ" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNZfCN3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNZfCd3uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNZfA93uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNZfBN3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//ExecutionState/reactions"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNZfBd3uEeC2ApQLB53SXQ" points="[0, 0, 181, 60]$[-181, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSk58N3uEeC2ApQLB53SXQ" id="(0.4962962962962963,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSlhAN3uEeC2ApQLB53SXQ" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNZfCt3uEeC2ApQLB53SXQ" type="3003" source="_rNNRwN3uEeC2ApQLB53SXQ" target="_rNQVEN3uEeC2ApQLB53SXQ">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNZfC93uEeC2ApQLB53SXQ" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNZfDN3uEeC2ApQLB53SXQ" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNZfDd3uEeC2ApQLB53SXQ" points="[0, 0, -135, 373]$[0, -30, -135, 343]$[110, -30, -25, 343]$[110, -132, -25, 241]$[172, -132, 37, 241]$[172, -343, 37, 30]$[135, -343, 0, 30]$[135, -373, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSs1wt3uEeC2ApQLB53SXQ" id="(0.7481481481481481,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rStc0N3uEeC2ApQLB53SXQ" id="(0.7450980392156863,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNaGEN3uEeC2ApQLB53SXQ" type="3002" source="_rNOf4t3uEeC2ApQLB53SXQ" target="_rNSxWd3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNaGFN3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNaGFd3uEeC2ApQLB53SXQ" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNaGFt3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNaGF93uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNaGEd3uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNaGEt3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//Reaction/check"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNaGE93uEeC2ApQLB53SXQ" points="[0, 0, 131, 60]$[-131, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSmIEd3uEeC2ApQLB53SXQ" id="(0.24509803921568626,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSmIEt3uEeC2ApQLB53SXQ" id="(0.6666666666666666,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNaGGN3uEeC2ApQLB53SXQ" type="3002" source="_rNOf4t3uEeC2ApQLB53SXQ" target="_rNQ8It3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNatIN3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNatId3uEeC2ApQLB53SXQ" x="-39" y="17"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNatIt3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNatI93uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNaGGd3uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNaGGt3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//Reaction/effect"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNaGG93uEeC2ApQLB53SXQ" points="[0, 0, 1, 162]$[-50, -61, -49, 101]$[-50, -102, -49, 60]$[-1, -162, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSuD4d3uEeC2ApQLB53SXQ" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSuD4t3uEeC2ApQLB53SXQ" id="(0.43333333333333335,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNatJN3uEeC2ApQLB53SXQ" type="3003" source="_rNOf4t3uEeC2ApQLB53SXQ" target="_rNQVEN3uEeC2ApQLB53SXQ">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNatJd3uEeC2ApQLB53SXQ" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNatJt3uEeC2ApQLB53SXQ" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNatJ93uEeC2ApQLB53SXQ" points="[0, 0, -300, 271]$[0, -30, -300, 241]$[300, -30, 0, 241]$[300, -271, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rStc0d3uEeC2ApQLB53SXQ" id="(0.7450980392156863,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rStc0t3uEeC2ApQLB53SXQ" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNatKN3uEeC2ApQLB53SXQ" type="3003" source="_rNQ8It3uEeC2ApQLB53SXQ" target="_rNQVEN3uEeC2ApQLB53SXQ">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNatKd3uEeC2ApQLB53SXQ" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNatKt3uEeC2ApQLB53SXQ" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNatK93uEeC2ApQLB53SXQ" points="[0, 0, -301, 60]$[0, -30, -301, 30]$[301, -30, 0, 30]$[301, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSqZgN3uEeC2ApQLB53SXQ" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSqZgd3uEeC2ApQLB53SXQ" id="(0.3333333333333333,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNbUMN3uEeC2ApQLB53SXQ" type="3002" source="_rNRjNt3uEeC2ApQLB53SXQ" target="_rNQ8It3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNbUNN3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNbUNd3uEeC2ApQLB53SXQ" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNbUNt3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNbUN93uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNbUMd3uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNbUMt3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//Sequence/steps"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNbUM93uEeC2ApQLB53SXQ" points="[0, 0, -330, 60]$[330, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSn9QN3uEeC2ApQLB53SXQ" id="(0.3333333333333333,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSn9Qd3uEeC2ApQLB53SXQ" id="(0.25,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNbUON3uEeC2ApQLB53SXQ" type="3003" source="_rNRjNt3uEeC2ApQLB53SXQ" target="_rNQ8It3uEeC2ApQLB53SXQ">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNbUOd3uEeC2ApQLB53SXQ" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNbUOt3uEeC2ApQLB53SXQ" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNbUO93uEeC2ApQLB53SXQ" points="[0, 0, -303, 60]$[0, -30, -303, 30]$[303, -30, 0, 30]$[303, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSokUN3uEeC2ApQLB53SXQ" id="(0.6666666666666666,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSokUd3uEeC2ApQLB53SXQ" id="(0.30833333333333335,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNbUPN3uEeC2ApQLB53SXQ" type="3003" source="_rNSKSd3uEeC2ApQLB53SXQ" target="_rNRjNt3uEeC2ApQLB53SXQ">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNbUPd3uEeC2ApQLB53SXQ" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNbUPt3uEeC2ApQLB53SXQ" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNbUP93uEeC2ApQLB53SXQ" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSpLYd3uEeC2ApQLB53SXQ" id="(0.38235294117647056,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSpLYt3uEeC2ApQLB53SXQ" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNb7QN3uEeC2ApQLB53SXQ" type="3003" source="_rNSxWd3uEeC2ApQLB53SXQ" target="_rNQ8It3uEeC2ApQLB53SXQ">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNb7Qd3uEeC2ApQLB53SXQ" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNb7Qt3uEeC2ApQLB53SXQ" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNb7Q93uEeC2ApQLB53SXQ" points="[0, 0, -166, 60]$[0, -30, -166, 30]$[166, -30, 0, 30]$[166, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSokUt3uEeC2ApQLB53SXQ" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSpLYN3uEeC2ApQLB53SXQ" id="(0.375,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNb7RN3uEeC2ApQLB53SXQ" type="3002" source="_rNTYaN3uEeC2ApQLB53SXQ" target="_rNSxWd3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNb7SN3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNb7Sd3uEeC2ApQLB53SXQ" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNb7St3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNb7S93uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNb7Rd3uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNb7Rt3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//If/check"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNb7R93uEeC2ApQLB53SXQ" points="[0, 0, 271, 60]$[-271, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSqZgt3uEeC2ApQLB53SXQ" id="(0.19607843137254902,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSrAkN3uEeC2ApQLB53SXQ" id="(0.8333333333333334,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNciUN3uEeC2ApQLB53SXQ" type="3002" source="_rNTYaN3uEeC2ApQLB53SXQ" target="_rNQ8It3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNciVN3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNciVd3uEeC2ApQLB53SXQ" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNciVt3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNciV93uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNciUd3uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNciUt3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//If/thenStep"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNciU93uEeC2ApQLB53SXQ" points="[0, 0, 161, 162]$[20, -61, 181, 101]$[20, -102, 181, 60]$[-161, -162, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSvSAN3uEeC2ApQLB53SXQ" id="(0.7941176470588235,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSvSAd3uEeC2ApQLB53SXQ" id="(0.7,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNciWN3uEeC2ApQLB53SXQ" type="3002" source="_rNTYaN3uEeC2ApQLB53SXQ" target="_rNQ8It3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNciXN3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNdJYN3uEeC2ApQLB53SXQ" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNdJYd3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNdJYt3uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNciWd3uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNciWt3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//If/elseStep"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNciW93uEeC2ApQLB53SXQ" points="[0, 0, 153, 162]$[-86, -61, 67, 101]$[-88, -102, 65, 60]$[-153, -162, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSuq8t3uEeC2ApQLB53SXQ" id="(0.5980392156862745,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSuq893uEeC2ApQLB53SXQ" id="(0.6,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNdJY93uEeC2ApQLB53SXQ" type="3003" source="_rNTYaN3uEeC2ApQLB53SXQ" target="_rNQ8It3uEeC2ApQLB53SXQ">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNdJZN3uEeC2ApQLB53SXQ" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNdJZd3uEeC2ApQLB53SXQ" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNdJZt3uEeC2ApQLB53SXQ" points="[0, 0, 144, 162]$[0, -30, 144, 132]$[-144, -30, 0, 132]$[-144, -162, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSuq8N3uEeC2ApQLB53SXQ" id="(0.39215686274509803,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSuq8d3uEeC2ApQLB53SXQ" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNdJZ93uEeC2ApQLB53SXQ" type="3003" source="_rNT_ed3uEeC2ApQLB53SXQ" target="_rNQ8It3uEeC2ApQLB53SXQ">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNdJaN3uEeC2ApQLB53SXQ" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNdJad3uEeC2ApQLB53SXQ" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNdJat3uEeC2ApQLB53SXQ" points="[0, 0, -614, 60]$[0, -30, -614, 30]$[614, -30, 0, 30]$[614, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSmvIN3uEeC2ApQLB53SXQ" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSmvId3uEeC2ApQLB53SXQ" id="(0.058333333333333334,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNdwcN3uEeC2ApQLB53SXQ" type="3002" source="_rNUmid3uEeC2ApQLB53SXQ" target="_rNNRwN3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNdwdN3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNdwdd3uEeC2ApQLB53SXQ" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNdwdt3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNdwd93uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNdwcd3uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNdwct3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//EnterState/state"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNdwc93uEeC2ApQLB53SXQ" points="[0, 0, 109, 60]$[-109, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSs1wN3uEeC2ApQLB53SXQ" id="(0.24509803921568626,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSs1wd3uEeC2ApQLB53SXQ" id="(0.7925925925925926,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNdweN3uEeC2ApQLB53SXQ" type="3003" source="_rNUmid3uEeC2ApQLB53SXQ" target="_rNQ8It3uEeC2ApQLB53SXQ">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNdwed3uEeC2ApQLB53SXQ" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNdwet3uEeC2ApQLB53SXQ" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNdwe93uEeC2ApQLB53SXQ" points="[0, 0, 301, 389]$[0, -359, 301, 30]$[-301, -359, 0, 30]$[-301, -389, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSv5Et3uEeC2ApQLB53SXQ" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSwgIN3uEeC2ApQLB53SXQ" id="(0.9,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNdwfN3uEeC2ApQLB53SXQ" type="3002" source="_rNVNmd3uEeC2ApQLB53SXQ" target="_rNNRwN3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNeXgN3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNeXgd3uEeC2ApQLB53SXQ" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNeXgt3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNeXg93uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNdwfd3uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNdwft3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//ExitState/state"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNdwf93uEeC2ApQLB53SXQ" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSsOsN3uEeC2ApQLB53SXQ" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSsOsd3uEeC2ApQLB53SXQ" id="(0.5925925925925926,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNeXhN3uEeC2ApQLB53SXQ" type="3003" source="_rNVNmd3uEeC2ApQLB53SXQ" target="_rNQ8It3uEeC2ApQLB53SXQ">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNeXhd3uEeC2ApQLB53SXQ" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNeXht3uEeC2ApQLB53SXQ" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNeXh93uEeC2ApQLB53SXQ" points="[0, 0, 176, 389]$[0, -30, 176, 359]$[75, -30, 251, 359]$[75, -359, 251, 30]$[-176, -359, 0, 30]$[-176, -389, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSv5EN3uEeC2ApQLB53SXQ" id="(0.7450980392156863,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSv5Ed3uEeC2ApQLB53SXQ" id="(0.8,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNeXiN3uEeC2ApQLB53SXQ" type="3002" source="_rNV0qd3uEeC2ApQLB53SXQ" target="_rNQ8It3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNe-kN3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNe-kd3uEeC2ApQLB53SXQ" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNe-kt3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNe-k93uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNeXid3uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNeXit3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//Call/step"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNeXi93uEeC2ApQLB53SXQ" points="[0, 0, -450, 60]$[450, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSnWMd3uEeC2ApQLB53SXQ" id="(0.6666666666666666,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSnWMt3uEeC2ApQLB53SXQ" id="(0.18333333333333332,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNe-lN3uEeC2ApQLB53SXQ" type="3003" source="_rNV0qd3uEeC2ApQLB53SXQ" target="_rNQ8It3uEeC2ApQLB53SXQ">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNe-ld3uEeC2ApQLB53SXQ" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNe-lt3uEeC2ApQLB53SXQ" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNe-l93uEeC2ApQLB53SXQ" points="[0, 0, -477, 60]$[0, -30, -477, 30]$[477, -30, 0, 30]$[477, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSmvIt3uEeC2ApQLB53SXQ" id="(0.3333333333333333,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSnWMN3uEeC2ApQLB53SXQ" id="(0.125,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNfloN3uEeC2ApQLB53SXQ" type="3002" source="_rNWbud3uEeC2ApQLB53SXQ" target="_rNSxWd3uEeC2ApQLB53SXQ">
+    <children xmi:type="notation:Node" xmi:id="_rNflpN3uEeC2ApQLB53SXQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNflpd3uEeC2ApQLB53SXQ" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_rNgMsN3uEeC2ApQLB53SXQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rNgMsd3uEeC2ApQLB53SXQ" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNflod3uEeC2ApQLB53SXQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNflot3uEeC2ApQLB53SXQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//CheckRef/check"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNflo93uEeC2ApQLB53SXQ" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSpycd3uEeC2ApQLB53SXQ" id="(0.38235294117647056,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSpyct3uEeC2ApQLB53SXQ" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_rNgMst3uEeC2ApQLB53SXQ" type="3003" source="_rNWbud3uEeC2ApQLB53SXQ" target="_rNSxWd3uEeC2ApQLB53SXQ">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_rNgMs93uEeC2ApQLB53SXQ" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rNgMtN3uEeC2ApQLB53SXQ" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rNgMtd3uEeC2ApQLB53SXQ" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSpLY93uEeC2ApQLB53SXQ" id="(0.38235294117647056,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rSpycN3uEeC2ApQLB53SXQ" id="(0.5,1.0)"/>
+  </edges>
+</notation:Diagram>

+ 232 - 0
plugins/org.yakindu.sct.model.sexec/xtend-gen/org/yakindu/sct/model/sexec/transformation/FactoryExtension.java

@@ -0,0 +1,232 @@
+package org.yakindu.sct.model.sexec.transformation;
+
+import com.google.inject.Inject;
+import java.util.ArrayList;
+import java.util.HashMap;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.xtext.naming.IQualifiedNameProvider;
+import org.eclipse.xtext.naming.QualifiedName;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+import org.yakindu.sct.model.sexec.Call;
+import org.yakindu.sct.model.sexec.Check;
+import org.yakindu.sct.model.sexec.CheckRef;
+import org.yakindu.sct.model.sexec.ExecutionFlow;
+import org.yakindu.sct.model.sexec.ExecutionState;
+import org.yakindu.sct.model.sexec.SexecFactory;
+import org.yakindu.sct.model.sexec.Step;
+import org.yakindu.sct.model.sexec.transformation.StatechartExtensions;
+import org.yakindu.sct.model.sgraph.Reaction;
+import org.yakindu.sct.model.sgraph.Scope;
+import org.yakindu.sct.model.sgraph.State;
+import org.yakindu.sct.model.sgraph.Statechart;
+import org.yakindu.sct.model.sgraph.Transition;
+import org.yakindu.sct.model.stext.stext.EventDefinition;
+import org.yakindu.sct.model.stext.stext.InterfaceScope;
+import org.yakindu.sct.model.stext.stext.InternalScope;
+import org.yakindu.sct.model.stext.stext.ReactionTrigger;
+import org.yakindu.sct.model.stext.stext.StextFactory;
+import org.yakindu.sct.model.stext.stext.VariableDefinition;
+
+@SuppressWarnings("all")
+public class FactoryExtension {
+  
+  @Inject
+  private IQualifiedNameProvider qfnProvider;
+  
+  @Inject
+  private StatechartExtensions sce;
+  
+  private final HashMap<ArrayList<?>,ExecutionFlow> _createCache_create = new HashMap<ArrayList<?>,ExecutionFlow>();
+  
+  public ExecutionFlow create(final Statechart statechart) {
+    final ArrayList<?>_cacheKey = CollectionLiterals.newArrayList(statechart);
+    ExecutionFlow r;
+    synchronized (_createCache_create) {
+      if (_createCache_create.containsKey(_cacheKey)) {
+        return _createCache_create.get(_cacheKey);
+      }
+      SexecFactory _sexecFactory = this.sexecFactory();
+      ExecutionFlow _createExecutionFlow = _sexecFactory.createExecutionFlow();
+      r = _createExecutionFlow;
+      _createCache_create.put(_cacheKey, r);
+    }
+    String _name = statechart.getName();
+    r.setName(_name);
+    return r;
+  }
+  
+  private final HashMap<ArrayList<?>,InterfaceScope> _createCache_create_1 = new HashMap<ArrayList<?>,InterfaceScope>();
+  
+  protected Scope _create(final InterfaceScope scope) {
+    final ArrayList<?>_cacheKey = CollectionLiterals.newArrayList(scope);
+    InterfaceScope r;
+    synchronized (_createCache_create_1) {
+      if (_createCache_create_1.containsKey(_cacheKey)) {
+        return _createCache_create_1.get(_cacheKey);
+      }
+      StextFactory _stextFactory = this.stextFactory();
+      InterfaceScope _createInterfaceScope = _stextFactory.createInterfaceScope();
+      r = _createInterfaceScope;
+      _createCache_create_1.put(_cacheKey, r);
+    }
+    String _name = scope.getName();
+    r.setName(_name);
+    return r;
+  }
+  
+  private final HashMap<ArrayList<?>,InternalScope> _createCache_create_2 = new HashMap<ArrayList<?>,InternalScope>();
+  
+  protected Scope _create(final InternalScope scope) {
+    final ArrayList<?>_cacheKey = CollectionLiterals.newArrayList(scope);
+    InternalScope r;
+    synchronized (_createCache_create_2) {
+      if (_createCache_create_2.containsKey(_cacheKey)) {
+        return _createCache_create_2.get(_cacheKey);
+      }
+      StextFactory _stextFactory = this.stextFactory();
+      InternalScope _createInternalScope = _stextFactory.createInternalScope();
+      r = _createInternalScope;
+      _createCache_create_2.put(_cacheKey, r);
+    }
+    return r;
+  }
+  
+  private final HashMap<ArrayList<?>,EventDefinition> _createCache_create_3 = new HashMap<ArrayList<?>,EventDefinition>();
+  
+  public EventDefinition create(final EventDefinition event) {
+    final ArrayList<?>_cacheKey = CollectionLiterals.newArrayList(event);
+    EventDefinition r;
+    synchronized (_createCache_create_3) {
+      if (_createCache_create_3.containsKey(_cacheKey)) {
+        return _createCache_create_3.get(_cacheKey);
+      }
+      EventDefinition _copy = EcoreUtil.<EventDefinition>copy(event);
+      r = _copy;
+      _createCache_create_3.put(_cacheKey, r);
+    }
+    return r;
+  }
+  
+  private final HashMap<ArrayList<?>,VariableDefinition> _createCache_create_4 = new HashMap<ArrayList<?>,VariableDefinition>();
+  
+  public VariableDefinition create(final VariableDefinition v) {
+    final ArrayList<?>_cacheKey = CollectionLiterals.newArrayList(v);
+    VariableDefinition r;
+    synchronized (_createCache_create_4) {
+      if (_createCache_create_4.containsKey(_cacheKey)) {
+        return _createCache_create_4.get(_cacheKey);
+      }
+      VariableDefinition _copy = EcoreUtil.<VariableDefinition>copy(v);
+      r = _copy;
+      _createCache_create_4.put(_cacheKey, r);
+    }
+    return r;
+  }
+  
+  private final HashMap<ArrayList<?>,ExecutionState> _createCache_create_5 = new HashMap<ArrayList<?>,ExecutionState>();
+  
+  public ExecutionState create(final State state) {
+    final ArrayList<?>_cacheKey = CollectionLiterals.newArrayList(state);
+    ExecutionState r;
+    synchronized (_createCache_create_5) {
+      if (_createCache_create_5.containsKey(_cacheKey)) {
+        return _createCache_create_5.get(_cacheKey);
+      }
+      SexecFactory _sexecFactory = this.sexecFactory();
+      ExecutionState _createExecutionState = _sexecFactory.createExecutionState();
+      r = _createExecutionState;
+      _createCache_create_5.put(_cacheKey, r);
+    }
+    {
+      String _name = state.getName();
+      r.setSimpleName(_name);
+      QualifiedName _fullyQualifiedName = this.qfnProvider.getFullyQualifiedName(state);
+      String _string = _fullyQualifiedName.toString();
+      String _replaceAll = _string.replaceAll(" ", "");
+      r.setName(_replaceAll);
+    }
+    return r;
+  }
+  
+  private final HashMap<ArrayList<?>,Check> _createCache_createCheck = new HashMap<ArrayList<?>,Check>();
+  
+  public Check createCheck(final ReactionTrigger tr) {
+    final ArrayList<?>_cacheKey = CollectionLiterals.newArrayList(tr);
+    Check r;
+    synchronized (_createCache_createCheck) {
+      if (_createCache_createCheck.containsKey(_cacheKey)) {
+        return _createCache_createCheck.get(_cacheKey);
+      }
+      SexecFactory _sexecFactory = this.sexecFactory();
+      Check _createCheck = _sexecFactory.createCheck();
+      r = _createCheck;
+      _createCache_createCheck.put(_cacheKey, r);
+    }
+    Reaction _reaction = this.sce.reaction(tr);
+    String _id = this.sce.id(_reaction);
+    r.setName(_id);
+    return r;
+  }
+  
+  private final HashMap<ArrayList<?>,org.yakindu.sct.model.sexec.Reaction> _createCache_create_6 = new HashMap<ArrayList<?>,org.yakindu.sct.model.sexec.Reaction>();
+  
+  public org.yakindu.sct.model.sexec.Reaction create(final Transition tr) {
+    final ArrayList<?>_cacheKey = CollectionLiterals.newArrayList(tr);
+    org.yakindu.sct.model.sexec.Reaction r;
+    synchronized (_createCache_create_6) {
+      if (_createCache_create_6.containsKey(_cacheKey)) {
+        return _createCache_create_6.get(_cacheKey);
+      }
+      SexecFactory _sexecFactory = this.sexecFactory();
+      org.yakindu.sct.model.sexec.Reaction _createReaction = _sexecFactory.createReaction();
+      r = _createReaction;
+      _createCache_create_6.put(_cacheKey, r);
+    }
+    String _id = this.sce.id(tr);
+    r.setName(_id);
+    return r;
+  }
+  
+  public CheckRef newRef(final Check check) {
+    CheckRef _xblockexpression = null;
+    {
+      SexecFactory _sexecFactory = this.sexecFactory();
+      CheckRef _createCheckRef = _sexecFactory.createCheckRef();
+      final CheckRef r = _createCheckRef;
+      r.setCheck(check);
+      _xblockexpression = (r);
+    }
+    return _xblockexpression;
+  }
+  
+  public Call newCall(final Step step) {
+    Call _xblockexpression = null;
+    {
+      SexecFactory _sexecFactory = this.sexecFactory();
+      Call _createCall = _sexecFactory.createCall();
+      final Call r = _createCall;
+      r.setStep(step);
+      _xblockexpression = (r);
+    }
+    return _xblockexpression;
+  }
+  
+  public SexecFactory sexecFactory() {
+    return SexecFactory.eINSTANCE;
+  }
+  
+  public StextFactory stextFactory() {
+    return StextFactory.eINSTANCE;
+  }
+  
+  public Scope create(final Scope scope) {
+    if ((scope instanceof InterfaceScope)) {
+      return _create((InterfaceScope)scope);
+    } else if ((scope instanceof InternalScope)) {
+      return _create((InternalScope)scope);
+    } else {
+      throw new IllegalArgumentException("Unhandled parameter types: " +
+        java.util.Arrays.<Object>asList(scope).toString());
+    }
+  }
+}

+ 531 - 0
plugins/org.yakindu.sct.model.sexec/xtend-gen/org/yakindu/sct/model/sexec/transformation/ModelSequencer.java

@@ -0,0 +1,531 @@
+package org.yakindu.sct.model.sexec.transformation;
+
+import com.google.inject.Inject;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.EcoreUtil2;
+import org.eclipse.xtext.naming.IQualifiedNameProvider;
+import org.eclipse.xtext.xbase.lib.BooleanExtensions;
+import org.eclipse.xtext.xbase.lib.CollectionExtensions;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.Functions.Function2;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.ListExtensions;
+import org.eclipse.xtext.xbase.lib.ObjectExtensions;
+import org.yakindu.sct.model.sexec.Call;
+import org.yakindu.sct.model.sexec.Check;
+import org.yakindu.sct.model.sexec.CheckRef;
+import org.yakindu.sct.model.sexec.Cycle;
+import org.yakindu.sct.model.sexec.EnterState;
+import org.yakindu.sct.model.sexec.ExecutionFlow;
+import org.yakindu.sct.model.sexec.ExecutionState;
+import org.yakindu.sct.model.sexec.ExitState;
+import org.yakindu.sct.model.sexec.If;
+import org.yakindu.sct.model.sexec.Reaction;
+import org.yakindu.sct.model.sexec.Sequence;
+import org.yakindu.sct.model.sexec.SexecFactory;
+import org.yakindu.sct.model.sexec.StateVector;
+import org.yakindu.sct.model.sexec.Step;
+import org.yakindu.sct.model.sexec.transformation.FactoryExtension;
+import org.yakindu.sct.model.sexec.transformation.StatechartExtensions;
+import org.yakindu.sct.model.sgraph.Declaration;
+import org.yakindu.sct.model.sgraph.Entry;
+import org.yakindu.sct.model.sgraph.Event;
+import org.yakindu.sct.model.sgraph.Region;
+import org.yakindu.sct.model.sgraph.Scope;
+import org.yakindu.sct.model.sgraph.State;
+import org.yakindu.sct.model.sgraph.Statechart;
+import org.yakindu.sct.model.sgraph.Statement;
+import org.yakindu.sct.model.sgraph.Transition;
+import org.yakindu.sct.model.sgraph.Trigger;
+import org.yakindu.sct.model.sgraph.Vertex;
+import org.yakindu.sct.model.stext.stext.ElementReferenceExpression;
+import org.yakindu.sct.model.stext.stext.EventDefinition;
+import org.yakindu.sct.model.stext.stext.EventSpec;
+import org.yakindu.sct.model.stext.stext.Expression;
+import org.yakindu.sct.model.stext.stext.LogicalOrExpression;
+import org.yakindu.sct.model.stext.stext.ReactionTrigger;
+import org.yakindu.sct.model.stext.stext.RegularEventSpec;
+import org.yakindu.sct.model.stext.stext.StextFactory;
+import org.yakindu.sct.model.stext.stext.VariableDefinition;
+
+@SuppressWarnings("all")
+public class ModelSequencer {
+  
+  @Inject
+  private IQualifiedNameProvider qfnProvider;
+  
+  @Inject
+  private FactoryExtension factory;
+  
+  @Inject
+  private StatechartExtensions sct;
+  
+  public ExecutionFlow transform(final Statechart sc) {
+    {
+      ExecutionFlow _create = this.factory.create(sc);
+      final ExecutionFlow ef = _create;
+      this.mapScopes(sc, ef);
+      this.mapStates(sc, ef);
+      this.defineStateVector(ef, sc);
+      this.defineEnterSequence(ef, sc);
+      this.defineStateCycles(ef, sc);
+      return ef;
+    }
+  }
+  
+  public ExecutionFlow mapScopes(final Statechart sc, final ExecutionFlow flow) {
+    ExecutionFlow _xblockexpression = null;
+    {
+      EList<Scope> _scopes = flow.getScopes();
+      EList<Scope> _scopes_1 = sc.getScopes();
+      final Function1<Scope,Scope> _function = new Function1<Scope,Scope>() {
+          public Scope apply(final Scope scope) {
+            Scope _map = ModelSequencer.this.map(scope);
+            return _map;
+          }
+        };
+      List<Scope> _map_1 = ListExtensions.<Scope, Scope>map(_scopes_1, _function);
+      _scopes.addAll(_map_1);
+      _xblockexpression = (flow);
+    }
+    return _xblockexpression;
+  }
+  
+  public Scope map(final Scope scope) {
+    {
+      Scope _create = this.factory.create(scope);
+      final Scope _scope = _create;
+      EList<Declaration> _declarations = _scope.getDeclarations();
+      EList<Declaration> _declarations_1 = scope.getDeclarations();
+      final Function1<Declaration,Declaration> _function = new Function1<Declaration,Declaration>() {
+          public Declaration apply(final Declaration decl) {
+            Declaration _map = ModelSequencer.this.map(decl);
+            return _map;
+          }
+        };
+      List<Declaration> _map_1 = ListExtensions.<Declaration, Declaration>map(_declarations_1, _function);
+      final Function1<Declaration,Boolean> _function_1 = new Function1<Declaration,Boolean>() {
+          public Boolean apply(final Declaration e) {
+            boolean _operator_notEquals = ObjectExtensions.operator_notEquals(e, null);
+            return ((Boolean)_operator_notEquals);
+          }
+        };
+      Iterable<Declaration> _filter = IterableExtensions.<Declaration>filter(_map_1, _function_1);
+      CollectionExtensions.<Declaration>addAll(_declarations, _filter);
+      return _scope;
+    }
+  }
+  
+  protected Declaration _map(final Declaration decl) {
+    return null;
+  }
+  
+  protected Declaration _map(final EventDefinition e) {
+    {
+      EventDefinition _create = this.factory.create(e);
+      final EventDefinition _e = _create;
+      return _e;
+    }
+  }
+  
+  protected Declaration _map(final VariableDefinition v) {
+    {
+      VariableDefinition _create = this.factory.create(v);
+      final VariableDefinition _v = _create;
+      return _v;
+    }
+  }
+  
+  public ExecutionFlow mapStates(final Statechart statechart, final ExecutionFlow r) {
+    {
+      List<EObject> _eAllContentsAsList = EcoreUtil2.eAllContentsAsList(statechart);
+      List<EObject> content = _eAllContentsAsList;
+      final Function1<EObject,Boolean> _function = new Function1<EObject,Boolean>() {
+          public Boolean apply(final EObject e) {
+            return (e instanceof org.yakindu.sct.model.sgraph.State);
+          }
+        };
+      Iterable<EObject> _filter = IterableExtensions.<EObject>filter(content, _function);
+      final Iterable<EObject> allStates = _filter;
+      EList<ExecutionState> _states = r.getStates();
+      final Function1<EObject,ExecutionState> _function_1 = new Function1<EObject,ExecutionState>() {
+          public ExecutionState apply(final EObject s) {
+            ExecutionState _mapState = ModelSequencer.this.mapState(((State) s));
+            return _mapState;
+          }
+        };
+      Iterable<ExecutionState> _map = IterableExtensions.<EObject, ExecutionState>map(allStates, _function_1);
+      CollectionExtensions.<ExecutionState>addAll(_states, _map);
+      return r;
+    }
+  }
+  
+  public ExecutionState mapState(final State state) {
+    ExecutionState _xblockexpression = null;
+    {
+      ExecutionState _create = this.factory.create(state);
+      final ExecutionState _state = _create;
+      EList<Reaction> _reactions = _state.getReactions();
+      EList<Transition> _outgoingTransitions = state.getOutgoingTransitions();
+      final Function1<Transition,Reaction> _function = new Function1<Transition,Reaction>() {
+          public Reaction apply(final Transition t) {
+            Reaction _mapTransition = ModelSequencer.this.mapTransition(t);
+            return _mapTransition;
+          }
+        };
+      List<Reaction> _map = ListExtensions.<Transition, Reaction>map(_outgoingTransitions, _function);
+      _reactions.addAll(_map);
+      boolean _isSimple = state.isSimple();
+      _state.setLeaf(_isSimple);
+      _xblockexpression = (_state);
+    }
+    return _xblockexpression;
+  }
+  
+  public Reaction mapTransition(final Transition t) {
+    {
+      Reaction _create = this.factory.create(t);
+      final Reaction r = _create;
+      Trigger _trigger = t.getTrigger();
+      Check _mapToCheck = this.mapToCheck(_trigger);
+      r.setCheck(_mapToCheck);
+      Sequence _mapToEffect = this.mapToEffect(t);
+      r.setEffect(_mapToEffect);
+      return r;
+    }
+  }
+  
+  public Sequence mapToEffect(final Transition t) {
+    {
+      SexecFactory _sexecFactory = this.sexecFactory();
+      Sequence _createSequence = _sexecFactory.createSequence();
+      final Sequence sequence = _createSequence;
+      Vertex _source = t.getSource();
+      boolean _operator_notEquals = ObjectExtensions.operator_notEquals(_source, null);
+      if (_operator_notEquals) {
+        EList<Step> _steps = sequence.getSteps();
+        Vertex _source_1 = t.getSource();
+        ExitState _newExitStateStep = this.newExitStateStep(((State) _source_1));
+        _steps.add(_newExitStateStep);
+      }
+      Vertex _target = t.getTarget();
+      boolean _operator_notEquals_1 = ObjectExtensions.operator_notEquals(_target, null);
+      if (_operator_notEquals_1) {
+        EList<Step> _steps_1 = sequence.getSteps();
+        Vertex _target_1 = t.getTarget();
+        EnterState _newEnterStateStep = this.newEnterStateStep(((State) _target_1));
+        _steps_1.add(_newEnterStateStep);
+      }
+      return sequence;
+    }
+  }
+  
+  public ExecutionFlow defineStateCycles(final ExecutionFlow flow, final Statechart sc) {
+    {
+      EList<ExecutionState> _states = flow.getStates();
+      final Function1<ExecutionState,Boolean> _function = new Function1<ExecutionState,Boolean>() {
+          public Boolean apply(final ExecutionState s) {
+            boolean _isLeaf = s.isLeaf();
+            return ((Boolean)_isLeaf);
+          }
+        };
+      Iterable<ExecutionState> _filter = IterableExtensions.<ExecutionState>filter(_states, _function);
+      final Function1<ExecutionState,Cycle> _function_1 = new Function1<ExecutionState,Cycle>() {
+          public Cycle apply(final ExecutionState s_1) {
+            Cycle _defineCycle = ModelSequencer.this.defineCycle(s_1);
+            return _defineCycle;
+          }
+        };
+      IterableExtensions.<ExecutionState>forEach(_filter, _function_1);
+      return flow;
+    }
+  }
+  
+  public Cycle defineCycle(final ExecutionState state) {
+    {
+      SexecFactory _sexecFactory = this.sexecFactory();
+      Cycle _createCycle = _sexecFactory.createCycle();
+      final Cycle cycle = _createCycle;
+      state.setCycle(cycle);
+      EList<Reaction> _reactions = state.getReactions();
+      Iterable<Reaction> _reverseView = ListExtensions.<Reaction>reverseView(_reactions);
+      final Function2<If,Reaction,If> _function = new Function2<If,Reaction,If>() {
+          public If apply(final If s , final Reaction reaction) {
+            If _xblockexpression = null;
+            {
+              SexecFactory _sexecFactory_1 = ModelSequencer.this.sexecFactory();
+              If _createIf = _sexecFactory_1.createIf();
+              If ifStep = _createIf;
+              Check _check = reaction.getCheck();
+              CheckRef _newRef = ModelSequencer.this.factory.newRef(_check);
+              ifStep.setCheck(_newRef);
+              Step _effect = reaction.getEffect();
+              Call _newCall = ModelSequencer.this.factory.newCall(_effect);
+              ifStep.setThenStep(_newCall);
+              ifStep.setElseStep(s);
+              _xblockexpression = (ifStep);
+            }
+            return _xblockexpression;
+          }
+        };
+      If _fold = IterableExtensions.<Reaction, If>fold(_reverseView, ((If) null), _function);
+      final If step = _fold;
+      boolean _operator_notEquals = ObjectExtensions.operator_notEquals(step, null);
+      if (_operator_notEquals) {
+        EList<Step> _steps = cycle.getSteps();
+        _steps.add(step);
+      }
+      return cycle;
+    }
+  }
+  
+  protected Check _mapToCheck(final Trigger tr) {
+    return null;
+  }
+  
+  protected Check _mapToCheck(final ReactionTrigger tr) {
+    {
+      Check _createCheck = this.factory.createCheck(tr);
+      final Check check = _createCheck;
+      Statement _buildCondition = this.buildCondition(tr);
+      check.setCondition(_buildCondition);
+      return check;
+    }
+  }
+  
+  protected Statement _buildCondition(final Trigger t) {
+    return null;
+  }
+  
+  protected Statement _buildCondition(final ReactionTrigger t) {
+    Expression _xifexpression = null;
+    EList<EventSpec> _triggers = t.getTriggers();
+    boolean _isEmpty = _triggers.isEmpty();
+    boolean _operator_not = BooleanExtensions.operator_not(_isEmpty);
+    if (_operator_not) {
+      EList<EventSpec> _triggers_1 = t.getTriggers();
+      Iterable<EventSpec> _reverseView = ListExtensions.<EventSpec>reverseView(_triggers_1);
+      final Function2<Expression,EventSpec,Expression> _function = new Function2<Expression,EventSpec,Expression>() {
+          public Expression apply(final Expression s , final EventSpec e) {
+            Expression _xifexpression_1 = null;
+            boolean _operator_equals = ObjectExtensions.operator_equals(s, null);
+            if (_operator_equals) {
+              Expression _raised = ModelSequencer.this.raised(e);
+              _xifexpression_1 = _raised;
+            } else {
+              Expression _raised_1 = ModelSequencer.this.raised(e);
+              Expression _or = ModelSequencer.this.or(_raised_1, s);
+              _xifexpression_1 = _or;
+            }
+            return _xifexpression_1;
+          }
+        };
+      Expression _fold = IterableExtensions.<EventSpec, Expression>fold(_reverseView, ((Expression) null), _function);
+      _xifexpression = _fold;
+    }
+    return _xifexpression;
+  }
+  
+  public Expression or(final Expression left, final Expression right) {
+    LogicalOrExpression _xblockexpression = null;
+    {
+      StextFactory _stextFactory = this.stextFactory();
+      LogicalOrExpression _createLogicalOrExpression = _stextFactory.createLogicalOrExpression();
+      final LogicalOrExpression or = _createLogicalOrExpression;
+      or.setLeftOperand(left);
+      or.setRightOperand(right);
+      _xblockexpression = (or);
+    }
+    return _xblockexpression;
+  }
+  
+  protected Expression _raised(final EventSpec e) {
+    return null;
+  }
+  
+  protected Expression _raised(final RegularEventSpec e) {
+    {
+      StextFactory _stextFactory = this.stextFactory();
+      ElementReferenceExpression _createElementReferenceExpression = _stextFactory.createElementReferenceExpression();
+      final ElementReferenceExpression r = _createElementReferenceExpression;
+      Event _event = e.getEvent();
+      EventDefinition _create = this.factory.create(((EventDefinition) _event));
+      r.setValue(_create);
+      return r;
+    }
+  }
+  
+  public void defineStateVector(final ExecutionFlow flow, final Statechart sc) {
+    {
+      SexecFactory _sexecFactory = this.sexecFactory();
+      StateVector _createStateVector = _sexecFactory.createStateVector();
+      flow.setStateVector(_createStateVector);
+      StateVector _stateVector = flow.getStateVector();
+      _stateVector.setOffset(0);
+      StateVector _stateVector_1 = flow.getStateVector();
+      int _maxOrthogonality = this.sct.maxOrthogonality(sc);
+      _stateVector_1.setSize(_maxOrthogonality);
+    }
+  }
+  
+  public Sequence defineEnterSequence(final ExecutionFlow flow, final Statechart sc) {
+    {
+      EList<Region> _regions = sc.getRegions();
+      final Function1<Region,EnterState> _function = new Function1<Region,EnterState>() {
+          public EnterState apply(final Region r) {
+            Entry _entry = ModelSequencer.this.entry(r);
+            State _target = ModelSequencer.this.target(_entry);
+            EnterState _newEnterStateStep = ModelSequencer.this==null?(EnterState)null:ModelSequencer.this.newEnterStateStep(_target);
+            return _newEnterStateStep;
+          }
+        };
+      List<EnterState> _map = ListExtensions.<Region, EnterState>map(_regions, _function);
+      final Function1<EnterState,Boolean> _function_1 = new Function1<EnterState,Boolean>() {
+          public Boolean apply(final EnterState e) {
+            boolean _operator_notEquals = ObjectExtensions.operator_notEquals(e, null);
+            return ((Boolean)_operator_notEquals);
+          }
+        };
+      Iterable<EnterState> _filter = IterableExtensions.<EnterState>filter(_map, _function_1);
+      final Iterable<EnterState> enterSteps = _filter;
+      SexecFactory _sexecFactory = this.sexecFactory();
+      Sequence _createSequence = _sexecFactory.createSequence();
+      final Sequence enterSequence = _createSequence;
+      enterSequence.setName("enter");
+      final Function1<EnterState,Boolean> _function_2 = new Function1<EnterState,Boolean>() {
+          public Boolean apply(final EnterState e_1) {
+            EList<Step> _steps = enterSequence.getSteps();
+            boolean _add = _steps.add(e_1);
+            return ((Boolean)_add);
+          }
+        };
+      IterableExtensions.<EnterState>forEach(enterSteps, _function_2);
+      flow.setEnterSequence(enterSequence);
+      return enterSequence;
+    }
+  }
+  
+  public EnterState newEnterStateStep(final State s) {
+    {
+      EnterState ess = ((EnterState) null);
+      boolean _operator_notEquals = ObjectExtensions.operator_notEquals(s, null);
+      if (_operator_notEquals) {
+        {
+          SexecFactory _sexecFactory = this.sexecFactory();
+          EnterState _createEnterState = _sexecFactory.createEnterState();
+          ess = _createEnterState;
+          ExecutionState _create = this.factory.create(s);
+          ess.setState(_create);
+        }
+      }
+      return ess;
+    }
+  }
+  
+  public ExitState newExitStateStep(final State s) {
+    {
+      ExitState ess = ((ExitState) null);
+      boolean _operator_notEquals = ObjectExtensions.operator_notEquals(s, null);
+      if (_operator_notEquals) {
+        {
+          SexecFactory _sexecFactory = this.sexecFactory();
+          ExitState _createExitState = _sexecFactory.createExitState();
+          ess = _createExitState;
+          ExecutionState _create = this.factory.create(s);
+          ess.setState(_create);
+        }
+      }
+      return ess;
+    }
+  }
+  
+  public SexecFactory sexecFactory() {
+    return SexecFactory.eINSTANCE;
+  }
+  
+  public StextFactory stextFactory() {
+    return StextFactory.eINSTANCE;
+  }
+  
+  public Entry entry(final Region r) {
+    EList<Vertex> _vertices = r.getVertices();
+    final Function1<Vertex,Boolean> _function = new Function1<Vertex,Boolean>() {
+        public Boolean apply(final Vertex v) {
+          boolean _operator_and = false;
+          if (!(v instanceof org.yakindu.sct.model.sgraph.Entry)) {
+            _operator_and = false;
+          } else {
+            boolean _operator_or = false;
+            String _name = v.getName();
+            boolean _operator_equals = ObjectExtensions.operator_equals(_name, null);
+            if (_operator_equals) {
+              _operator_or = true;
+            } else {
+              String _name_1 = v.getName();
+              boolean _operator_equals_1 = ObjectExtensions.operator_equals(_name_1, "default");
+              _operator_or = BooleanExtensions.operator_or(_operator_equals, _operator_equals_1);
+            }
+            _operator_and = BooleanExtensions.operator_and((v instanceof org.yakindu.sct.model.sgraph.Entry), _operator_or);
+          }
+          return ((Boolean)_operator_and);
+        }
+      };
+    Vertex _findFirst = IterableExtensions.<Vertex>findFirst(_vertices, _function);
+    return ((Entry) _findFirst);
+  }
+  
+  public State target(final Entry entry) {
+    EList<Transition> _outgoingTransitions = entry==null?(EList<Transition>)null:entry.getOutgoingTransitions();
+    Transition _get = _outgoingTransitions==null?(Transition)null:_outgoingTransitions.get(0);
+    Vertex _target = _get==null?(Vertex)null:_get.getTarget();
+    return ((State) _target);
+  }
+  
+  public Declaration map(final Declaration e) {
+    if ((e instanceof EventDefinition)) {
+      return _map((EventDefinition)e);
+    } else if ((e instanceof VariableDefinition)) {
+      return _map((VariableDefinition)e);
+    } else if ((e instanceof Declaration)) {
+      return _map((Declaration)e);
+    } else {
+      throw new IllegalArgumentException("Unhandled parameter types: " +
+        java.util.Arrays.<Object>asList(e).toString());
+    }
+  }
+  
+  public Check mapToCheck(final Trigger tr) {
+    if ((tr instanceof ReactionTrigger)) {
+      return _mapToCheck((ReactionTrigger)tr);
+    } else if ((tr instanceof Trigger)) {
+      return _mapToCheck((Trigger)tr);
+    } else {
+      throw new IllegalArgumentException("Unhandled parameter types: " +
+        java.util.Arrays.<Object>asList(tr).toString());
+    }
+  }
+  
+  public Statement buildCondition(final Trigger t) {
+    if ((t instanceof ReactionTrigger)) {
+      return _buildCondition((ReactionTrigger)t);
+    } else if ((t instanceof Trigger)) {
+      return _buildCondition((Trigger)t);
+    } else {
+      throw new IllegalArgumentException("Unhandled parameter types: " +
+        java.util.Arrays.<Object>asList(t).toString());
+    }
+  }
+  
+  public Expression raised(final EventSpec e) {
+    if ((e instanceof RegularEventSpec)) {
+      return _raised((RegularEventSpec)e);
+    } else if ((e instanceof EventSpec)) {
+      return _raised((EventSpec)e);
+    } else {
+      throw new IllegalArgumentException("Unhandled parameter types: " +
+        java.util.Arrays.<Object>asList(e).toString());
+    }
+  }
+}

+ 131 - 0
plugins/org.yakindu.sct.model.sexec/xtend-gen/org/yakindu/sct/model/sexec/transformation/StatechartExtensions.java

@@ -0,0 +1,131 @@
+package org.yakindu.sct.model.sexec.transformation;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.xbase.lib.ComparableExtensions;
+import org.eclipse.xtext.xbase.lib.Functions.Function2;
+import org.eclipse.xtext.xbase.lib.IntegerExtensions;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.ObjectExtensions;
+import org.eclipse.xtext.xbase.lib.StringExtensions;
+import org.yakindu.sct.model.sgraph.Reaction;
+import org.yakindu.sct.model.sgraph.Region;
+import org.yakindu.sct.model.sgraph.State;
+import org.yakindu.sct.model.sgraph.Statechart;
+import org.yakindu.sct.model.sgraph.Transition;
+import org.yakindu.sct.model.sgraph.Trigger;
+import org.yakindu.sct.model.sgraph.Vertex;
+
+@SuppressWarnings("all")
+public class StatechartExtensions {
+  
+  public int maxOrthogonality(final Statechart sc) {
+    EList<Region> _regions = sc.getRegions();
+    final Function2<Integer,Region,Integer> _function = new Function2<Integer,Region,Integer>() {
+        public Integer apply(final Integer o , final Region r) {
+          int _maxOrthogonality = StatechartExtensions.this.maxOrthogonality(r);
+          int _operator_plus = IntegerExtensions.operator_plus(((Integer)_maxOrthogonality), o);
+          return ((Integer)_operator_plus);
+        }
+      };
+    Integer _fold = IterableExtensions.<Region, Integer>fold(_regions, ((Integer)0), _function);
+    return _fold;
+  }
+  
+  public int maxOrthogonality(final Region r) {
+    EList<Vertex> _vertices = r.getVertices();
+    final Function2<Integer,Vertex,Integer> _function = new Function2<Integer,Vertex,Integer>() {
+        public Integer apply(final Integer s , final Vertex v) {
+          int _xblockexpression = (int) 0;
+          {
+            int _maxOrthogonality = StatechartExtensions.this.maxOrthogonality(v);
+            final int mo = _maxOrthogonality;
+            int _xifexpression = (int) 0;
+            boolean _operator_greaterThan = ComparableExtensions.<Integer>operator_greaterThan(((Integer)mo), s);
+            if (_operator_greaterThan) {
+              _xifexpression = mo;
+            } else {
+              _xifexpression = s;
+            }
+            _xblockexpression = (_xifexpression);
+          }
+          return ((Integer)_xblockexpression);
+        }
+      };
+    Integer _fold = IterableExtensions.<Vertex, Integer>fold(_vertices, ((Integer)0), _function);
+    return _fold;
+  }
+  
+  protected int _maxOrthogonality(final Vertex v) {
+    return 0;
+  }
+  
+  protected int _maxOrthogonality(final State s) {
+    Integer _xifexpression = null;
+    EList<Region> _subRegions = s.getSubRegions();
+    int _size = _subRegions.size();
+    boolean _operator_greaterThan = ComparableExtensions.<Integer>operator_greaterThan(((Integer)_size), ((Integer)0));
+    if (_operator_greaterThan) {
+      EList<Region> _subRegions_1 = s.getSubRegions();
+      final Function2<Integer,Region,Integer> _function = new Function2<Integer,Region,Integer>() {
+          public Integer apply(final Integer o , final Region r) {
+            int _maxOrthogonality = StatechartExtensions.this.maxOrthogonality(r);
+            int _operator_plus = IntegerExtensions.operator_plus(((Integer)_maxOrthogonality), o);
+            return ((Integer)_operator_plus);
+          }
+        };
+      Integer _fold = IterableExtensions.<Region, Integer>fold(_subRegions_1, ((Integer)0), _function);
+      _xifexpression = _fold;
+    } else {
+      _xifexpression = 1;
+    }
+    return _xifexpression;
+  }
+  
+  public Reaction reaction(final Trigger tr) {
+    EObject _eContainer = tr.eContainer();
+    return ((Reaction) _eContainer);
+  }
+  
+  protected String _id(final Object obj) {
+    return null;
+  }
+  
+  protected String _id(final Transition t) {
+    Comparable<? extends Object> _xifexpression = null;
+    Vertex _source = t.getSource();
+    boolean _operator_notEquals = ObjectExtensions.operator_notEquals(_source, null);
+    if (_operator_notEquals) {
+      Vertex _source_1 = t.getSource();
+      EList<Transition> _outgoingTransitions = _source_1.getOutgoingTransitions();
+      int _indexOf = _outgoingTransitions.indexOf(t);
+      _xifexpression = _indexOf;
+    } else {
+      _xifexpression = "";
+    }
+    String _operator_plus = StringExtensions.operator_plus("tr", _xifexpression);
+    return _operator_plus;
+  }
+  
+  public int maxOrthogonality(final Vertex s) {
+    if ((s instanceof State)) {
+      return _maxOrthogonality((State)s);
+    } else if ((s instanceof Vertex)) {
+      return _maxOrthogonality((Vertex)s);
+    } else {
+      throw new IllegalArgumentException("Unhandled parameter types: " +
+        java.util.Arrays.<Object>asList(s).toString());
+    }
+  }
+  
+  public String id(final Object t) {
+    if ((t instanceof Transition)) {
+      return _id((Transition)t);
+    } else if ((t instanceof Object)) {
+      return _id((Object)t);
+    } else {
+      throw new IllegalArgumentException("Unhandled parameter types: " +
+        java.util.Arrays.<Object>asList(t).toString());
+    }
+  }
+}

+ 9 - 0
test-plugins/org.yakindu.sct.generator.cpp.test/src/org/yakindu/sct/generator/cpp/test/generator/CPPGeneratorTest.java

@@ -91,12 +91,21 @@ public class CPPGeneratorTest extends AbstractGeneratorTest {
 		Statechart sc = _createStatechart("test");
 		InterfaceScope s_scope = _createInterfaceScope("Interface", sc);
 		EventDefinition e1 = _createEventDefinition("e1", s_scope);
+		EventDefinition e2 = _createEventDefinition("e2", s_scope);
+		EventDefinition e3 = _createEventDefinition("e3", s_scope);
 		Region r = _createRegion("main", sc);
 		State s1 = _createState("S1", r);
 		State s2 = _createState("S2", r);
+		State s3 = _createState("S3", r);
 		Transition t = _createTransition(s1, s2);
 		ReactionTrigger tr1 = _createReactionTrigger(t);
 		_createRegularEventSpec(e1, tr1);
+		
+		Transition t2 = _createTransition(s1, s3);
+		ReactionTrigger tr2 = _createReactionTrigger(t2);
+		_createRegularEventSpec(e2, tr2);
+		_createRegularEventSpec(e3, tr2);
+
 
 		ExecutionFlow flow = sequencer.transform(sc);