瀏覽代碼

merge branch Bugfix_2_0_x into main trunk ...

terfloth@itemis.de 12 年之前
父節點
當前提交
06f6d3d824
共有 24 個文件被更改,包括 3763 次插入42 次删除
  1. 7 1
      plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/ExpressionCode.xtend
  2. 5 1
      plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/ExpressionCode.xtend
  3. 1 0
      plugins/org.yakindu.sct.model.sexec/.settings/org.eclipse.core.resources.prefs
  4. 567 0
      plugins/org.yakindu.sct.model.sexec/model/Copy of sexec.ecorediag
  5. 二進制
      plugins/org.yakindu.sct.model.sexec/model/sexec_steps.pdf
  6. 3 4
      plugins/org.yakindu.sct.model.sexec/model/sexec_trace.ecore
  7. 37 0
      plugins/org.yakindu.sct.model.sexec/model/sexec_trace.ecorediag
  8. 二進制
      plugins/org.yakindu.sct.model.sexec/model/ysct_mm_sexec_steps.pdf
  9. 788 0
      plugins/org.yakindu.sct.model.sexec/model/ysct_mm_sexec_steps.svg
  10. 16 2
      plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/transformation/BehaviorMapping.xtend
  11. 1 1
      plugins/org.yakindu.sct.model.sgen/pom.xml
  12. 1 1
      plugins/org.yakindu.sct.model.sgraph.edit/pom.xml
  13. 1 0
      plugins/org.yakindu.sct.model.sgraph/.settings/org.eclipse.core.resources.prefs
  14. 817 0
      plugins/org.yakindu.sct.model.sgraph/model/emf/sgraph2.ecorediag
  15. 二進制
      plugins/org.yakindu.sct.model.sgraph/model/emf/ysct_mm_sgraph.pdf
  16. 1137 0
      plugins/org.yakindu.sct.model.sgraph/model/emf/ysct_mm_sgraph.svg
  17. 2 0
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/SGraphRuntimeModule.java
  18. 159 0
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/validation/DFS.java
  19. 2 0
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/validation/SCTResourceValidator.java
  20. 58 22
      plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/validation/SGraphJavaValidator.java
  21. 2 0
      plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/validation/STextJavaValidator.java
  22. 0 1
      plugins/org.yakindu.sct.simulation.ui/.settings/org.eclipse.jdt.core.prefs
  23. 157 9
      test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/test/SGraphJavaValidationTest.java
  24. 2 0
      test-plugins/org.yakindu.sct.model.stext.test/src/org/yakindu/sct/model/stext/test/TypeInferrerTest.java

+ 7 - 1
plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/ExpressionCode.xtend

@@ -83,8 +83,14 @@ class ExpressionCode {
 	def dispatch code (Literal it)
 		'''#error unknown literal type «getClass().name» '''
 	
+	
 	def dispatch code (StringLiteral it) 
-		'''"«value»"'''	
+		'''"«value.escaped»"'''	
+		
+	def String escaped(String it) {
+		return it.replace("\"", "\\\"");
+	}
+	
 
 	def dispatch code (BoolLiteral it) 
 		'''«IF value»bool_true«ELSE»bool_false«ENDIF»'''	

+ 5 - 1
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/ExpressionCode.xtend

@@ -88,7 +88,11 @@ class ExpressionCode {
 	}
 	
 	def dispatch String code(StringLiteral expression) {
-		"\"" + expression.value.toString() + "\""
+		"\"" + expression.value.toString().escaped + "\""
+	}
+	
+	def String escaped(String it) {
+		return it.replace("\"", "\\\"");
 	}
 	
 	/* Logical Expressions */

+ 1 - 0
plugins/org.yakindu.sct.model.sexec/.settings/org.eclipse.core.resources.prefs

@@ -1,3 +1,4 @@
 eclipse.preferences.version=1
 encoding//model/sexec.ecorediag=UTF-8
+encoding//model/sexec_trace.ecorediag=UTF-8
 encoding/<project>=UTF-8

+ 567 - 0
plugins/org.yakindu.sct.model.sexec/model/Copy of sexec.ecorediag

@@ -0,0 +1,567 @@
+<?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="_wsCnsBqkEeGIWuhy_7gRFw" type="EcoreTools" measurementUnit="Pixel">
+  <children xmi:type="notation:Node" xmi:id="_wsPcABqkEeGIWuhy_7gRFw" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_wsPcAxqkEeGIWuhy_7gRFw" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_wsPcBBqkEeGIWuhy_7gRFw" type="5001">
+      <children xmi:type="notation:Node" xmi:id="_wsQDEBqkEeGIWuhy_7gRFw" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sexec.ecore#//TimeEvent/periodic"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_wsQDERqkEeGIWuhy_7gRFw"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsPcBRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsPcBhqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsPcBxqkEeGIWuhy_7gRFw"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsPcCBqkEeGIWuhy_7gRFw" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsPcCRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsPcChqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsPcCxqkEeGIWuhy_7gRFw"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_wsPcARqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//TimeEvent"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wsPcAhqkEeGIWuhy_7gRFw" x="124" y="464"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_wsQDEhqkEeGIWuhy_7gRFw" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_wsQDFRqkEeGIWuhy_7gRFw" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_wsQDFhqkEeGIWuhy_7gRFw" type="5001">
+      <children xmi:type="notation:Node" xmi:id="_wsQqIBqkEeGIWuhy_7gRFw" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sexec.ecore#//Step/comment"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_wsQqIRqkEeGIWuhy_7gRFw"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsQDFxqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsQDGBqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsQDGRqkEeGIWuhy_7gRFw"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsQDGhqkEeGIWuhy_7gRFw" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsQDGxqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsQDHBqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsQDHRqkEeGIWuhy_7gRFw"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_wsQDExqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//Step"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wsQDFBqkEeGIWuhy_7gRFw" x="584" y="105"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_wsQqIhqkEeGIWuhy_7gRFw" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_wsQqJRqkEeGIWuhy_7gRFw" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_wsQqJhqkEeGIWuhy_7gRFw" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsQqJxqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsRRMBqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsRRMRqkEeGIWuhy_7gRFw"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsRRMhqkEeGIWuhy_7gRFw" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsRRMxqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsRRNBqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsRRNRqkEeGIWuhy_7gRFw"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_wsQqIxqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//Sequence"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wsQqJBqkEeGIWuhy_7gRFw" x="128" y="44" width="142"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_wsRRNhqkEeGIWuhy_7gRFw" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_wsRRORqkEeGIWuhy_7gRFw" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_wsRROhqkEeGIWuhy_7gRFw" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsRROxqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsRRPBqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsRRPRqkEeGIWuhy_7gRFw"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsR4QBqkEeGIWuhy_7gRFw" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsR4QRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsR4QhqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsR4QxqkEeGIWuhy_7gRFw"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_wsRRNxqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//Check"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wsRROBqkEeGIWuhy_7gRFw" x="840" y="176"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_wsR4RBqkEeGIWuhy_7gRFw" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_wsR4RxqkEeGIWuhy_7gRFw" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_wsR4SBqkEeGIWuhy_7gRFw" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsR4SRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsR4ShqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsR4SxqkEeGIWuhy_7gRFw"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsSfUBqkEeGIWuhy_7gRFw" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsSfURqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsSfUhqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsSfUxqkEeGIWuhy_7gRFw"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_wsR4RRqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//CheckRef"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wsR4RhqkEeGIWuhy_7gRFw" x="840" y="276"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_wsSfVBqkEeGIWuhy_7gRFw" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_wsSfVxqkEeGIWuhy_7gRFw" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_wsSfWBqkEeGIWuhy_7gRFw" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsSfWRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsSfWhqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsSfWxqkEeGIWuhy_7gRFw"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsSfXBqkEeGIWuhy_7gRFw" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsTGYBqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsTGYRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsTGYhqkEeGIWuhy_7gRFw"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_wsSfVRqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//If"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wsSfVhqkEeGIWuhy_7gRFw" x="840" y="72"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_wsTGYxqkEeGIWuhy_7gRFw" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_wsTGZhqkEeGIWuhy_7gRFw" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_wsTGZxqkEeGIWuhy_7gRFw" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsTGaBqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsTGaRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsTGahqkEeGIWuhy_7gRFw"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsTGaxqkEeGIWuhy_7gRFw" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsTGbBqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsTGbRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsTGbhqkEeGIWuhy_7gRFw"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_wsTGZBqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//Execution"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wsTGZRqkEeGIWuhy_7gRFw" x="136" y="232"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_wsTtcBqkEeGIWuhy_7gRFw" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_wsTtcxqkEeGIWuhy_7gRFw" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_wsTtdBqkEeGIWuhy_7gRFw" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsTtdRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsTtdhqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsTtdxqkEeGIWuhy_7gRFw"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsTteBqkEeGIWuhy_7gRFw" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsTteRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsTtehqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsTtexqkEeGIWuhy_7gRFw"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_wsTtcRqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//EnterState"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wsTtchqkEeGIWuhy_7gRFw" x="340" y="384"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_wsUUgBqkEeGIWuhy_7gRFw" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_wsUUgxqkEeGIWuhy_7gRFw" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_wsUUhBqkEeGIWuhy_7gRFw" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsUUhRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsUUhhqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsUUhxqkEeGIWuhy_7gRFw"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsUUiBqkEeGIWuhy_7gRFw" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsUUiRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsUUihqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsUUixqkEeGIWuhy_7gRFw"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_wsUUgRqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//ExitState"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wsUUghqkEeGIWuhy_7gRFw" x="452" y="384"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_wsU7kBqkEeGIWuhy_7gRFw" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_wsU7kxqkEeGIWuhy_7gRFw" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_wsU7lBqkEeGIWuhy_7gRFw" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsU7lRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsU7lhqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsU7lxqkEeGIWuhy_7gRFw"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsU7mBqkEeGIWuhy_7gRFw" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsU7mRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsU7mhqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsU7mxqkEeGIWuhy_7gRFw"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_wsU7kRqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//Call"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wsU7khqkEeGIWuhy_7gRFw" x="136" y="176"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_wsVioBqkEeGIWuhy_7gRFw" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_wsVioxqkEeGIWuhy_7gRFw" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_wsWJsBqkEeGIWuhy_7gRFw" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsWJsRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsWJshqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsWJsxqkEeGIWuhy_7gRFw"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsWJtBqkEeGIWuhy_7gRFw" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsWJtRqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsWJthqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsWJtxqkEeGIWuhy_7gRFw"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_wsVioRqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//ScheduleTimeEvent"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wsViohqkEeGIWuhy_7gRFw" x="76" y="384"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_wsWJuBqkEeGIWuhy_7gRFw" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_wsWwwBqkEeGIWuhy_7gRFw" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_wsWwwRqkEeGIWuhy_7gRFw" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsWwwhqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsWwwxqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsWwxBqkEeGIWuhy_7gRFw"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsWwxRqkEeGIWuhy_7gRFw" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsWwxhqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsWwxxqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsWwyBqkEeGIWuhy_7gRFw"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_wsWJuRqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//UnscheduleTimeEvent"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wsWJuhqkEeGIWuhy_7gRFw" x="204" y="384"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_wsWwyRqkEeGIWuhy_7gRFw" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_wsXX0BqkEeGIWuhy_7gRFw" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_wsXX0RqkEeGIWuhy_7gRFw" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsXX0hqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsXX0xqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsXX1BqkEeGIWuhy_7gRFw"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsXX1RqkEeGIWuhy_7gRFw" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsXX1hqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsXX1xqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsXX2BqkEeGIWuhy_7gRFw"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_wsWwyhqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//StateSwitch"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wsWwyxqkEeGIWuhy_7gRFw" x="132" y="108"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_wsXX2RqkEeGIWuhy_7gRFw" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_wsX-4BqkEeGIWuhy_7gRFw" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_wsX-4RqkEeGIWuhy_7gRFw" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsX-4hqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsX-4xqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsX-5BqkEeGIWuhy_7gRFw"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsX-5RqkEeGIWuhy_7gRFw" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_wsX-5hqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_wsX-5xqkEeGIWuhy_7gRFw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_wsX-6BqkEeGIWuhy_7gRFw"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_wsXX2hqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//StateCase"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wsXX2xqkEeGIWuhy_7gRFw" x="356" y="112"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_w0kyEUjaEeGZpvsaz2lzfQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_w0pqkEjaEeGZpvsaz2lzfQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_w0q4sEjaEeGZpvsaz2lzfQ" type="5001">
+      <children xmi:type="notation:Node" xmi:id="_w1WOIEjaEeGZpvsaz2lzfQ" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sexec.ecore#//SaveHistory/deep"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_w1WOIUjaEeGZpvsaz2lzfQ"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_w0q4sUjaEeGZpvsaz2lzfQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_w0q4skjaEeGZpvsaz2lzfQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_w0q4s0jaEeGZpvsaz2lzfQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_w0rfwEjaEeGZpvsaz2lzfQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_w0rfwUjaEeGZpvsaz2lzfQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_w0rfwkjaEeGZpvsaz2lzfQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_w0rfw0jaEeGZpvsaz2lzfQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_w0kyEkjaEeGZpvsaz2lzfQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//SaveHistory"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w0kyE0jaEeGZpvsaz2lzfQ" x="564" y="384"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_2UxrQEjaEeGZpvsaz2lzfQ" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_2UySUEjaEeGZpvsaz2lzfQ" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_2Uy5YEjaEeGZpvsaz2lzfQ" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_2Uy5YUjaEeGZpvsaz2lzfQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_2Uy5YkjaEeGZpvsaz2lzfQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_2Uy5Y0jaEeGZpvsaz2lzfQ"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_2Uy5ZEjaEeGZpvsaz2lzfQ" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_2Uy5ZUjaEeGZpvsaz2lzfQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_2Uy5ZkjaEeGZpvsaz2lzfQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_2Uy5Z0jaEeGZpvsaz2lzfQ"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_2UxrQUjaEeGZpvsaz2lzfQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="10011046" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec.ecore#//HistoryEntry"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2UxrQkjaEeGZpvsaz2lzfQ" x="684" y="384"/>
+  </children>
+  <styles xmi:type="notation:DiagramStyle" xmi:id="_wsCnsRqkEeGIWuhy_7gRFw"/>
+  <element xmi:type="ecore:EPackage" href="sexec.ecore#/"/>
+  <edges xmi:type="notation:Edge" xmi:id="_wsf6tBqkEeGIWuhy_7gRFw" type="3002" source="_wsQqIhqkEeGIWuhy_7gRFw" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <children xmi:type="notation:Node" xmi:id="_wsf6uBqkEeGIWuhy_7gRFw" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wsf6uRqkEeGIWuhy_7gRFw" x="15"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsf6uhqkEeGIWuhy_7gRFw" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wsf6uxqkEeGIWuhy_7gRFw" x="25" y="12"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wsf6tRqkEeGIWuhy_7gRFw" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wsf6thqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//Sequence/steps"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsf6txqkEeGIWuhy_7gRFw" points="[13, 0, -319, -67]$[277, 0, -55, -67]$[329, 62, -3, -5]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0IzwxqkEeGIWuhy_7gRFw" id="(0.9084507042253521,0.30952380952380953)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0Ja0BqkEeGIWuhy_7gRFw" id="(0.03333333333333333,0.3877551020408163)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wsghwBqkEeGIWuhy_7gRFw" type="3003" source="_wsQqIhqkEeGIWuhy_7gRFw" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wsghwRqkEeGIWuhy_7gRFw" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wsghwhqkEeGIWuhy_7gRFw" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsghwxqkEeGIWuhy_7gRFw" points="[-50, 24, -521, -84]$[-86, 24, -557, -84]$[-86, -16, -557, -124]$[438, -16, -33, -124]$[438, 61, -33, -47]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0IzwRqkEeGIWuhy_7gRFw" id="(0.3627450980392157,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0IzwhqkEeGIWuhy_7gRFw" id="(0.5583333333333333,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wsghxBqkEeGIWuhy_7gRFw" type="3003" source="_wsRRNhqkEeGIWuhy_7gRFw" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wsghxRqkEeGIWuhy_7gRFw" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wsghxhqkEeGIWuhy_7gRFw" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsghxxqkEeGIWuhy_7gRFw" points="[50, 12, 314, 36]$[98, 12, 362, 36]$[98, -148, 362, -124]$[-210, -148, 54, -124]$[-210, -71, 54, -47]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0BfABqkEeGIWuhy_7gRFw" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0BfARqkEeGIWuhy_7gRFw" id="(0.35833333333333334,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wsghyBqkEeGIWuhy_7gRFw" type="3002" source="_wsR4RBqkEeGIWuhy_7gRFw" target="_wsRRNhqkEeGIWuhy_7gRFw">
+    <children xmi:type="notation:Node" xmi:id="_wshI0BqkEeGIWuhy_7gRFw" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wshI0RqkEeGIWuhy_7gRFw" x="-15" y="13"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wshI0hqkEeGIWuhy_7gRFw" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wshI0xqkEeGIWuhy_7gRFw" x="1" y="-15"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wsghyRqkEeGIWuhy_7gRFw" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wsghyhqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//CheckRef/check"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsghyxqkEeGIWuhy_7gRFw" points="[-3, 0, 0, 51]$[-3, -44, 0, 7]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eeIuIBunEeGIWuhy_7gRFw" id="(0.696078431372549,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eeIuIRunEeGIWuhy_7gRFw" id="(0.7058823529411765,0.8333333333333334)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wshI1BqkEeGIWuhy_7gRFw" type="3003" source="_wsR4RBqkEeGIWuhy_7gRFw" target="_wsRRNhqkEeGIWuhy_7gRFw">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wshI1RqkEeGIWuhy_7gRFw" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wshI1hqkEeGIWuhy_7gRFw" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wshI1xqkEeGIWuhy_7gRFw" points="[16, 0, 158, 43]$[16, -60, 158, -17]$[-61, -60, 81, -17]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0CtIRqkEeGIWuhy_7gRFw" id="(0.3333333333333333,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0CtIhqkEeGIWuhy_7gRFw" id="(0.19607843137254902,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wshI2BqkEeGIWuhy_7gRFw" type="3002" source="_wsSfVBqkEeGIWuhy_7gRFw" target="_wsRRNhqkEeGIWuhy_7gRFw">
+    <children xmi:type="notation:Node" xmi:id="_wshv4BqkEeGIWuhy_7gRFw" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wshv4RqkEeGIWuhy_7gRFw" x="-4" y="-25"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsiW8BqkEeGIWuhy_7gRFw" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wsiW8RqkEeGIWuhy_7gRFw" x="-8" y="18"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wshI2RqkEeGIWuhy_7gRFw" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wshI2hqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//If/check"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wshI2xqkEeGIWuhy_7gRFw" points="[0, 0, 203, 60]$[-203, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wz8mghqkEeGIWuhy_7gRFw" id="(0.5882352941176471,0.23809523809523808)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wz9NkBqkEeGIWuhy_7gRFw" id="(0.5980392156862745,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wsiW8hqkEeGIWuhy_7gRFw" type="3002" source="_wsSfVBqkEeGIWuhy_7gRFw" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <children xmi:type="notation:Node" xmi:id="_wsiW9hqkEeGIWuhy_7gRFw" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wsiW9xqkEeGIWuhy_7gRFw" x="-32" y="7"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsiW-BqkEeGIWuhy_7gRFw" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wsiW-RqkEeGIWuhy_7gRFw" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wsiW8xqkEeGIWuhy_7gRFw" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wsiW9BqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//If/thenStep"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsiW9RqkEeGIWuhy_7gRFw" points="[-46, 40, 147, -59]$[-46, 65, 147, -34]$[-128, 65, 65, -34]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0HloBqkEeGIWuhy_7gRFw" id="(0.8627450980392157,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0HloRqkEeGIWuhy_7gRFw" id="(0.45,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wsi-ABqkEeGIWuhy_7gRFw" type="3002" source="_wsSfVBqkEeGIWuhy_7gRFw" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <children xmi:type="notation:Node" xmi:id="_wsi-BBqkEeGIWuhy_7gRFw" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wsi-BRqkEeGIWuhy_7gRFw" x="-26" y="6"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsi-BhqkEeGIWuhy_7gRFw" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wsi-BxqkEeGIWuhy_7gRFw" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wsi-ARqkEeGIWuhy_7gRFw" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wsi-AhqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//If/elseStep"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsi-AxqkEeGIWuhy_7gRFw" points="[-11, 8, 176, -59]$[-11, 56, 176, -11]$[-117, 56, 70, -11]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0G-khqkEeGIWuhy_7gRFw" id="(0.7549019607843137,0.8095238095238095)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0G-kxqkEeGIWuhy_7gRFw" id="(0.4083333333333333,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wsi-CBqkEeGIWuhy_7gRFw" type="3003" source="_wsSfVBqkEeGIWuhy_7gRFw" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wsi-CRqkEeGIWuhy_7gRFw" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wsi-ChqkEeGIWuhy_7gRFw" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsi-CxqkEeGIWuhy_7gRFw" points="[7, 20, 297, -60]$[55, 20, 345, -60]$[55, -44, 345, -124]$[-253, -44, 37, -124]$[-253, 33, 37, -47]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0IMsBqkEeGIWuhy_7gRFw" id="(0.9313725490196079,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0IMsRqkEeGIWuhy_7gRFw" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wsi-DBqkEeGIWuhy_7gRFw" type="3003" source="_wsTGYxqkEeGIWuhy_7gRFw" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wsi-DRqkEeGIWuhy_7gRFw" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wsi-DhqkEeGIWuhy_7gRFw" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsi-DxqkEeGIWuhy_7gRFw" points="[-50, 20, -468, 100]$[-94, 20, -512, 100]$[-94, -204, -512, -124]$[430, -204, 12, -124]$[430, -127, 12, -47]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0CGERqkEeGIWuhy_7gRFw" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0CtIBqkEeGIWuhy_7gRFw" id="(0.175,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wsjlGBqkEeGIWuhy_7gRFw" type="3003" source="_wsTtcBqkEeGIWuhy_7gRFw" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wsjlGRqkEeGIWuhy_7gRFw" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wsjlGhqkEeGIWuhy_7gRFw" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsjlGxqkEeGIWuhy_7gRFw" points="[-19, 0, -228, 232]$[-19, -40, -228, 192]$[222, -40, 13, 192]$[222, -232, 13, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0IMshqkEeGIWuhy_7gRFw" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0IzwBqkEeGIWuhy_7gRFw" id="(0.13333333333333333,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wskMKBqkEeGIWuhy_7gRFw" type="3003" source="_wsUUgBqkEeGIWuhy_7gRFw" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wskMKRqkEeGIWuhy_7gRFw" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wskMKhqkEeGIWuhy_7gRFw" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wskMKxqkEeGIWuhy_7gRFw" points="[-16, 0, -135, 232]$[-16, -40, -135, 192]$[110, -40, -9, 192]$[110, -232, -9, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0G-kBqkEeGIWuhy_7gRFw" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0G-kRqkEeGIWuhy_7gRFw" id="(0.31666666666666665,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wskMLBqkEeGIWuhy_7gRFw" type="3002" source="_wsU7kBqkEeGIWuhy_7gRFw" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <children xmi:type="notation:Node" xmi:id="_wskzMxqkEeGIWuhy_7gRFw" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wskzNBqkEeGIWuhy_7gRFw" y="4"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wskzNRqkEeGIWuhy_7gRFw" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wskzNhqkEeGIWuhy_7gRFw" x="-4" y="15"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wskzMBqkEeGIWuhy_7gRFw" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wskzMRqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//Call/step"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wskzMhqkEeGIWuhy_7gRFw" points="[50, 0, -444, 67]$[234, 0, -260, 67]$[407, -44, -87, 23]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_msOw8BunEeGIWuhy_7gRFw" id="(0.5,0.5)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_msOw8RunEeGIWuhy_7gRFw" id="(0.0,0.8367346938775511)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wskzNxqkEeGIWuhy_7gRFw" type="3003" source="_wsU7kBqkEeGIWuhy_7gRFw" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wskzOBqkEeGIWuhy_7gRFw" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wskzORqkEeGIWuhy_7gRFw" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wskzOhqkEeGIWuhy_7gRFw" points="[-66, 20, -479, 44]$[-110, 20, -523, 44]$[-110, -148, -523, -124]$[414, -148, 1, -124]$[414, -71, 1, -47]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0EiUBqkEeGIWuhy_7gRFw" id="(0.6666666666666666,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0EiURqkEeGIWuhy_7gRFw" id="(0.26666666666666666,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wskzOxqkEeGIWuhy_7gRFw" type="3002" source="_wsVioBqkEeGIWuhy_7gRFw" target="_wsPcABqkEeGIWuhy_7gRFw">
+    <children xmi:type="notation:Node" xmi:id="_wslaQBqkEeGIWuhy_7gRFw" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wslaQRqkEeGIWuhy_7gRFw" x="-21" y="35"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wslaQhqkEeGIWuhy_7gRFw" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wslaQxqkEeGIWuhy_7gRFw" x="-5" y="18"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wskzPBqkEeGIWuhy_7gRFw" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wskzPRqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//ScheduleTimeEvent/timeEvent"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wskzPhqkEeGIWuhy_7gRFw" points="[0, 0, -71, 56]$[0, -28, -71, 28]$[55, -28, -16, 28]$[55, -56, -16, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wz6KQBqkEeGIWuhy_7gRFw" id="(0.33043478260869563,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wz6KQRqkEeGIWuhy_7gRFw" id="(0.33064516129032256,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wslaRBqkEeGIWuhy_7gRFw" type="3003" source="_wsVioBqkEeGIWuhy_7gRFw" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wslaRRqkEeGIWuhy_7gRFw" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wslaRhqkEeGIWuhy_7gRFw" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wslaRxqkEeGIWuhy_7gRFw" points="[-54, 0, -492, 232]$[-54, -40, -492, 192]$[462, -40, 24, 192]$[462, -232, 24, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wz6xUBqkEeGIWuhy_7gRFw" id="(0.6608695652173913,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wz7YYBqkEeGIWuhy_7gRFw" id="(0.041666666666666664,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wslaSBqkEeGIWuhy_7gRFw" type="3002" source="_wsWJuBqkEeGIWuhy_7gRFw" target="_wsPcABqkEeGIWuhy_7gRFw">
+    <children xmi:type="notation:Node" xmi:id="_wsmBUBqkEeGIWuhy_7gRFw" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wsmBURqkEeGIWuhy_7gRFw" x="-21" y="-32"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsmBUhqkEeGIWuhy_7gRFw" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wsmBUxqkEeGIWuhy_7gRFw" x="-1" y="-25"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wslaSRqkEeGIWuhy_7gRFw" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wslaShqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//UnscheduleTimeEvent/timeEvent"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wslaSxqkEeGIWuhy_7gRFw" points="[-21, 40, 20, -87]$[-21, 80, 20, -47]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wz-bsBqkEeGIWuhy_7gRFw" id="(0.328125,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wz-bsRqkEeGIWuhy_7gRFw" id="(0.6612903225806451,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wsmBVBqkEeGIWuhy_7gRFw" type="3003" source="_wsWJuBqkEeGIWuhy_7gRFw" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wsmBVRqkEeGIWuhy_7gRFw" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wsmBVhqkEeGIWuhy_7gRFw" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsmBVxqkEeGIWuhy_7gRFw" points="[-51, 0, -357, 232]$[-51, -40, -357, 192]$[325, -40, 19, 192]$[325, -232, 19, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wz-bshqkEeGIWuhy_7gRFw" id="(0.6640625,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wz_CwBqkEeGIWuhy_7gRFw" id="(0.08333333333333333,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wsmBWBqkEeGIWuhy_7gRFw" type="3002" source="_wsWwyRqkEeGIWuhy_7gRFw" target="_wsXX2RqkEeGIWuhy_7gRFw">
+    <children xmi:type="notation:Node" xmi:id="_wsmBXBqkEeGIWuhy_7gRFw" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wsmBXRqkEeGIWuhy_7gRFw" x="-18" y="-7"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsmBXhqkEeGIWuhy_7gRFw" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wsmoYBqkEeGIWuhy_7gRFw" x="-1" y="11"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wsmBWRqkEeGIWuhy_7gRFw" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wsmBWhqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//StateSwitch/cases"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsmBWxqkEeGIWuhy_7gRFw" points="[0, 0, 70, 60]$[-70, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0DUMRqkEeGIWuhy_7gRFw" id="(0.5392156862745098,0.07142857142857142)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0DUMhqkEeGIWuhy_7gRFw" id="(0.00980392156862745,0.42857142857142855)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wsmoYRqkEeGIWuhy_7gRFw" type="3003" source="_wsWwyRqkEeGIWuhy_7gRFw" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wsmoYhqkEeGIWuhy_7gRFw" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wsmoYxqkEeGIWuhy_7gRFw" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsmoZBqkEeGIWuhy_7gRFw" points="[-81, 24, -562, -20]$[-121, 24, -602, -20]$[-121, -80, -602, -124]$[403, -80, -78, -124]$[403, -3, -78, -47]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0Ko8hqkEeGIWuhy_7gRFw" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0LQABqkEeGIWuhy_7gRFw" id="(0.9333333333333333,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_wsnPcBqkEeGIWuhy_7gRFw" type="3002" source="_wsXX2RqkEeGIWuhy_7gRFw" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <children xmi:type="notation:Node" xmi:id="_wsnPdBqkEeGIWuhy_7gRFw" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wsnPdRqkEeGIWuhy_7gRFw" x="-23" y="3"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_wsnPdhqkEeGIWuhy_7gRFw" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_wsnPdxqkEeGIWuhy_7gRFw" y="11"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_wsnPcRqkEeGIWuhy_7gRFw" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_wsnPchqkEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//StateCase/step"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wsnPcxqkEeGIWuhy_7gRFw" points="[34, 4, -137, -21]$[162, 24, -9, -1]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0GXgBqkEeGIWuhy_7gRFw" id="(0.9803921568627451,0.35714285714285715)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w0GXgRqkEeGIWuhy_7gRFw" id="(0.025,0.46938775510204084)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_G0gxcBunEeGIWuhy_7gRFw" type="3002" source="_wsRRNhqkEeGIWuhy_7gRFw" target="_wsR4RBqkEeGIWuhy_7gRFw">
+    <children xmi:type="notation:Node" xmi:id="_G0hYgBunEeGIWuhy_7gRFw" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_G0hYgRunEeGIWuhy_7gRFw" x="-3" y="-24"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_G0hYghunEeGIWuhy_7gRFw" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_G0hYgxunEeGIWuhy_7gRFw" x="-3" y="8"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_G0gxcRunEeGIWuhy_7gRFw" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_G0gxchunEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//Check/refs"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_G0gxcxunEeGIWuhy_7gRFw" points="[0, 7, -3, -44]$[0, 51, -3, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nk7DEGuFEeKAhpbGq_WxgA" id="(0.7058823529411765,0.8333333333333334)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nk7DEWuFEeKAhpbGq_WxgA" id="(0.696078431372549,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_i17NwBunEeGIWuhy_7gRFw" type="3002" source="_wsQDEhqkEeGIWuhy_7gRFw" target="_wsU7kBqkEeGIWuhy_7gRFw">
+    <children xmi:type="notation:Node" xmi:id="_i17NxBunEeGIWuhy_7gRFw" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_i17NxRunEeGIWuhy_7gRFw" x="12" y="-20"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_i17NxhunEeGIWuhy_7gRFw" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_i17NxxunEeGIWuhy_7gRFw" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_i17NwRunEeGIWuhy_7gRFw" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_i17NwhunEeGIWuhy_7gRFw" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//Step/caller"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_i17NwxunEeGIWuhy_7gRFw" points="[-87, 23, 407, -44]$[-260, 67, 234, 0]$[-444, 67, 50, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_32qm4GuEEeKAhpbGq_WxgA" id="(0.0,0.8367346938775511)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_32qm4WuEEeKAhpbGq_WxgA" id="(0.5,0.5)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_w1tagEjaEeGZpvsaz2lzfQ" type="3003" source="_w0kyEUjaEeGZpvsaz2lzfQ" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_w1tagUjaEeGZpvsaz2lzfQ" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_w1tagkjaEeGZpvsaz2lzfQ" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w1tag0jaEeGZpvsaz2lzfQ" points="[-5, -23, -31, 320]$[-5, -319, -31, 24]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_2VtfYEjaEeGZpvsaz2lzfQ" type="3002" source="_2UxrQEjaEeGZpvsaz2lzfQ" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <children xmi:type="notation:Node" xmi:id="_2VuGcEjaEeGZpvsaz2lzfQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_2VuGcUjaEeGZpvsaz2lzfQ" x="-27" y="1"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_2VvUkEjaEeGZpvsaz2lzfQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_2VvUkUjaEeGZpvsaz2lzfQ" x="-5" y="5"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_2VtfYUjaEeGZpvsaz2lzfQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_2VtfYkjaEeGZpvsaz2lzfQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//HistoryEntry/initialStep"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2VtfY0jaEeGZpvsaz2lzfQ" points="[0, -1, 127, 320]$[0, -233, 127, 88]$[-93, -297, 34, 24]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gXFhkGuFEeKAhpbGq_WxgA" id="(0.8148148148148148,0.04081632653061224)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_2VwisEjaEeGZpvsaz2lzfQ" type="3002" source="_2UxrQEjaEeGZpvsaz2lzfQ" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <children xmi:type="notation:Node" xmi:id="_2VxJwEjaEeGZpvsaz2lzfQ" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_2VxJwUjaEeGZpvsaz2lzfQ" x="-21" y="-14"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_2VxJwkjaEeGZpvsaz2lzfQ" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_2VxJw0jaEeGZpvsaz2lzfQ" x="5" y="-8"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_2VwisUjaEeGZpvsaz2lzfQ" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_2VwiskjaEeGZpvsaz2lzfQ" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sexec.ecore#//HistoryEntry/historyStep"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2Vwis0jaEeGZpvsaz2lzfQ" points="[7, -23, 98, 298]$[7, -243, 98, 78]$[-88, -319, 3, 2]"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i3fBwGuFEeKAhpbGq_WxgA" id="(0.5333333333333333,0.9591836734693877)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_2VyX4EjaEeGZpvsaz2lzfQ" type="3003" source="_2UxrQEjaEeGZpvsaz2lzfQ" target="_wsQDEhqkEeGIWuhy_7gRFw">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_2VyX4UjaEeGZpvsaz2lzfQ" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_2VyX4kjaEeGZpvsaz2lzfQ" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2VyX40jaEeGZpvsaz2lzfQ" points="[-33, -23, 61, 256]$[-33, -63, 61, 216]$[-125, -63, -31, 216]$[-125, -255, -31, 24]"/>
+  </edges>
+</notation:Diagram>

二進制
plugins/org.yakindu.sct.model.sexec/model/sexec_steps.pdf


+ 3 - 4
plugins/org.yakindu.sct.model.sexec/model/sexec_trace.ecore

@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<ecore:EPackage 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" name="sexecTrace"
-    nsURI="http://www.yakindu.org/sct/sexec_trace/1.0.0" nsPrefix="trace">
+<ecore:EPackage 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" name="sexecTrace" nsURI="http://www.yakindu.org/sct/sexec_trace/1.0.0"
+    nsPrefix="trace">
   <eClassifiers xsi:type="ecore:EClass" name="Trace" eSuperTypes="sexec.ecore#//Step"/>
   <eClassifiers xsi:type="ecore:EClass" name="TReactionTriggerWillEvaluate"/>
 </ecore:EPackage>

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

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_C_ZL8GoeEeKAhpbGq_WxgA" type="EcoreTools" measurementUnit="Pixel">
+  <children xmi:type="notation:Node" xmi:id="_DBIRUGoeEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_DBL7sGoeEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_DBMiwGoeEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_DBMiwWoeEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_DBMiwmoeEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_DBMiw2oeEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_DBMixGoeEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_DBMixWoeEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_DBMixmoeEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_DBMix2oeEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_DBIRUWoeEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec_trace.ecore#//Trace"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DBIRUmoeEeKAhpbGq_WxgA" x="200" y="192"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_DBSpYGoeEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_DBTQcGoeEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_DBTQcWoeEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_DBTQcmoeEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_DBTQc2oeEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_DBTQdGoeEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_DBTQdWoeEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_DBTQdmoeEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_DBTQd2oeEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_DBTQeGoeEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_DBSpYWoeEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sexec_trace.ecore#//TReactionTriggerWillEvaluate"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DBSpYmoeEeKAhpbGq_WxgA" x="344" y="192"/>
+  </children>
+  <styles xmi:type="notation:DiagramStyle" xmi:id="_C_ZL8WoeEeKAhpbGq_WxgA"/>
+  <element xmi:type="ecore:EPackage" href="sexec_trace.ecore#/"/>
+</notation:Diagram>

二進制
plugins/org.yakindu.sct.model.sexec/model/ysct_mm_sexec_steps.pdf


文件差異過大導致無法顯示
+ 788 - 0
plugins/org.yakindu.sct.model.sexec/model/ysct_mm_sexec_steps.svg


+ 16 - 2
plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/transformation/BehaviorMapping.xtend

@@ -40,6 +40,7 @@ import org.yakindu.sct.model.stext.stext.ReactionEffect
 import org.yakindu.sct.model.stext.stext.ReactionTrigger
 import org.yakindu.sct.model.stext.stext.RegularEventSpec
 import org.yakindu.sct.model.stext.stext.TimeEventSpec
+import java.util.ArrayList
 
  
 
@@ -443,7 +444,7 @@ class BehaviorMapping {
 
 		// define exit behavior of transition
 		
-		// first process the exit behavior of orthogonal states that hase to be performed before source exit
+		// first process the exit behavior of orthogonal states that has to be performed before source exit
 		val exitStates = transitions.get(0).exitStates.toList
 		for ( t : transitions ) {
 			exitStates.retainAll(t.exitStates.toList)
@@ -489,7 +490,20 @@ class BehaviorMapping {
 		val entryScope = entryScopes.head
 		
 		// determine all target vertices
-		val List<TargetEntrySpec> targets = transitions.map( t | new TargetEntrySpec(t.target.mapped, t.entryPointName) )
+		val List<TargetEntrySpec> targets = transitions
+												.map( t | new TargetEntrySpec(t.target.mapped, t.entryPointName) )
+												.fold(new ArrayList<TargetEntrySpec>, [ s, e | { 
+														if (!s.exists(tes | e.target == tes.target)) {s.add(e)} 
+														s
+													}])
+													
+		// determine all target vertices and create a list that does not contain duplicates
+//		val targets = transitions
+//						.map( t | t.target.mapped)
+//						.fold(new ArrayList<ExecutionNode>, [ s, e | { 
+//							if (!s.contains(e)) {s.add(e)} 
+//							s
+//						}])
 		
 		// recursively extend the sequence by entering the scope for the specified targets		
 		if (entryScope != null) entryScope.addEnterStepsForTargetsToSequence( targets, sequence)	

+ 1 - 1
plugins/org.yakindu.sct.model.sgen/pom.xml

@@ -5,7 +5,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<parent>
 		<groupId>org.yakindu.sct</groupId>
-		<artifactId>org.yakindu.sct.releng</artifactId>
+		<artifactId>org.yakindu.sct.releng</artifactId>
 		<version>2.1.0-SNAPSHOT</version>
 		<relativePath>../org.yakindu.sct.releng/pom.xml</relativePath>
 	</parent>

+ 1 - 1
plugins/org.yakindu.sct.model.sgraph.edit/pom.xml

@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.yakindu.sct</groupId>
 		<artifactId>org.yakindu.sct.releng</artifactId>
-		<version>2.1.0-SNAPSHOT</version>
+		<version>2.0.1-SNAPSHOT</version>
 		<relativePath>../org.yakindu.sct.releng/pom.xml</relativePath>
 	</parent>
 	<artifactId>org.yakindu.sct.model.sgraph.edit</artifactId>

+ 1 - 0
plugins/org.yakindu.sct.model.sgraph/.settings/org.eclipse.core.resources.prefs

@@ -1,3 +1,4 @@
 eclipse.preferences.version=1
 encoding//model/emf/sgraph.ecorediag=UTF-8
+encoding//model/emf/sgraph2.ecorediag=UTF-8
 encoding/<project>=UTF-8

+ 817 - 0
plugins/org.yakindu.sct.model.sgraph/model/emf/sgraph2.ecorediag

@@ -0,0 +1,817 @@
+<?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="_TweJIGryEeKAhpbGq_WxgA" type="EcoreTools" measurementUnit="Pixel">
+  <children xmi:type="notation:Node" xmi:id="_TwhMcGryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TwhMc2ryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_TwhMdGryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwhMdWryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwhMdmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwhMd2ryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TwhzgGryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwhzgWryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwhzgmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Twhzg2ryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_TwhMcWryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Pseudostate"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TwhMcmryEeKAhpbGq_WxgA" x="788" y="512"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_TwjBoGryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TwjosGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_TwjosWryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwjosmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Twjos2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwjotGryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TwjotWryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwjotmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Twjot2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwjouGryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_TwjBoWryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Vertex"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TwjBomryEeKAhpbGq_WxgA" x="752" y="404"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_TwjouWryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TwkPwGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_TwkPwWryEeKAhpbGq_WxgA" type="5001">
+      <children xmi:type="notation:Node" xmi:id="_Twk20GryEeKAhpbGq_WxgA" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sgraph.ecore#//Region/priority"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Twk20WryEeKAhpbGq_WxgA"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwkPwmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwkPw2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwkPxGryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TwkPxWryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwkPxmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwkPx2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwkPyGryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_TwjoumryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Region"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Twjou2ryEeKAhpbGq_WxgA" x="948" y="244"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_Twk20mryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_Twk21WryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_Twld4GryEeKAhpbGq_WxgA" type="5001">
+      <children xmi:type="notation:Node" xmi:id="_Twld6GryEeKAhpbGq_WxgA" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sgraph.ecore#//Transition/priority"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Twld6WryEeKAhpbGq_WxgA"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_Twld4WryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Twld4mryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Twld42ryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_Twld5GryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_Twld5WryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Twld5mryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Twld52ryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_Twk202ryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Transition"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Twk21GryEeKAhpbGq_WxgA" x="1168" y="392"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_Twld6mryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TwmE8GryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_TwmE8WryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwmE8mryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwmE82ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwmE9GryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TwmE9WryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwmE9mryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwmE92ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwmE-GryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_Twld62ryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//FinalState"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Twld7GryEeKAhpbGq_WxgA" x="612" y="640"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_TwmE-WryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TwmsAGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_TwmsAWryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwmsAmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwmsA2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwmsBGryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TwmsBWryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwmsBmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwmsB2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwmsCGryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_TwmE-mryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Variable"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TwmE-2ryEeKAhpbGq_WxgA" x="128" y="180"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_TwmsCWryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TwnTEGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_TwnTEWryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwnTEmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwnTE2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwnTFGryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TwnTFWryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwnTFmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwnTF2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwnTGGryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_TwmsCmryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Event"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TwmsC2ryEeKAhpbGq_WxgA" x="244" y="180"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_Twn6IGryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_Twn6I2ryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_Twn6JGryEeKAhpbGq_WxgA" type="5001">
+      <children xmi:type="notation:Node" xmi:id="_TwohMGryEeKAhpbGq_WxgA" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sgraph.ecore#//Choice/kind"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_TwohMWryEeKAhpbGq_WxgA"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_Twn6JWryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Twn6JmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Twn6J2ryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_Twn6KGryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_Twn6KWryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Twn6KmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Twn6K2ryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_Twn6IWryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Choice"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Twn6ImryEeKAhpbGq_WxgA" x="752" y="640"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_TwohMmryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TwohNWryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_TwohNmryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwohN2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwohOGryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwohOWryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TwohOmryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwohO2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwohPGryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwpIQGryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_TwohM2ryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Statechart"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TwohNGryEeKAhpbGq_WxgA" x="188" y="472"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_TwpIQWryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TwpIRGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_TwpIRWryEeKAhpbGq_WxgA" type="5001">
+      <children xmi:type="notation:Node" xmi:id="_TwpvVGryEeKAhpbGq_WxgA" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sgraph.ecore#//Entry/kind"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_TwpvVWryEeKAhpbGq_WxgA"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwpIRmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwpIR2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwpISGryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TwpvUGryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwpvUWryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwpvUmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwpvU2ryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_TwpIQmryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Entry"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TwpIQ2ryEeKAhpbGq_WxgA" x="888" y="640"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_TwpvVmryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TwqWYGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_TwqWYWryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwqWYmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwqWY2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwqWZGryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TwqWZWryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwqWZmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwqWZ2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwqWaGryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_TwpvV2ryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Trigger"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TwpvWGryEeKAhpbGq_WxgA" x="352" y="876"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_TwqWaWryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TwqWbGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_Twq9cGryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_Twq9cWryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Twq9cmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Twq9c2ryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_Twq9dGryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_Twq9dWryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Twq9dmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Twq9d2ryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_TwqWamryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Effect"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TwqWa2ryEeKAhpbGq_WxgA" x="488" y="876"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_TwrkimryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TwsLkGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_TwsLkWryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwsLkmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwsLk2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwsLlGryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TwsLlWryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwsLlmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwsLl2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwsLmGryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_Twrki2ryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Declaration"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TwrkjGryEeKAhpbGq_WxgA" x="196" y="92"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_TwsLmWryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TwsyoGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_TwsyoWryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwsyomryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Twsyo2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwsypGryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TwsypWryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwsypmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Twsyp2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwsyqGryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_TwsLmmryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Reaction"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TwsLm2ryEeKAhpbGq_WxgA" x="416" y="788"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_TwuAwGryEeKAhpbGq_WxgA" type="1005">
+    <children xmi:type="notation:Node" xmi:id="_TwvO4GryEeKAhpbGq_WxgA" type="4010"/>
+    <children xmi:type="notation:Node" xmi:id="_TwvO4WryEeKAhpbGq_WxgA" type="5008">
+      <children xmi:type="notation:Node" xmi:id="_Twv18GryEeKAhpbGq_WxgA" type="2006">
+        <element xmi:type="ecore:EEnumLiteral" href="sgraph.ecore#//EntryKind/initial"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Twv18WryEeKAhpbGq_WxgA"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_Twv18mryEeKAhpbGq_WxgA" type="2006">
+        <element xmi:type="ecore:EEnumLiteral" href="sgraph.ecore#//EntryKind/shallowHistory"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Twv182ryEeKAhpbGq_WxgA"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_Twv19GryEeKAhpbGq_WxgA" type="2006">
+        <element xmi:type="ecore:EEnumLiteral" href="sgraph.ecore#//EntryKind/deepHistory"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Twv19WryEeKAhpbGq_WxgA"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwvO4mryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwvO42ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwvO5GryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_TwuAwWryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EEnum" href="sgraph.ecore#//EntryKind"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TwuAwmryEeKAhpbGq_WxgA" x="888" y="696"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_TwwdAGryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TwxEEGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_TwxEEWryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwxEEmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwxEE2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwxEFGryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TwxrIGryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwxrIWryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwxrImryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwxrI2ryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_TwwdAWryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//ReactiveElement"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TwwdAmryEeKAhpbGq_WxgA" x="412" y="680"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_TwxrJGryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TwySMGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_TwySMWryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwySMmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwySM2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwySNGryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TwySNWryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwySNmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwySN2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwySOGryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_TwxrJWryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Exit"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TwxrJmryEeKAhpbGq_WxgA" x="1004" y="640"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_TwySOWryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_Twy5QGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_Twy5QWryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_Twy5QmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Twy5Q2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Twy5RGryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_Twy5RWryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_Twy5RmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Twy5R2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Twy5SGryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_TwySOmryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Scope"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TwySO2ryEeKAhpbGq_WxgA" x="380" y="244"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_Twy5SWryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TwzgUGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_TwzgUWryEeKAhpbGq_WxgA" type="5001">
+      <children xmi:type="notation:Node" xmi:id="_TwzgWWryEeKAhpbGq_WxgA" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sgraph.ecore#//ScopedElement/namespace"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_TwzgWmryEeKAhpbGq_WxgA"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwzgUmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwzgU2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwzgVGryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TwzgVWryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TwzgVmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TwzgV2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TwzgWGryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_Twy5SmryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//ScopedElement"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Twy5S2ryEeKAhpbGq_WxgA" x="560" y="244"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_TwzgW2ryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_Tw0HYGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_Tw0HYWryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_Tw0HYmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Tw0HY2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Tw0HZGryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_Tw0HZWryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_Tw0HZmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Tw0HZ2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Tw0HaGryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_TwzgXGryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//Synchronization"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TwzgXWryEeKAhpbGq_WxgA" x="1112" y="640"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_Tw0HaWryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_Tw0ucGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_Tw0ucWryEeKAhpbGq_WxgA" type="5001">
+      <children xmi:type="notation:Node" xmi:id="_Tw0ueWryEeKAhpbGq_WxgA" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sgraph.ecore#//State/orthogonal"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Tw0uemryEeKAhpbGq_WxgA"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_Tw1VgGryEeKAhpbGq_WxgA" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sgraph.ecore#//State/substatechartId"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Tw1VgWryEeKAhpbGq_WxgA"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_Tw1VgmryEeKAhpbGq_WxgA" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sgraph.ecore#//State/subchart"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Tw1Vg2ryEeKAhpbGq_WxgA"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_Tw1VhGryEeKAhpbGq_WxgA" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sgraph.ecore#//State/simple"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Tw1VhWryEeKAhpbGq_WxgA"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_Tw1VhmryEeKAhpbGq_WxgA" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sgraph.ecore#//State/composite"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Tw1Vh2ryEeKAhpbGq_WxgA"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_Tw18kGryEeKAhpbGq_WxgA" type="2001">
+        <element xmi:type="ecore:EAttribute" href="sgraph.ecore#//State/leaf"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Tw18kWryEeKAhpbGq_WxgA"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_Tw0ucmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Tw0uc2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Tw0udGryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_Tw0udWryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_Tw0udmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Tw0ud2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Tw0ueGryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_Tw0HamryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//State"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tw0Ha2ryEeKAhpbGq_WxgA" x="392" y="460"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_Tw2jqWryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_Tw8qQGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_Tw9RUGryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_Tw9RUWryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Tw9RUmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Tw9RU2ryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_Tw9RVGryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_Tw9RVWryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Tw9RVmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Tw9RV2ryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_Tw2jqmryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//RegularState"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tw2jq2ryEeKAhpbGq_WxgA" x="612" y="508"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_Tw-fcGryEeKAhpbGq_WxgA" type="1005">
+    <children xmi:type="notation:Node" xmi:id="_Tw_GgGryEeKAhpbGq_WxgA" type="4010"/>
+    <children xmi:type="notation:Node" xmi:id="_Tw_GgWryEeKAhpbGq_WxgA" type="5008">
+      <children xmi:type="notation:Node" xmi:id="_Tw_tkGryEeKAhpbGq_WxgA" type="2006">
+        <element xmi:type="ecore:EEnumLiteral" href="sgraph.ecore#//ChoiceKind/dynamic"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Tw_tkWryEeKAhpbGq_WxgA"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_Tw_tkmryEeKAhpbGq_WxgA" type="2006">
+        <element xmi:type="ecore:EEnumLiteral" href="sgraph.ecore#//ChoiceKind/static"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Tw_tk2ryEeKAhpbGq_WxgA"/>
+      </children>
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_Tw_GgmryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Tw_Gg2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Tw_GhGryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_Tw-fcWryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EEnum" href="sgraph.ecore#//ChoiceKind"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tw-fcmryEeKAhpbGq_WxgA" x="752" y="696"/>
+  </children>
+  <children xmi:type="notation:Node" xmi:id="_Tw_tlGryEeKAhpbGq_WxgA" type="1001">
+    <children xmi:type="notation:Node" xmi:id="_TxAUoGryEeKAhpbGq_WxgA" type="4001"/>
+    <children xmi:type="notation:Node" xmi:id="_TxAUoWryEeKAhpbGq_WxgA" type="5001">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TxAUomryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TxAUo2ryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TxAUpGryEeKAhpbGq_WxgA"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxA7sGryEeKAhpbGq_WxgA" type="5002">
+      <styles xmi:type="notation:DrawerStyle" xmi:id="_TxA7sWryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_TxA7smryEeKAhpbGq_WxgA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_TxA7s2ryEeKAhpbGq_WxgA"/>
+    </children>
+    <styles xmi:type="notation:ShapeStyle" xmi:id="_Tw_tlWryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+    <element xmi:type="ecore:EClass" href="sgraph.ecore#//CompositeElement"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tw_tlmryEeKAhpbGq_WxgA" x="732" y="244"/>
+  </children>
+  <styles xmi:type="notation:DiagramStyle" xmi:id="_TweJIWryEeKAhpbGq_WxgA"/>
+  <element xmi:type="ecore:EPackage" href="sgraph.ecore#/"/>
+  <edges xmi:type="notation:Edge" xmi:id="_TxEmEGryEeKAhpbGq_WxgA" type="3003" source="_TwhMcGryEeKAhpbGq_WxgA" target="_TwjBoGryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxEmEWryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxEmEmryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxEmE2ryEeKAhpbGq_WxgA" points="[0, 0, 56, 56]$[0, -24, 56, 32]$[-90, -24, -34, 32]$[-90, -56, -34, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3KnAmryEeKAhpbGq_WxgA" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3KnA2ryEeKAhpbGq_WxgA" id="(0.7450980392156863,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxF0MGryEeKAhpbGq_WxgA" type="3002" source="_TwjBoGryEeKAhpbGq_WxgA" target="_TwjouWryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxGbQGryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxGbQWryEeKAhpbGq_WxgA" x="23" y="30"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxHCUGryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxHCUWryEeKAhpbGq_WxgA" x="30" y="17"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxF0MWryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxF0MmryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//Vertex/parentRegion"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxF0M2ryEeKAhpbGq_WxgA" points="[0, 0, -163, 165]$[70, -84, -93, 81]$[163, -165, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3HjsmryEeKAhpbGq_WxgA" id="(0.6666666666666666,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3IKwGryEeKAhpbGq_WxgA" id="(0.3333333333333333,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxHCUmryEeKAhpbGq_WxgA" type="3002" source="_TwjBoGryEeKAhpbGq_WxgA" target="_Twk20mryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxHpYGryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxHpYWryEeKAhpbGq_WxgA" x="-14" y="15"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxHpYmryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxHpY2ryEeKAhpbGq_WxgA" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxHCU2ryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxHCVGryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//Vertex/incomingTransitions"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxHCVWryEeKAhpbGq_WxgA" points="[7, 1, -336, 2]$[167, 25, -176, 26]$[323, 2, -20, 3]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nwE2cmuHEeKAhpbGq_WxgA" id="(0.9313725490196079,0.38095238095238093)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nwFdgGuHEeKAhpbGq_WxgA" id="(0.20588235294117646,0.5714285714285714)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxHpZGryEeKAhpbGq_WxgA" type="3002" source="_TwjBoGryEeKAhpbGq_WxgA" target="_Twk20mryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxHpaGryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxHpaWryEeKAhpbGq_WxgA" x="-13" y="-17"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxHpamryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxHpa2ryEeKAhpbGq_WxgA" x="31" y="-5"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxHpZWryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxHpZmryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//Vertex/outgoingTransitions"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxHpZ2ryEeKAhpbGq_WxgA" points="[20, -1, -316, 1]$[196, -13, -140, -11]$[336, -2, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_otHQQGr0EeKAhpbGq_WxgA" id="(0.803921568627451,0.14285714285714285)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_otHQQWr0EeKAhpbGq_WxgA" id="(0.00980392156862745,0.32653061224489793)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxIQcGryEeKAhpbGq_WxgA" type="3002" source="_TwjouWryEeKAhpbGq_WxgA" target="_TwjBoGryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxIQdGryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxIQdWryEeKAhpbGq_WxgA" x="39" y="24"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxIQdmryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxIQd2ryEeKAhpbGq_WxgA" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxIQcWryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxIQcmryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//Region/vertices"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxIQc2ryEeKAhpbGq_WxgA" points="[0, 0, 163, -165]$[-93, 81, 70, -84]$[-163, 165, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rqKQMGr0EeKAhpbGq_WxgA" id="(0.3333333333333333,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rqKQMWr0EeKAhpbGq_WxgA" id="(0.6666666666666666,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxIQeGryEeKAhpbGq_WxgA" type="3002" source="_TwjouWryEeKAhpbGq_WxgA" target="_Tw_tlGryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxIQfGryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxIQfWryEeKAhpbGq_WxgA" x="-13" y="25"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxI3gGryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxI3gWryEeKAhpbGq_WxgA" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxIQeWryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxIQemryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//Region/composite"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxIQe2ryEeKAhpbGq_WxgA" points="[-24, 4, 130, 8]$[-72, 13, 82, 17]$[-128, 1, 26, 5]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g7nC0Gr0EeKAhpbGq_WxgA" id="(0.24509803921568626,0.4897959183673469)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g7nC0Wr0EeKAhpbGq_WxgA" id="(0.7719298245614035,0.47619047619047616)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxI3gmryEeKAhpbGq_WxgA" type="3002" source="_Twk20mryEeKAhpbGq_WxgA" target="_TwjBoGryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxI3hmryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxI3h2ryEeKAhpbGq_WxgA" x="-2" y="-9"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxI3iGryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxI3iWryEeKAhpbGq_WxgA" x="22" y="-12"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxI3g2ryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxI3hGryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//Transition/target"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxI3hWryEeKAhpbGq_WxgA" points="[-20, 3, 323, 2]$[-176, 26, 167, 25]$[-336, 2, 7, 1]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3D5UWryEeKAhpbGq_WxgA" id="(0.20588235294117646,0.5714285714285714)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3D5UmryEeKAhpbGq_WxgA" id="(0.9313725490196079,0.38095238095238093)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxI3imryEeKAhpbGq_WxgA" type="3002" source="_Twk20mryEeKAhpbGq_WxgA" target="_TwjBoGryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxJekGryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxJekWryEeKAhpbGq_WxgA" x="-7" y="5"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxJekmryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxJek2ryEeKAhpbGq_WxgA" x="14" y="7"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxI3i2ryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxI3jGryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//Transition/source"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxI3jWryEeKAhpbGq_WxgA" points="[0, 0, 336, -2]$[-140, -11, 196, -13]$[-316, 1, 20, -1]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mIw6YGuHEeKAhpbGq_WxgA" id="(0.00980392156862745,0.32653061224489793)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mIw6YWuHEeKAhpbGq_WxgA" id="(0.803921568627451,0.14285714285714285)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxJemGryEeKAhpbGq_WxgA" type="3003" source="_Twk20mryEeKAhpbGq_WxgA" target="_TwsLmWryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxJemWryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxJemmryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxJem2ryEeKAhpbGq_WxgA" points="[10, 47, 754, -389]$[10, 416, 754, -20]$[-718, 416, 26, -20]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3EgYGryEeKAhpbGq_WxgA" id="(0.6666666666666666,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3EgYWryEeKAhpbGq_WxgA" id="(0.7450980392156863,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxKFoGryEeKAhpbGq_WxgA" type="3003" source="_Twld6mryEeKAhpbGq_WxgA" target="_Tw2jqWryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxKFoWryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxKFomryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxKFo2ryEeKAhpbGq_WxgA" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3CEIGryEeKAhpbGq_WxgA" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3CEIWryEeKAhpbGq_WxgA" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxKFpGryEeKAhpbGq_WxgA" type="3003" source="_TwmE-WryEeKAhpbGq_WxgA" target="_TwrkimryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxKFpWryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxKFpmryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxKFp2ryEeKAhpbGq_WxgA" points="[42, 0, 0, 48]$[42, -48, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3LOEmryEeKAhpbGq_WxgA" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3L1IGryEeKAhpbGq_WxgA" id="(0.24509803921568626,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxKFqGryEeKAhpbGq_WxgA" type="3003" source="_TwmsCWryEeKAhpbGq_WxgA" target="_TwrkimryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxKFqWryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxKFqmryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxKFq2ryEeKAhpbGq_WxgA" points="[-38, 0, 10, 48]$[-38, -48, 10, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3CrMGryEeKAhpbGq_WxgA" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3CrMWryEeKAhpbGq_WxgA" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxKssGryEeKAhpbGq_WxgA" type="3003" source="_Twn6IGryEeKAhpbGq_WxgA" target="_TwhMcGryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxKssWryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxKssmryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxKss2ryEeKAhpbGq_WxgA" points="[-1, 0, -4, 88]$[-1, -48, -4, 40]$[35, -48, 32, 40]$[35, -88, 32, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3KnAGryEeKAhpbGq_WxgA" id="(0.49572649572649574,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3KnAWryEeKAhpbGq_WxgA" id="(0.24509803921568626,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxLTwGryEeKAhpbGq_WxgA" type="3003" source="_TwohMmryEeKAhpbGq_WxgA" target="_TwwdAGryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxLTwWryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxLTwmryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxLTw2ryEeKAhpbGq_WxgA" points="[3, 40, -171, -208]$[3, 152, -171, -96]$[202, 152, 28, -96]$[202, 208, 28, -40]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3NqUWryEeKAhpbGq_WxgA" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3NqUmryEeKAhpbGq_WxgA" id="(0.28431372549019607,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxLTxGryEeKAhpbGq_WxgA" type="3003" source="_TwohMmryEeKAhpbGq_WxgA" target="_Twy5SWryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxLTxWryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxLTxmryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxLTx2ryEeKAhpbGq_WxgA" points="[0, 0, -440, 233]$[0, -148, -440, 85]$[388, -148, -52, 85]$[388, -233, -52, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3NDQ2ryEeKAhpbGq_WxgA" id="(0.16666666666666666,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3NqUGryEeKAhpbGq_WxgA" id="(0.6666666666666666,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxL60GryEeKAhpbGq_WxgA" type="3003" source="_TwohMmryEeKAhpbGq_WxgA" target="_Tw_tlGryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxL60WryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxL60mryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxL602ryEeKAhpbGq_WxgA" points="[0, 0, -525, 240]$[0, -124, -525, 116]$[538, -124, 13, 116]$[538, -240, 13, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3R7wWryEeKAhpbGq_WxgA" id="(0.7450980392156863,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3R7wmryEeKAhpbGq_WxgA" id="(0.24561403508771928,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxL61GryEeKAhpbGq_WxgA" type="3003" source="_TwpIQWryEeKAhpbGq_WxgA" target="_TwhMcGryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxL61WryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxL61mryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxL612ryEeKAhpbGq_WxgA" points="[0, 0, 127, 88]$[0, -48, 127, 40]$[-121, -48, 6, 40]$[-121, -88, 6, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3NDQWryEeKAhpbGq_WxgA" id="(0.7247706422018348,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3NDQmryEeKAhpbGq_WxgA" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxMh4GryEeKAhpbGq_WxgA" type="3002" source="_TwsLmWryEeKAhpbGq_WxgA" target="_TwpvVmryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxMh5GryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxMh5WryEeKAhpbGq_WxgA" x="-24" y="20"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxMh5mryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxMh52ryEeKAhpbGq_WxgA" x="2" y="12"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxMh4WryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxMh4mryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//Reaction/trigger"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxMh42ryEeKAhpbGq_WxgA" points="[0, 0, 49, 60]$[-49, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3GVkGryEeKAhpbGq_WxgA" id="(0.3333333333333333,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3GVkWryEeKAhpbGq_WxgA" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxMh6GryEeKAhpbGq_WxgA" type="3002" source="_TwsLmWryEeKAhpbGq_WxgA" target="_TwqWaWryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxMh7GryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxMh7WryEeKAhpbGq_WxgA" x="-23" y="-19"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxMh7mryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxMh72ryEeKAhpbGq_WxgA" x="-6" y="9"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxMh6WryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxMh6mryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//Reaction/effect"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxMh62ryEeKAhpbGq_WxgA" points="[0, 0, -79, 60]$[79, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3FugGryEeKAhpbGq_WxgA" id="(0.6666666666666666,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3FugWryEeKAhpbGq_WxgA" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxNI8GryEeKAhpbGq_WxgA" type="3002" source="_TwwdAGryEeKAhpbGq_WxgA" target="_TwsLmWryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxNI9GryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxNI9WryEeKAhpbGq_WxgA" x="-34" y="-12"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxNI9mryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxNI92ryEeKAhpbGq_WxgA" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxNI8WryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxNI8mryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//ReactiveElement/reactions"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxNI82ryEeKAhpbGq_WxgA" points="[0, 0, -65, 67]$[65, -67, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3ORYmryEeKAhpbGq_WxgA" id="(0.7941176470588235,0.9285714285714286)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3O4cGryEeKAhpbGq_WxgA" id="(0.7156862745098039,0.023809523809523808)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxNI-GryEeKAhpbGq_WxgA" type="3002" source="_TwwdAGryEeKAhpbGq_WxgA" target="_TwsLmWryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxNI_GryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxNwAGryEeKAhpbGq_WxgA" x="-38" y="21"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxNwAWryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxNwAmryEeKAhpbGq_WxgA" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxNI-WryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxNI-mryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//ReactiveElement/localReactions"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxNI-2ryEeKAhpbGq_WxgA" points="[0, 0, -73, 67]$[73, -67, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3ORYGryEeKAhpbGq_WxgA" id="(0.3627450980392157,0.9285714285714286)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3ORYWryEeKAhpbGq_WxgA" id="(0.24509803921568626,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxNwA2ryEeKAhpbGq_WxgA" type="3003" source="_TwxrJGryEeKAhpbGq_WxgA" target="_TwhMcGryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxNwBGryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxNwBWryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxNwBmryEeKAhpbGq_WxgA" points="[3, 0, 203, 88]$[3, -48, 203, 40]$[-210, -48, -10, 40]$[-210, -88, -10, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3McMGryEeKAhpbGq_WxgA" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3McMWryEeKAhpbGq_WxgA" id="(0.6666666666666666,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxNwB2ryEeKAhpbGq_WxgA" type="3002" source="_TwySOWryEeKAhpbGq_WxgA" target="_TwrkimryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxNwC2ryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxNwDGryEeKAhpbGq_WxgA" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxOXEGryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxOXEWryEeKAhpbGq_WxgA" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxNwCGryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxNwCWryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//Scope/declarations"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxNwCmryEeKAhpbGq_WxgA" points="[0, -2, 154, 141]$[0, -143, 154, 0]$[-144, -143, 10, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3QGkmryEeKAhpbGq_WxgA" id="(0.6078431372549019,0.07142857142857142)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3QtoGryEeKAhpbGq_WxgA" id="(0.9019607843137255,0.2857142857142857)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxOXEmryEeKAhpbGq_WxgA" type="3002" source="_TwySOWryEeKAhpbGq_WxgA" target="_TwmsCWryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxOXFmryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxOXF2ryEeKAhpbGq_WxgA" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxOXGGryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxOXGWryEeKAhpbGq_WxgA" x="10" y="13"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxOXE2ryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxOXFGryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//Scope/events"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxOXFWryEeKAhpbGq_WxgA" points="[-3, 0, 86, 39]$[-95, 0, -6, 39]$[-95, -39, -6, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3DSQWryEeKAhpbGq_WxgA" id="(0.0392156862745098,0.38095238095238093)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3D5UGryEeKAhpbGq_WxgA" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxOXGmryEeKAhpbGq_WxgA" type="3002" source="_TwySOWryEeKAhpbGq_WxgA" target="_TwmE-WryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxO-IGryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxO-IWryEeKAhpbGq_WxgA" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxO-ImryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxO-I2ryEeKAhpbGq_WxgA" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxOXG2ryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxOXHGryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//Scope/variables"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxOXHWryEeKAhpbGq_WxgA" points="[-4, 0, 202, 56]$[-200, 0, 6, 56]$[-200, -56, 6, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3CrMmryEeKAhpbGq_WxgA" id="(0.049019607843137254,0.8095238095238095)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3DSQGryEeKAhpbGq_WxgA" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxO-JGryEeKAhpbGq_WxgA" type="3002" source="_Twy5SWryEeKAhpbGq_WxgA" target="_TwySOWryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxO-KGryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxO-KWryEeKAhpbGq_WxgA" x="-10" y="-10"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxO-KmryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxO-K2ryEeKAhpbGq_WxgA" x="-9" y="13"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxO-JWryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxO-JmryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//ScopedElement/scopes"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxO-J2ryEeKAhpbGq_WxgA" points="[0, 0, 0, 67]$[0, -67, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3L1IWryEeKAhpbGq_WxgA" id="(0.03875968992248062,0.5306122448979592)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3L1ImryEeKAhpbGq_WxgA" id="(0.9803921568627451,0.47619047619047616)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxO-LGryEeKAhpbGq_WxgA" type="3003" source="_TwzgW2ryEeKAhpbGq_WxgA" target="_TwhMcGryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxO-LWryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxO-LmryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxO-L2ryEeKAhpbGq_WxgA" points="[-8, 0, 283, 88]$[-8, -48, 283, 40]$[-318, -48, -27, 40]$[-318, -88, -27, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3JY4GryEeKAhpbGq_WxgA" id="(0.5,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3JY4WryEeKAhpbGq_WxgA" id="(0.8333333333333334,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxPlMGryEeKAhpbGq_WxgA" type="3002" source="_Tw0HaWryEeKAhpbGq_WxgA" target="_TwohMmryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxQMQGryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxQMQWryEeKAhpbGq_WxgA" x="-49" y="-12"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxQzUGryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxQzUWryEeKAhpbGq_WxgA" x="-1" y="8"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxPlMWryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxPlMmryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//State/substatechart"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxPlM2ryEeKAhpbGq_WxgA" points="[0, 0, 0, 162]$[0, -162, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3O4cWryEeKAhpbGq_WxgA" id="(0.006666666666666667,0.21705426356589147)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3PfgGryEeKAhpbGq_WxgA" id="(0.9901960784313726,0.2619047619047619)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxRaYGryEeKAhpbGq_WxgA" type="3003" source="_Tw0HaWryEeKAhpbGq_WxgA" target="_TwwdAGryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxRaYWryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxRaYmryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxRaY2ryEeKAhpbGq_WxgA" points="[-43, 127, -7, -133]$[-43, 220, -7, -40]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3QtoWryEeKAhpbGq_WxgA" id="(0.62,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3QtomryEeKAhpbGq_WxgA" id="(0.6372549019607843,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxRaZGryEeKAhpbGq_WxgA" type="3003" source="_Tw0HaWryEeKAhpbGq_WxgA" target="_Twy5SWryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxRaZWryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxRaZmryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxRaZ2ryEeKAhpbGq_WxgA" points="[12, 0, -174, 221]$[12, -136, -174, 85]$[176, -136, -10, 85]$[176, -221, -10, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3RUsGryEeKAhpbGq_WxgA" id="(0.16666666666666666,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3RUsWryEeKAhpbGq_WxgA" id="(0.3333333333333333,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxSBcGryEeKAhpbGq_WxgA" type="3003" source="_Tw0HaWryEeKAhpbGq_WxgA" target="_Tw2jqWryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxSBcWryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxSBcmryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxSBc2ryEeKAhpbGq_WxgA" points="[0, 0, -140, 60]$[0, -30, -140, 30]$[140, -30, 0, 30]$[140, -60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3LOEGryEeKAhpbGq_WxgA" id="(0.7466666666666667,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3LOEWryEeKAhpbGq_WxgA" id="(0.24509803921568626,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxSBdGryEeKAhpbGq_WxgA" type="3003" source="_Tw0HaWryEeKAhpbGq_WxgA" target="_Tw_tlGryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxSBdWryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxSBdmryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxSBd2ryEeKAhpbGq_WxgA" points="[-13, 0, -335, 228]$[-13, -112, -335, 116]$[279, -112, -43, 116]$[279, -228, -43, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3RUsmryEeKAhpbGq_WxgA" id="(0.8733333333333333,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3R7wGryEeKAhpbGq_WxgA" id="(0.7456140350877193,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxSBeGryEeKAhpbGq_WxgA" type="3003" source="_Tw2jqWryEeKAhpbGq_WxgA" target="_TwjBoGryEeKAhpbGq_WxgA">
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxSBeWryEeKAhpbGq_WxgA" routing="Rectilinear" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxSBemryEeKAhpbGq_WxgA" fontName="Lucida Grande"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxSBe2ryEeKAhpbGq_WxgA" points="[-25, 0, -110, 52]$[-25, -20, -110, 32]$[75, -20, -10, 32]$[75, -52, -10, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3McMmryEeKAhpbGq_WxgA" id="(0.6176470588235294,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T3NDQGryEeKAhpbGq_WxgA" id="(0.5,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_TxSogGryEeKAhpbGq_WxgA" type="3002" source="_Tw_tlGryEeKAhpbGq_WxgA" target="_TwjouWryEeKAhpbGq_WxgA">
+    <children xmi:type="notation:Node" xmi:id="_TxSohGryEeKAhpbGq_WxgA" type="4011">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxSohWryEeKAhpbGq_WxgA" x="1" y="27"/>
+    </children>
+    <children xmi:type="notation:Node" xmi:id="_TxSohmryEeKAhpbGq_WxgA" type="4012">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_TxSoh2ryEeKAhpbGq_WxgA" x="10" y="10"/>
+    </children>
+    <styles xmi:type="notation:ConnectorStyle" xmi:id="_TxSogWryEeKAhpbGq_WxgA" lineColor="4210752"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_TxSogmryEeKAhpbGq_WxgA" fontColor="4210752" fontName="Lucida Grande" fontHeight="10"/>
+    <element xmi:type="ecore:EReference" href="sgraph.ecore#//CompositeElement/regions"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TxSog2ryEeKAhpbGq_WxgA" points="[26, 5, -128, 1]$[82, 17, -72, 13]$[130, 8, -24, 4]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lYCBAGuHEeKAhpbGq_WxgA" id="(0.7719298245614035,0.47619047619047616)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lYCBAWuHEeKAhpbGq_WxgA" id="(0.24509803921568626,0.4897959183673469)"/>
+  </edges>
+</notation:Diagram>

二進制
plugins/org.yakindu.sct.model.sgraph/model/emf/ysct_mm_sgraph.pdf


文件差異過大導致無法顯示
+ 1137 - 0
plugins/org.yakindu.sct.model.sgraph/model/emf/ysct_mm_sgraph.svg


+ 2 - 0
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/SGraphRuntimeModule.java

@@ -7,7 +7,9 @@ import org.eclipse.xtext.resource.impl.ResourceDescriptionsProvider;
 import org.eclipse.xtext.resource.impl.ResourceSetBasedResourceDescriptions;
 import org.eclipse.xtext.scoping.impl.DefaultGlobalScopeProvider;
 import org.eclipse.xtext.service.AbstractGenericModule;
+import org.eclipse.xtext.service.SingletonBinding;
 import org.yakindu.sct.model.sgraph.naming.SGraphNameProvider;
+import org.yakindu.sct.model.sgraph.validation.SGraphJavaValidator;
 
 import com.google.inject.Binder;
 import com.google.inject.name.Names;

+ 159 - 0
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/validation/DFS.java

@@ -0,0 +1,159 @@
+package org.yakindu.sct.model.sgraph.validation;
+
+import java.util.*;
+
+/** This class implements a generic depth first search algorithm,
+ * which can be applied to any structure which can be interpreted as a
+ * graph. Since the interpretation of an application specific structure as a graph can't be
+ * done by this algorithm implementation, you must implement a subclass
+ * .
+ * The current implementation only allows to perform the algorithm once.
+ *
+ * @author Axel Terfloth
+ */
+abstract public class DFS {
+
+	/** Indicates whether the algorithm has been performed or not.*/
+	private boolean done;
+
+ 	/** A map of all visited elements. */
+	private Map myVisitedElements;
+
+ 	/** An iterator of root elements */
+	protected Iterator myElements;
+
+ 	/** The number of traversed links. */
+	public int linkCount;
+
+
+	/** Default algorithm constructor. */
+	public DFS() {
+		done = false;
+		myVisitedElements = new HashMap();
+		myElements = null;
+		linkCount = 0;
+	}
+
+	/** Performs the depth first traversion of all elements */
+	private synchronized void perform() {
+		if (done) return;
+
+		while (myElements.hasNext()) {
+			Object element = myElements.next();
+
+			if (!isVisited(element)) {
+				visit(element, 1);
+			}
+		}
+	}
+
+	/** Performs the graph traversion with all elements which are contained in the
+	 * specified collection. This means that every element of this collection and all
+	 * elements which are reachable from these elements will be visited. */
+	public synchronized void perform(Collection collection) {
+		this.perform(collection.iterator());
+	}
+
+	/** Performs the graph traversion with all elements which are contained in the
+	 * specified iterator. This means that every element of this collection and all
+	 * elements which are reachable from these elements will be visited. */
+	public synchronized void perform(Iterator iterator) {
+		myElements = iterator;
+
+		this.perform();
+	}
+
+	/** Performs the graph traversion with a single root element. So this root element and
+	 * all elements which are reachable from this root elements will be visited. */
+	public synchronized void perform(Object rootElement) {
+		List list = new ArrayList();
+		list.add(rootElement);
+
+		this.perform(list.iterator());
+	}
+
+
+	/** Visits an element. */
+	private int visit(Object element, int depth) {
+		int minDepth = depth;
+
+		if (isVisited(element)) {
+			return getVisitedDepth(element);
+		}
+
+		setVisited(element, depth);
+
+		beginVisit(element, depth);
+
+		Iterator itr = getElementLinks(element);
+		if (itr != null) {
+			while (itr.hasNext()) {
+				int childDepth = visit(itr.next(), depth + 1);
+				minDepth = ((childDepth < minDepth) && (childDepth > -1)) ? childDepth : minDepth;
+				linkCount++;
+			}
+		}
+
+		setVisited(element, -1);
+
+		endVisit(element, depth, minDepth);
+
+		return (minDepth < depth) ? minDepth : depth;
+	}
+
+	/** This hook method will be invoked when the DFS begins the visit of an element.
+	 * Since there is no return parameter this method will not effect the algorithms
+	 * behaviour.
+	 *
+	 * @param element The element wich will be visited.
+	 * @param depth The distance to a root element of the graph traversion.
+	 */
+	public void beginVisit(Object element, int depth) {
+	}
+
+	/** This hook method will be invoked when the DFS finishes the visit of an element.
+	 * Since there is no return parameter this method will not effect the algorithms
+	 * behaviour.
+	 *
+	 * @param element The element wich will be visited.
+	 * @param depth The distance to a root element of the graph traversion.
+	 * @param minDepth If this parameter is smaller than the depth parameter then
+	 * an element is reachable from the current element from which the current element is
+	 * reachable, which means there is a reachablitiy cycle within the graph.
+	 */
+	public void endVisit(Object element, int depth, int minDepth) {
+	}
+
+
+	/** This hook method will be invoked to provide an iterator of off elements
+	 * which are directly reachable from the current element.
+	 *
+	 * Subclasses must overwrite this method.
+	 *
+	 * @param element The current element.
+	 * @return An iterator of directly reachable elements.
+	 */
+	public abstract Iterator getElementLinks(Object element);
+
+
+	/** Returns true if this element was already visited. */
+	public boolean isVisited(Object element) {
+		return myVisitedElements.containsKey(element);
+	}
+
+	/** */
+	private void setVisited(Object element, int depth) {
+		myVisitedElements.put(element, new Integer(depth));
+	}
+
+
+	/** Returns the path depth number if the element is in the current path or -1 if it isn't.*/
+	public int getVisitedDepth(Object element) {
+		if (myVisitedElements.containsKey(element)) {
+			return ((Integer) myVisitedElements.get(element)).intValue();
+		}
+
+		return -1;
+	}
+
+}

+ 2 - 0
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/validation/SCTResourceValidator.java

@@ -13,7 +13,9 @@ package org.yakindu.sct.model.sgraph.validation;
 import java.util.Collection;
 import java.util.Map;
 
+import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.Resource.Diagnostic;
+import org.eclipse.xtext.resource.XtextResource;
 import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
 import org.eclipse.xtext.validation.Check;
 import org.eclipse.xtext.validation.CheckType;

+ 58 - 22
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/validation/SGraphJavaValidator.java

@@ -10,11 +10,15 @@
  */
 package org.yakindu.sct.model.sgraph.validation;
 
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
 
-import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.xtext.EcoreUtil2;
 import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
 import org.eclipse.xtext.validation.Check;
 import org.eclipse.xtext.validation.CheckType;
@@ -31,6 +35,7 @@ import org.yakindu.sct.model.sgraph.Vertex;
 
 import com.google.inject.Inject;
 
+
 /**
  * This validator is intended to be used by a compositeValidator (See
  * {@link org.eclipse.xtext.validation.ComposedChecks}) of another language
@@ -47,7 +52,7 @@ import com.google.inject.Inject;
 public class SGraphJavaValidator extends AbstractDeclarativeValidator {
 
 	public static final String ISSUE_STATE_WITHOUT_NAME = "A state must have a name.";
-	public static final String ISSUE_NODE_NOT_REACHABLE = "Node is not reachable due to missing incoming transition.";
+	public static final String ISSUE_NODE_NOT_REACHABLE = "Node is not reachable.";
 	public static final String ISSUE_FINAL_STATE_OUTGOING_TRANSITION = "A final state should have no outgoing transition.";
 	public static final String ISSUE_STATE_WITHOUT_OUTGOING_TRANSITION = "A state should have at least one outgoing transition.";
 	public static final String ISSUE_INITIAL_ENTRY_WITH_IN_TRANS = "Initial entry should have no incoming transition.";
@@ -66,36 +71,66 @@ public class SGraphJavaValidator extends AbstractDeclarativeValidator {
 		// TODO Auto-generated constructor stub
 	}
 	
+	
 	@Check(CheckType.FAST)
-	public void vertexNotReachable(Vertex vertex) {
+	public void vertexNotReachable(final Vertex vertex) {
 		if (!(vertex instanceof Entry)) {
-			int incomingTransitions = 0;
-			incomingTransitions += vertex.getIncomingTransitions().size();
-
-			// in context of a state it is sufficient if a sub state is targeted
-			// by
-			// an external transition
-			if (vertex instanceof org.yakindu.sct.model.sgraph.State) {
-				TreeIterator<EObject> eAllContents = vertex.eAllContents();
-				while (eAllContents.hasNext()) {
-					EObject next = eAllContents.next();
-					if (next instanceof org.yakindu.sct.model.sgraph.State) {
-						for (Transition transition : ((org.yakindu.sct.model.sgraph.State) next)
-								.getIncomingTransitions()) {
-							if (!EcoreUtil.isAncestor(vertex,
-									transition.getSource())) {
-								incomingTransitions++;
-							}
+			
+			final Set<Object> stateScopeSet = new HashSet<Object>();
+			for ( EObject obj : EcoreUtil2.eAllContents(vertex) ) {
+				stateScopeSet.add(obj);
+			}
+			stateScopeSet.add(vertex);
+			
+			final List<Object> externalPredecessors = new ArrayList<Object>();
+
+			DFS dfs = new DFS() {	
+
+				@Override
+				public Iterator<Object> getElementLinks(Object element) {
+					List<Object> elements = new ArrayList<Object>();
+					
+					if (element instanceof org.yakindu.sct.model.sgraph.State ) {
+						if ( ! stateScopeSet.contains(element) ) {
+							externalPredecessors.add(element);
+						} else {
+							elements.addAll(((org.yakindu.sct.model.sgraph.State)element).getRegions() );
+							elements.addAll(((org.yakindu.sct.model.sgraph.State)element).getIncomingTransitions() );							
+						}
+						
+					} else if (element instanceof Region) {
+						elements.addAll( ((Region) element).getVertices() );
+					} else if (element instanceof Entry) {
+						if ( ! stateScopeSet.contains(element) ) {
+							externalPredecessors.add(element);
+						} else {
+							elements.addAll(((Entry)element).getIncomingTransitions() );									
 						}
+
+					} else if (element instanceof Vertex) {
+						elements.addAll( ((Vertex) element).getIncomingTransitions() );
+
+					} else if (element instanceof Transition) {
+						elements.add( ((Transition) element).getSource() );
+						
 					}
+				
+					return elements.iterator();
 				}
-			}
+			};
+			
+			dfs.perform(vertex);
 
-			if (incomingTransitions == 0) {
+			if (externalPredecessors.size() == 0) {
 				error(ISSUE_NODE_NOT_REACHABLE, vertex, null, -1);
 			}
 		}
 	}
+	
+	
+	/**
+	 * Calculates all predecessor states 
+	 */
 
 	@Check(CheckType.FAST)
 	public void incomingTransitionCount(Vertex vertex) {
@@ -156,6 +191,7 @@ public class SGraphJavaValidator extends AbstractDeclarativeValidator {
 		}
 	}
 
+
 	@Check(CheckType.FAST)
 	public void orthogonalStates(Synchronization fork) {
 		//check target states

+ 2 - 0
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/validation/STextJavaValidator.java

@@ -39,6 +39,7 @@ import org.yakindu.base.types.ITypeSystem.InferenceResult;
 import org.yakindu.base.types.Operation;
 import org.yakindu.base.types.Parameter;
 import org.yakindu.base.types.Property;
+import org.yakindu.base.types.Type;
 import org.yakindu.sct.model.sgraph.Choice;
 import org.yakindu.sct.model.sgraph.Entry;
 import org.yakindu.sct.model.sgraph.Exit;
@@ -628,6 +629,7 @@ public class STextJavaValidator extends AbstractSTextJavaValidator {
 		}
 	}
 
+
 	@Check
 	public void checkChoiceWithoutDefaultTransition(final Choice choice) {
 		boolean found = false;

+ 0 - 1
plugins/org.yakindu.sct.simulation.ui/.settings/org.eclipse.jdt.core.prefs

@@ -1,4 +1,3 @@
-#Tue Jun 07 06:42:27 CEST 2011
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5

+ 157 - 9
test-plugins/org.yakindu.sct.model.sgraph.test/src/org/yakindu/sct/model/sgraph/test/SGraphJavaValidationTest.java

@@ -165,6 +165,142 @@ public class SGraphJavaValidationTest {
 		assertError(diagnostics, ISSUE_NODE_NOT_REACHABLE);
 	}
 
+	
+	/**
+	 * A transition to a sub entry is considered implies reachability.
+	 */
+	@Test
+	public void vertexNotReachable_AcceptThroughSubstate() {
+		prepareStateTest();
+
+		State stateA = factory.createState();
+		
+		Region subRegion = factory.createRegion();
+		state.getRegions().add(subRegion);
+		
+		State stateC = factory.createState();
+		subRegion.getVertices().add(stateC);
+				
+		Transition t1 = factory.createTransition();
+		t1.setSource(stateA);
+		t1.setTarget(stateC);
+				
+		validate(state);
+		assertNoIssues(diagnostics);
+	}
+
+	
+	
+	/**
+	 * A transition to a sub entry is considered implies reachability.
+	 */
+	@Test
+	public void vertexNotReachable_AcceptThroughSubentry() {
+		prepareStateTest();
+
+		State stateA = factory.createState();
+		
+		Region subRegion = factory.createRegion();
+		state.getRegions().add(subRegion);
+		
+		State stateC = factory.createState();
+		subRegion.getVertices().add(stateC);
+		
+		Entry entry = factory.createEntry();
+		subRegion.getVertices().add(entry);
+		
+		Transition t1 = factory.createTransition();
+		t1.setSource(stateA);
+		t1.setTarget(entry);
+		
+		Transition t2 = factory.createTransition();
+		t2.setSource(entry);
+		t2.setTarget(stateC);
+				
+		validate(state);
+		assertNoIssues(diagnostics);
+	}
+
+	
+	/**
+	 * A transition to a sub choice is considered implies reachability.
+	 */
+	@Test
+	public void vertexNotReachable_AcceptThroughSubchoice() {
+		prepareStateTest();
+
+		State stateA = factory.createState();
+		
+		Region subRegion = factory.createRegion();
+		state.getRegions().add(subRegion);
+		
+		State stateC = factory.createState();
+		subRegion.getVertices().add(stateC);
+		
+		Choice choice = factory.createChoice();
+		subRegion.getVertices().add(choice);
+		
+		Transition t1 = factory.createTransition();
+		t1.setSource(stateA);
+		t1.setTarget(choice);
+		
+		Transition t2 = factory.createTransition();
+		t2.setSource(choice);
+		t2.setTarget(stateC);
+				
+		validate(state);
+		assertNoIssues(diagnostics);
+	}
+
+	
+	/**
+	 * If an incoming transitions is part of an external transition path that 
+	 * only consists of pseudo states and only has state predecessors within 
+	 * the state then the state is not reachable and the validation must fail 
+	 * with an error.
+	 */
+	@Test
+	public void vertexNotReachable_FailOnExternalPseudoPath() {
+		prepareStateTest();
+
+		Choice choice = factory.createChoice();
+		region.getVertices().add(choice);
+		
+		createTransition(state, choice);
+		createTransition(choice, state);
+				
+		validate(state);
+		assertIssue(diagnostics, ISSUE_NODE_NOT_REACHABLE);
+	}
+
+	
+	/**
+	 * If an incoming transitions is part of an external transition path to an internal state 
+	 * that only consists of pseudo states and only has state predecessors within 
+	 * the state then the state is not reachable and the validation must fail 
+	 * with an error.
+	 */
+	@Test
+	public void vertexNotReachable_FailOnExternalPseudoPathToSubstate() {
+		prepareStateTest();
+
+		Region subRegion = factory.createRegion();
+		state.getRegions().add(subRegion);
+
+		State stateA = factory.createState();
+		subRegion.getVertices().add(stateA);
+		
+		Choice choice = factory.createChoice();
+		region.getVertices().add(choice);
+		
+		createTransition(stateA, choice);
+		createTransition(choice, stateA);
+				
+		validate(state);
+		assertIssue(diagnostics, ISSUE_NODE_NOT_REACHABLE);
+	}
+
+	
 	/**
 	 * A regular state may be a dead end.
 	 */
@@ -186,8 +322,9 @@ public class SGraphJavaValidationTest {
 		region.getVertices().add(entry);
 		createTransition(entry, state);
 
-		assertTrue(validator.validate(state, diagnostics,
-				new HashMap<Object, Object>()));
+		validate(state);
+//		assertTrue(validator.validate(state, diagnostics,
+//				new HashMap<Object, Object>()));
 		assertIssueCount(diagnostics, 0);
 	}
 
@@ -297,8 +434,7 @@ public class SGraphJavaValidationTest {
 		FinalState finalState = factory.createFinalState();
 		region.getVertices().add(finalState);
 
-		assertFalse(validator.validate(finalState, diagnostics,
-				new HashMap<Object, Object>()));
+		assertFalse(validate(finalState));
 
 		assertIssueCount(diagnostics, 1);
 		assertError(diagnostics, ISSUE_NODE_NOT_REACHABLE);
@@ -318,8 +454,7 @@ public class SGraphJavaValidationTest {
 		region.getVertices().add(state);
 		createTransition(state, finalState);
 
-		assertTrue(validator.validate(finalState, diagnostics,
-				new HashMap<Object, Object>()));
+		assertTrue(validate(finalState));
 		assertIssueCount(diagnostics, 0);
 	}
 
@@ -339,8 +474,7 @@ public class SGraphJavaValidationTest {
 		createTransition(state, finalState);
 		createTransition(finalState, state);
 
-		validator.validate(finalState, diagnostics,
-				new HashMap<Object, Object>());
+		validate(finalState);
 
 		assertIssueCount(diagnostics, 1);
 		assertWarning(diagnostics, ISSUE_FINAL_STATE_OUTGOING_TRANSITION);
@@ -458,7 +592,7 @@ public class SGraphJavaValidationTest {
 	}
 
 	/**
-	 * checks tht each @Check method of {@link STextJavaValidator} has a @Test
+	 * checks that each @Check method of {@link STextJavaValidator} has a @Test
 	 * method in this class with the same name
 	 */
 	// TODO: Create abstract test class for SGraphJavaValidatorTest and
@@ -481,6 +615,8 @@ public class SGraphJavaValidationTest {
 		}
 	}
 
+	
+	
 	protected Transition createTransition(Vertex source, Vertex target) {
 		Transition trans = factory.createTransition();
 		trans.setSource(source);
@@ -516,6 +652,11 @@ public class SGraphJavaValidationTest {
 				issueByName(diag, message));
 	}
 
+
+	protected void assertNoIssues(BasicDiagnostic diag) {
+		assertIssueCount(diag, 0);
+	}
+
 	protected void assertIssueCount(BasicDiagnostic diag, int count) {
 		int c = diagnostics.getChildren().size();
 		assertEquals("expected " + count + " issue(s) but were " + c + " ["
@@ -530,5 +671,12 @@ public class SGraphJavaValidationTest {
 
 		return null;
 	}
+	
+
+	protected boolean validate(EObject obj) {
+		return validator.validate(obj, diagnostics,
+				new HashMap<Object, Object>());
+	}
+
 
 }

+ 2 - 0
test-plugins/org.yakindu.sct.model.stext.test/src/org/yakindu/sct/model/stext/test/TypeInferrerTest.java

@@ -297,6 +297,7 @@ public class TypeInferrerTest extends AbstractSTextTest {
 		assertTrue(isBooleanType(inferType("boolEvent && boolEvent")));
 	}	
 	
+	
 	@Test
 	public void testLogicalAndExpressionFailure()
 	{
@@ -409,6 +410,7 @@ public class TypeInferrerTest extends AbstractSTextTest {
 		assertTrue(isBooleanType(inferType("true != boolVar")));
 		assertTrue(isBooleanType(inferType("true != boolEvent")));
 		assertTrue(isBooleanType(inferType("true != valueof(boolEvent)")));
+
 	}
 
 	@Test