Bläddra i källkod

- changed check of unused variables, he now only applies when a
statechart model is definied
- changed two statechart models, to remove warnings
#107

bohl 10 år sedan
förälder
incheckning
240bb8e198

+ 53 - 51
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/validation/STextJavaValidator.java

@@ -263,57 +263,59 @@ public class STextJavaValidator extends AbstractSTextJavaValidator implements ST
 		}
 	}
 
-//	@Check(CheckType.NORMAL)
-//	public void checkUnusedVariablesInInternalScope(InternalScope internalScope) {
-//		EList<Declaration> internalScopeDeclarations = internalScope.getDeclarations();
-//
-//		EObject rootContainer = EcoreUtil.getRootContainer(internalScope);
-//		Resource rootRes = getResource(rootContainer);
-//		EList<EObject> contents = rootRes.getContents();
-//		Statechart sct = null;
-//		for (EObject eObject : contents) {
-//			if (eObject instanceof Statechart) {
-//				sct = (Statechart) eObject;
-//				break;
-//			}
-//		}
-//		List<ElementReferenceExpression> allUsedElementReferences = EcoreUtil2.getAllContentsOfType(sct,
-//				ElementReferenceExpression.class);
-//
-//		for (Declaration internalDeclaration : internalScopeDeclarations) {
-//			boolean internalDeclarationUsed = false;
-//			for (ElementReferenceExpression elementReference : allUsedElementReferences) {
-//				if (elementReference.getReference().eContainer() instanceof InternalScope) {
-//					if (elementReference.getReference() instanceof VariableDefinition) {
-//						if (((VariableDefinition) elementReference.getReference()).getName().equals(
-//								internalDeclaration.getName())
-//								&& internalDeclaration instanceof VariableDefinition) {
-//							internalDeclarationUsed = true;
-//							break;
-//						}
-//					} else if (elementReference.getReference() instanceof EventDefinition) {
-//						if (((EventDefinition) elementReference.getReference()).getName().equals(
-//								internalDeclaration.getName())
-//								&& internalDeclaration instanceof EventDefinition) {
-//							internalDeclarationUsed = true;
-//							break;
-//						}
-//					} else if (elementReference.getReference() instanceof OperationDefinition) {
-//						if (((OperationDefinition) elementReference.getReference()).getName().equals(
-//								internalDeclaration.getName())
-//								&& internalDeclaration instanceof OperationDefinition) {
-//							internalDeclarationUsed = true;
-//							break;
-//						}
-//					}
-//				}
-//			}
-//			if (!internalDeclarationUsed) {
-//				warning(INTERNAL_DECLARATION_UNUSED, internalDeclaration, null, -1);
-//			}
-//		}
-//
-//	}
+	@Check(CheckType.NORMAL)
+	public void checkUnusedVariablesInInternalScope(InternalScope internalScope) {
+		EList<Declaration> internalScopeDeclarations = internalScope.getDeclarations();
+
+		EObject rootContainer = EcoreUtil.getRootContainer(internalScope);
+		Resource rootRes = getResource(rootContainer);
+		EList<EObject> contents = rootRes.getContents();
+		Statechart sct = null;
+		for (EObject eObject : contents) {
+			if (eObject instanceof Statechart) {
+				sct = (Statechart) eObject;
+				break;
+			}
+		}
+		List<ElementReferenceExpression> allUsedElementReferences = EcoreUtil2.getAllContentsOfType(sct,
+				ElementReferenceExpression.class);
+		
+		if (sct.getSpecification() != null) {
+			for (Declaration internalDeclaration : internalScopeDeclarations) {
+				boolean internalDeclarationUsed = false;
+				for (ElementReferenceExpression elementReference : allUsedElementReferences) {
+					if (elementReference.getReference().eContainer() instanceof InternalScope) {
+						if (elementReference.getReference() instanceof VariableDefinition) {
+							if (((VariableDefinition) elementReference.getReference()).getName().equals(
+									internalDeclaration.getName())
+									&& internalDeclaration instanceof VariableDefinition) {
+								internalDeclarationUsed = true;
+								break;
+							}
+						} else if (elementReference.getReference() instanceof EventDefinition) {
+							if (((EventDefinition) elementReference.getReference()).getName().equals(
+									internalDeclaration.getName())
+									&& internalDeclaration instanceof EventDefinition) {
+								internalDeclarationUsed = true;
+								break;
+							}
+						} else if (elementReference.getReference() instanceof OperationDefinition) {
+							if (((OperationDefinition) elementReference.getReference()).getName().equals(
+									internalDeclaration.getName())
+									&& internalDeclaration instanceof OperationDefinition) {
+								internalDeclarationUsed = true;
+								break;
+							}
+						}
+					}
+				}
+				if (!internalDeclarationUsed) {
+					warning(INTERNAL_DECLARATION_UNUSED, internalDeclaration, null, -1);
+				}
+			}
+		}
+
+	}
 
 	@Check(CheckType.FAST)
 	public void checkValueReferenedBeforeDefined(Scope scope) {

+ 10 - 10
test-plugins/org.yakindu.sct.model.stext.test/src/org/yakindu/sct/model/stext/test/STextJavaValidatorTest.java

@@ -330,7 +330,7 @@ public class STextJavaValidatorTest extends AbstractSTextTest implements STextVa
 		// No in declarations in internal scope
 		model = super.parseExpression("internal: in event Event1", null, InternalScope.class.getSimpleName());
 		result = tester.validate(model);
-		result.assertDiagnosticsCount(1);
+		result.assertDiagnosticsCount(1);		
 		result.assertErrorContains(STextJavaValidator.IN_OUT_DECLARATIONS);
 		// No out declarations in internal scope
 		model = super.parseExpression("internal: out event Event1", null, InternalScope.class.getSimpleName());
@@ -576,7 +576,7 @@ public class STextJavaValidatorTest extends AbstractSTextTest implements STextVa
 		Statechart statechart = AbstractTestModelsUtil.loadStatechart(VALIDATION_TESTMODEL_DIR
 				+ "ConstWithVariable.sct");
 		Diagnostic diagnostics = Diagnostician.INSTANCE.validate(statechart);
-		assertIssueCount(diagnostics, 2);
+		assertIssueCount(diagnostics, 2); //
 		assertError(diagnostics, REFERENCE_TO_VARIABLE);
 	}
 
@@ -589,14 +589,14 @@ public class STextJavaValidatorTest extends AbstractSTextTest implements STextVa
 		assertError(diagnostics, REFERENCE_CONSTANT_BEFORE_DEFINED);
 	}
 		
-//	@Test
-//	public void checkUnusedVariablesInInternalScope(){
-//		Statechart statechart = AbstractTestModelsUtil.loadStatechart(VALIDATION_TESTMODEL_DIR
-//				+ "UnusedInternalDeclarations.sct");
-//		Diagnostic diagnostics = Diagnostician.INSTANCE.validate(statechart);
-//		assertIssueCount(diagnostics, 3);
-//		assertWarning(diagnostics, INTERNAL_DECLARATION_UNUSED);
-//	}
+	@Test
+	public void checkUnusedVariablesInInternalScope(){
+		Statechart statechart = AbstractTestModelsUtil.loadStatechart(VALIDATION_TESTMODEL_DIR
+				+ "UnusedInternalDeclarations.sct");
+		Diagnostic diagnostics = Diagnostician.INSTANCE.validate(statechart);
+		assertIssueCount(diagnostics, 3);
+		assertWarning(diagnostics, INTERNAL_DECLARATION_UNUSED);
+	}
 	
 	/**
 	 * Show warning when transition has no guard

+ 101 - 72
test-plugins/org.yakindu.sct.test.models/testmodels/validation/ConstWithVariable.sct

@@ -1,72 +1,101 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
-  <sgraph:Statechart xmi:id="_5VSggG_lEeSjUp1iSfPc3g" specification="internal:&#xD;&#xA;var x : integer = 10&#xD;&#xA;const y :integer = x * 10&#xD;&#xA;&#xD;&#xA;interface ABC:&#xD;&#xA;var x : string = &quot;&quot;&#xD;&#xA;const y : string = ABC.x" name="ValueWithVariable">
-    <regions xmi:id="_5VU8wW_lEeSjUp1iSfPc3g" name="main region">
-      <vertices xsi:type="sgraph:Entry" xmi:id="_5VZOM2_lEeSjUp1iSfPc3g">
-        <outgoingTransitions xmi:id="_5VcRgW_lEeSjUp1iSfPc3g" target="_5VacVG_lEeSjUp1iSfPc3g"/>
-      </vertices>
-      <vertices xsi:type="sgraph:State" xmi:id="_5VacVG_lEeSjUp1iSfPc3g" name="A" incomingTransitions="_5VcRgW_lEeSjUp1iSfPc3g"/>
-    </regions>
-  </sgraph:Statechart>
-  <notation:Diagram xmi:id="_5VUVsG_lEeSjUp1iSfPc3g" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_5VSggG_lEeSjUp1iSfPc3g" measurementUnit="Pixel">
-    <children xmi:id="_5VWx8G_lEeSjUp1iSfPc3g" type="Region" element="_5VU8wW_lEeSjUp1iSfPc3g">
-      <children xsi:type="notation:DecorationNode" xmi:id="_5VYnIG_lEeSjUp1iSfPc3g" type="RegionName">
-        <styles xsi:type="notation:ShapeStyle" xmi:id="_5VYnIW_lEeSjUp1iSfPc3g"/>
-        <layoutConstraint xsi:type="notation:Location" xmi:id="_5VYnIm_lEeSjUp1iSfPc3g"/>
-      </children>
-      <children xsi:type="notation:Shape" xmi:id="_5VZOMG_lEeSjUp1iSfPc3g" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
-        <children xmi:id="_5VZ1QG_lEeSjUp1iSfPc3g" type="Entry" element="_5VZOM2_lEeSjUp1iSfPc3g">
-          <children xmi:id="_5VZ1Q2_lEeSjUp1iSfPc3g" type="BorderItemLabelContainer">
-            <children xsi:type="notation:DecorationNode" xmi:id="_5VacUG_lEeSjUp1iSfPc3g" type="BorderItemLabel">
-              <styles xsi:type="notation:ShapeStyle" xmi:id="_5VacUW_lEeSjUp1iSfPc3g"/>
-              <layoutConstraint xsi:type="notation:Location" xmi:id="_5VacUm_lEeSjUp1iSfPc3g"/>
-            </children>
-            <styles xsi:type="notation:ShapeStyle" xmi:id="_5VZ1RG_lEeSjUp1iSfPc3g" fontName="Verdana" lineColor="4210752"/>
-            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VZ1RW_lEeSjUp1iSfPc3g"/>
-          </children>
-          <styles xsi:type="notation:ShapeStyle" xmi:id="_5VZ1QW_lEeSjUp1iSfPc3g" fontName="Verdana" lineColor="4210752"/>
-          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VacU2_lEeSjUp1iSfPc3g" x="70" y="20"/>
-        </children>
-        <children xmi:id="_5VbDYW_lEeSjUp1iSfPc3g" type="State" element="_5VacVG_lEeSjUp1iSfPc3g">
-          <children xsi:type="notation:DecorationNode" xmi:id="_5VbDZW_lEeSjUp1iSfPc3g" type="StateName">
-            <styles xsi:type="notation:ShapeStyle" xmi:id="_5VbDZm_lEeSjUp1iSfPc3g"/>
-            <layoutConstraint xsi:type="notation:Location" xmi:id="_5VbDZ2_lEeSjUp1iSfPc3g"/>
-          </children>
-          <children xsi:type="notation:Compartment" xmi:id="_5VbqcG_lEeSjUp1iSfPc3g" type="StateTextCompartment">
-            <children xsi:type="notation:Shape" xmi:id="_5VbqcW_lEeSjUp1iSfPc3g" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
-              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5Vbqcm_lEeSjUp1iSfPc3g"/>
-            </children>
-          </children>
-          <children xsi:type="notation:Compartment" xmi:id="_5Vbqc2_lEeSjUp1iSfPc3g" type="StateFigureCompartment"/>
-          <styles xsi:type="notation:ShapeStyle" xmi:id="_5VbDYm_lEeSjUp1iSfPc3g" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
-          <styles xsi:type="notation:FontStyle" xmi:id="_5VbDY2_lEeSjUp1iSfPc3g"/>
-          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_5VbqdG_lEeSjUp1iSfPc3g" name="isHorizontal" booleanValue="true"/>
-          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VcRgG_lEeSjUp1iSfPc3g" x="40" y="80"/>
-        </children>
-        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VZOMW_lEeSjUp1iSfPc3g"/>
-      </children>
-      <styles xsi:type="notation:ShapeStyle" xmi:id="_5VWx8W_lEeSjUp1iSfPc3g" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
-      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VZOMm_lEeSjUp1iSfPc3g" x="220" y="10" width="400" height="400"/>
-    </children>
-    <children xsi:type="notation:Shape" xmi:id="_5VdfpG_lEeSjUp1iSfPc3g" type="StatechartText" fontName="Verdana" lineColor="4210752">
-      <children xsi:type="notation:DecorationNode" xmi:id="_5VeGsG_lEeSjUp1iSfPc3g" type="StatechartName">
-        <styles xsi:type="notation:ShapeStyle" xmi:id="_5VeGsW_lEeSjUp1iSfPc3g"/>
-        <layoutConstraint xsi:type="notation:Location" xmi:id="_5VeGsm_lEeSjUp1iSfPc3g"/>
-      </children>
-      <children xsi:type="notation:Shape" xmi:id="_5VeGs2_lEeSjUp1iSfPc3g" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
-        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VeGtG_lEeSjUp1iSfPc3g"/>
-      </children>
-      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VetwG_lEeSjUp1iSfPc3g" x="10" y="10" width="200" height="400"/>
-    </children>
-    <styles xsi:type="notation:DiagramStyle" xmi:id="_5VU8wG_lEeSjUp1iSfPc3g"/>
-    <edges xmi:id="_5Vc4kG_lEeSjUp1iSfPc3g" type="Transition" element="_5VcRgW_lEeSjUp1iSfPc3g" source="_5VZ1QG_lEeSjUp1iSfPc3g" target="_5VbDYW_lEeSjUp1iSfPc3g">
-      <children xsi:type="notation:DecorationNode" xmi:id="_5VdfoW_lEeSjUp1iSfPc3g" type="TransitionExpression">
-        <styles xsi:type="notation:ShapeStyle" xmi:id="_5Vdfom_lEeSjUp1iSfPc3g"/>
-        <layoutConstraint xsi:type="notation:Location" xmi:id="_5Vdfo2_lEeSjUp1iSfPc3g" y="10"/>
-      </children>
-      <styles xsi:type="notation:ConnectorStyle" xmi:id="_5Vc4kW_lEeSjUp1iSfPc3g" lineColor="4210752"/>
-      <styles xsi:type="notation:FontStyle" xmi:id="_5VdfoG_lEeSjUp1iSfPc3g" fontName="Verdana"/>
-      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_5Vc4km_lEeSjUp1iSfPc3g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-    </edges>
-  </notation:Diagram>
-</xmi:XMI>
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
+  <sgraph:Statechart xmi:id="_5VSggG_lEeSjUp1iSfPc3g" specification="internal:&#xD;&#xA;var x : integer = 10&#xD;&#xA;const y :integer = x * 10&#xD;&#xA;&#xD;&#xA;interface ABC:&#xD;&#xA;var x : string = &quot;&quot;&#xD;&#xA;const y : string = ABC.x" name="ValueWithVariable">
+    <regions xmi:id="_5VU8wW_lEeSjUp1iSfPc3g" name="main region">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_5VZOM2_lEeSjUp1iSfPc3g">
+        <outgoingTransitions xmi:id="_5VcRgW_lEeSjUp1iSfPc3g" target="_5VacVG_lEeSjUp1iSfPc3g"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_5VacVG_lEeSjUp1iSfPc3g" specification="" name="A" incomingTransitions="_5VcRgW_lEeSjUp1iSfPc3g">
+        <outgoingTransitions xmi:id="_H0iT4EAREeWvWfsZWwe8Fw" specification="always [y == 0]" target="_HhFMYEAREeWvWfsZWwe8Fw"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_HhFMYEAREeWvWfsZWwe8Fw" name="B" incomingTransitions="_H0iT4EAREeWvWfsZWwe8Fw"/>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_5VUVsG_lEeSjUp1iSfPc3g" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_5VSggG_lEeSjUp1iSfPc3g" measurementUnit="Pixel">
+    <children xmi:id="_5VWx8G_lEeSjUp1iSfPc3g" type="Region" element="_5VU8wW_lEeSjUp1iSfPc3g">
+      <children xsi:type="notation:DecorationNode" xmi:id="_5VYnIG_lEeSjUp1iSfPc3g" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_5VYnIW_lEeSjUp1iSfPc3g"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_5VYnIm_lEeSjUp1iSfPc3g"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_5VZOMG_lEeSjUp1iSfPc3g" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_5VZ1QG_lEeSjUp1iSfPc3g" type="Entry" element="_5VZOM2_lEeSjUp1iSfPc3g">
+          <children xmi:id="_5VZ1Q2_lEeSjUp1iSfPc3g" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_5VacUG_lEeSjUp1iSfPc3g" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_5VacUW_lEeSjUp1iSfPc3g"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_5VacUm_lEeSjUp1iSfPc3g"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_5VZ1RG_lEeSjUp1iSfPc3g" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VZ1RW_lEeSjUp1iSfPc3g"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_5VZ1QW_lEeSjUp1iSfPc3g" fontName="Verdana" lineColor="4210752"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VacU2_lEeSjUp1iSfPc3g" x="70" y="20"/>
+        </children>
+        <children xmi:id="_5VbDYW_lEeSjUp1iSfPc3g" type="State" element="_5VacVG_lEeSjUp1iSfPc3g">
+          <children xsi:type="notation:DecorationNode" xmi:id="_5VbDZW_lEeSjUp1iSfPc3g" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_5VbDZm_lEeSjUp1iSfPc3g"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_5VbDZ2_lEeSjUp1iSfPc3g"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_5VbqcG_lEeSjUp1iSfPc3g" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_5VbqcW_lEeSjUp1iSfPc3g" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5Vbqcm_lEeSjUp1iSfPc3g"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_5Vbqc2_lEeSjUp1iSfPc3g" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_5VbDYm_lEeSjUp1iSfPc3g" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_5VbDY2_lEeSjUp1iSfPc3g"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_5VbqdG_lEeSjUp1iSfPc3g" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VcRgG_lEeSjUp1iSfPc3g" x="40" y="80" width="160"/>
+        </children>
+        <children xmi:id="_HhNIMEAREeWvWfsZWwe8Fw" type="State" element="_HhFMYEAREeWvWfsZWwe8Fw">
+          <children xsi:type="notation:DecorationNode" xmi:id="_HhQLgEAREeWvWfsZWwe8Fw" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_HhQLgUAREeWvWfsZWwe8Fw"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_HhQLgkAREeWvWfsZWwe8Fw"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_HhQykEAREeWvWfsZWwe8Fw" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_HhQykUAREeWvWfsZWwe8Fw" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_HhQykkAREeWvWfsZWwe8Fw"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_HhRZoEAREeWvWfsZWwe8Fw" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_HhNIMUAREeWvWfsZWwe8Fw" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_HhNIMkAREeWvWfsZWwe8Fw"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_HhSAsEAREeWvWfsZWwe8Fw" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_HhNIM0AREeWvWfsZWwe8Fw" x="40" y="192" width="160"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VZOMW_lEeSjUp1iSfPc3g"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_5VWx8W_lEeSjUp1iSfPc3g" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VZOMm_lEeSjUp1iSfPc3g" x="220" y="10" width="400" height="400"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_5VdfpG_lEeSjUp1iSfPc3g" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_5VeGsG_lEeSjUp1iSfPc3g" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_5VeGsW_lEeSjUp1iSfPc3g"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_5VeGsm_lEeSjUp1iSfPc3g"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_5VeGs2_lEeSjUp1iSfPc3g" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VeGtG_lEeSjUp1iSfPc3g"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VetwG_lEeSjUp1iSfPc3g" x="10" y="10" width="200" height="400"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_5VU8wG_lEeSjUp1iSfPc3g"/>
+    <edges xmi:id="_5Vc4kG_lEeSjUp1iSfPc3g" type="Transition" element="_5VcRgW_lEeSjUp1iSfPc3g" source="_5VZ1QG_lEeSjUp1iSfPc3g" target="_5VbDYW_lEeSjUp1iSfPc3g">
+      <children xsi:type="notation:DecorationNode" xmi:id="_5VdfoW_lEeSjUp1iSfPc3g" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_5Vdfom_lEeSjUp1iSfPc3g"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_5Vdfo2_lEeSjUp1iSfPc3g" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_5Vc4kW_lEeSjUp1iSfPc3g" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_5VdfoG_lEeSjUp1iSfPc3g" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_5Vc4km_lEeSjUp1iSfPc3g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+    <edges xmi:id="_H0oagEAREeWvWfsZWwe8Fw" type="Transition" element="_H0iT4EAREeWvWfsZWwe8Fw" source="_5VbDYW_lEeSjUp1iSfPc3g" target="_HhNIMEAREeWvWfsZWwe8Fw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_H0pooUAREeWvWfsZWwe8Fw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_H0pookAREeWvWfsZWwe8Fw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_H0poo0AREeWvWfsZWwe8Fw" y="-58"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_H0oagUAREeWvWfsZWwe8Fw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_H0pooEAREeWvWfsZWwe8Fw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_H0oagkAREeWvWfsZWwe8Fw" points="[-5, 24, 18, -76]$[-20, 96, 3, -4]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_H1t_oEAREeWvWfsZWwe8Fw" id="(0.5352112676056338,0.09433962264150944)"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>

+ 100 - 72
test-plugins/org.yakindu.sct.test.models/testmodels/validation/ReferenceBeforeDefined.sct

@@ -1,72 +1,100 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
-  <sgraph:Statechart xmi:id="_5VSggG_lEeSjUp1iSfPc3g" specification="internal:&#xD;&#xA;const x : integer = y&#xD;&#xA;const y :integer =10&#xD;&#xA;&#xD;&#xA;interface ABC:&#xD;&#xA;const x : string = ABC.y&#xD;&#xA;const y : string = ABC.x" name="ReferenceBeforeDefined">
-    <regions xmi:id="_5VU8wW_lEeSjUp1iSfPc3g" name="main region">
-      <vertices xsi:type="sgraph:Entry" xmi:id="_5VZOM2_lEeSjUp1iSfPc3g">
-        <outgoingTransitions xmi:id="_5VcRgW_lEeSjUp1iSfPc3g" target="_5VacVG_lEeSjUp1iSfPc3g"/>
-      </vertices>
-      <vertices xsi:type="sgraph:State" xmi:id="_5VacVG_lEeSjUp1iSfPc3g" name="A" incomingTransitions="_5VcRgW_lEeSjUp1iSfPc3g"/>
-    </regions>
-  </sgraph:Statechart>
-  <notation:Diagram xmi:id="_5VUVsG_lEeSjUp1iSfPc3g" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_5VSggG_lEeSjUp1iSfPc3g" measurementUnit="Pixel">
-    <children xmi:id="_5VWx8G_lEeSjUp1iSfPc3g" type="Region" element="_5VU8wW_lEeSjUp1iSfPc3g">
-      <children xsi:type="notation:DecorationNode" xmi:id="_5VYnIG_lEeSjUp1iSfPc3g" type="RegionName">
-        <styles xsi:type="notation:ShapeStyle" xmi:id="_5VYnIW_lEeSjUp1iSfPc3g"/>
-        <layoutConstraint xsi:type="notation:Location" xmi:id="_5VYnIm_lEeSjUp1iSfPc3g"/>
-      </children>
-      <children xsi:type="notation:Shape" xmi:id="_5VZOMG_lEeSjUp1iSfPc3g" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
-        <children xmi:id="_5VZ1QG_lEeSjUp1iSfPc3g" type="Entry" element="_5VZOM2_lEeSjUp1iSfPc3g">
-          <children xmi:id="_5VZ1Q2_lEeSjUp1iSfPc3g" type="BorderItemLabelContainer">
-            <children xsi:type="notation:DecorationNode" xmi:id="_5VacUG_lEeSjUp1iSfPc3g" type="BorderItemLabel">
-              <styles xsi:type="notation:ShapeStyle" xmi:id="_5VacUW_lEeSjUp1iSfPc3g"/>
-              <layoutConstraint xsi:type="notation:Location" xmi:id="_5VacUm_lEeSjUp1iSfPc3g"/>
-            </children>
-            <styles xsi:type="notation:ShapeStyle" xmi:id="_5VZ1RG_lEeSjUp1iSfPc3g" fontName="Verdana" lineColor="4210752"/>
-            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VZ1RW_lEeSjUp1iSfPc3g"/>
-          </children>
-          <styles xsi:type="notation:ShapeStyle" xmi:id="_5VZ1QW_lEeSjUp1iSfPc3g" fontName="Verdana" lineColor="4210752"/>
-          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VacU2_lEeSjUp1iSfPc3g" x="70" y="20"/>
-        </children>
-        <children xmi:id="_5VbDYW_lEeSjUp1iSfPc3g" type="State" element="_5VacVG_lEeSjUp1iSfPc3g">
-          <children xsi:type="notation:DecorationNode" xmi:id="_5VbDZW_lEeSjUp1iSfPc3g" type="StateName">
-            <styles xsi:type="notation:ShapeStyle" xmi:id="_5VbDZm_lEeSjUp1iSfPc3g"/>
-            <layoutConstraint xsi:type="notation:Location" xmi:id="_5VbDZ2_lEeSjUp1iSfPc3g"/>
-          </children>
-          <children xsi:type="notation:Compartment" xmi:id="_5VbqcG_lEeSjUp1iSfPc3g" type="StateTextCompartment">
-            <children xsi:type="notation:Shape" xmi:id="_5VbqcW_lEeSjUp1iSfPc3g" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
-              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5Vbqcm_lEeSjUp1iSfPc3g"/>
-            </children>
-          </children>
-          <children xsi:type="notation:Compartment" xmi:id="_5Vbqc2_lEeSjUp1iSfPc3g" type="StateFigureCompartment"/>
-          <styles xsi:type="notation:ShapeStyle" xmi:id="_5VbDYm_lEeSjUp1iSfPc3g" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
-          <styles xsi:type="notation:FontStyle" xmi:id="_5VbDY2_lEeSjUp1iSfPc3g"/>
-          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_5VbqdG_lEeSjUp1iSfPc3g" name="isHorizontal" booleanValue="true"/>
-          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VcRgG_lEeSjUp1iSfPc3g" x="40" y="80"/>
-        </children>
-        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VZOMW_lEeSjUp1iSfPc3g"/>
-      </children>
-      <styles xsi:type="notation:ShapeStyle" xmi:id="_5VWx8W_lEeSjUp1iSfPc3g" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
-      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VZOMm_lEeSjUp1iSfPc3g" x="220" y="10" width="400" height="400"/>
-    </children>
-    <children xsi:type="notation:Shape" xmi:id="_5VdfpG_lEeSjUp1iSfPc3g" type="StatechartText" fontName="Verdana" lineColor="4210752">
-      <children xsi:type="notation:DecorationNode" xmi:id="_5VeGsG_lEeSjUp1iSfPc3g" type="StatechartName">
-        <styles xsi:type="notation:ShapeStyle" xmi:id="_5VeGsW_lEeSjUp1iSfPc3g"/>
-        <layoutConstraint xsi:type="notation:Location" xmi:id="_5VeGsm_lEeSjUp1iSfPc3g"/>
-      </children>
-      <children xsi:type="notation:Shape" xmi:id="_5VeGs2_lEeSjUp1iSfPc3g" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
-        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VeGtG_lEeSjUp1iSfPc3g"/>
-      </children>
-      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VetwG_lEeSjUp1iSfPc3g" x="10" y="10" width="200" height="400"/>
-    </children>
-    <styles xsi:type="notation:DiagramStyle" xmi:id="_5VU8wG_lEeSjUp1iSfPc3g"/>
-    <edges xmi:id="_5Vc4kG_lEeSjUp1iSfPc3g" type="Transition" element="_5VcRgW_lEeSjUp1iSfPc3g" source="_5VZ1QG_lEeSjUp1iSfPc3g" target="_5VbDYW_lEeSjUp1iSfPc3g">
-      <children xsi:type="notation:DecorationNode" xmi:id="_5VdfoW_lEeSjUp1iSfPc3g" type="TransitionExpression">
-        <styles xsi:type="notation:ShapeStyle" xmi:id="_5Vdfom_lEeSjUp1iSfPc3g"/>
-        <layoutConstraint xsi:type="notation:Location" xmi:id="_5Vdfo2_lEeSjUp1iSfPc3g" y="10"/>
-      </children>
-      <styles xsi:type="notation:ConnectorStyle" xmi:id="_5Vc4kW_lEeSjUp1iSfPc3g" lineColor="4210752"/>
-      <styles xsi:type="notation:FontStyle" xmi:id="_5VdfoG_lEeSjUp1iSfPc3g" fontName="Verdana"/>
-      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_5Vc4km_lEeSjUp1iSfPc3g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-    </edges>
-  </notation:Diagram>
-</xmi:XMI>
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:sgraph="http://www.yakindu.org/sct/sgraph/2.0.0">
+  <sgraph:Statechart xmi:id="_5VSggG_lEeSjUp1iSfPc3g" specification="internal:&#xD;&#xA;const x : integer = y&#xD;&#xA;const y :integer =10&#xD;&#xA;&#xD;&#xA;interface ABC:&#xD;&#xA;const x : string = ABC.y&#xD;&#xA;const y : string = ABC.x" name="ReferenceBeforeDefined">
+    <regions xmi:id="_5VU8wW_lEeSjUp1iSfPc3g" name="main region">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_5VZOM2_lEeSjUp1iSfPc3g">
+        <outgoingTransitions xmi:id="_5VcRgW_lEeSjUp1iSfPc3g" target="_5VacVG_lEeSjUp1iSfPc3g"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_5VacVG_lEeSjUp1iSfPc3g" name="A" incomingTransitions="_5VcRgW_lEeSjUp1iSfPc3g">
+        <outgoingTransitions xmi:id="_Sei_gEAREeWvWfsZWwe8Fw" specification="always [x != 0]" target="_RzvH8EAREeWvWfsZWwe8Fw"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_RzvH8EAREeWvWfsZWwe8Fw" name="B" incomingTransitions="_Sei_gEAREeWvWfsZWwe8Fw"/>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_5VUVsG_lEeSjUp1iSfPc3g" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_5VSggG_lEeSjUp1iSfPc3g" measurementUnit="Pixel">
+    <children xmi:id="_5VWx8G_lEeSjUp1iSfPc3g" type="Region" element="_5VU8wW_lEeSjUp1iSfPc3g">
+      <children xsi:type="notation:DecorationNode" xmi:id="_5VYnIG_lEeSjUp1iSfPc3g" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_5VYnIW_lEeSjUp1iSfPc3g"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_5VYnIm_lEeSjUp1iSfPc3g"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_5VZOMG_lEeSjUp1iSfPc3g" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_5VZ1QG_lEeSjUp1iSfPc3g" type="Entry" element="_5VZOM2_lEeSjUp1iSfPc3g">
+          <children xmi:id="_5VZ1Q2_lEeSjUp1iSfPc3g" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_5VacUG_lEeSjUp1iSfPc3g" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_5VacUW_lEeSjUp1iSfPc3g"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_5VacUm_lEeSjUp1iSfPc3g"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_5VZ1RG_lEeSjUp1iSfPc3g" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VZ1RW_lEeSjUp1iSfPc3g"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_5VZ1QW_lEeSjUp1iSfPc3g" fontName="Verdana" lineColor="4210752"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VacU2_lEeSjUp1iSfPc3g" x="70" y="20"/>
+        </children>
+        <children xmi:id="_5VbDYW_lEeSjUp1iSfPc3g" type="State" element="_5VacVG_lEeSjUp1iSfPc3g">
+          <children xsi:type="notation:DecorationNode" xmi:id="_5VbDZW_lEeSjUp1iSfPc3g" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_5VbDZm_lEeSjUp1iSfPc3g"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_5VbDZ2_lEeSjUp1iSfPc3g"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_5VbqcG_lEeSjUp1iSfPc3g" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_5VbqcW_lEeSjUp1iSfPc3g" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5Vbqcm_lEeSjUp1iSfPc3g"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_5Vbqc2_lEeSjUp1iSfPc3g" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_5VbDYm_lEeSjUp1iSfPc3g" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_5VbDY2_lEeSjUp1iSfPc3g"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_5VbqdG_lEeSjUp1iSfPc3g" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VcRgG_lEeSjUp1iSfPc3g" x="40" y="80" width="210"/>
+        </children>
+        <children xmi:id="_RzvvAEAREeWvWfsZWwe8Fw" type="State" element="_RzvH8EAREeWvWfsZWwe8Fw">
+          <children xsi:type="notation:DecorationNode" xmi:id="_RzvvBEAREeWvWfsZWwe8Fw" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_RzvvBUAREeWvWfsZWwe8Fw"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_RzvvBkAREeWvWfsZWwe8Fw"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_RzvvB0AREeWvWfsZWwe8Fw" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_RzwWEEAREeWvWfsZWwe8Fw" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_RzwWEUAREeWvWfsZWwe8Fw"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_RzwWEkAREeWvWfsZWwe8Fw" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_RzvvAUAREeWvWfsZWwe8Fw" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_RzvvAkAREeWvWfsZWwe8Fw"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_RzwWE0AREeWvWfsZWwe8Fw" name="isHorizontal" booleanValue="true"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_RzvvA0AREeWvWfsZWwe8Fw" x="47" y="207" width="203"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VZOMW_lEeSjUp1iSfPc3g"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_5VWx8W_lEeSjUp1iSfPc3g" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VZOMm_lEeSjUp1iSfPc3g" x="220" y="10" width="400" height="400"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_5VdfpG_lEeSjUp1iSfPc3g" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_5VeGsG_lEeSjUp1iSfPc3g" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_5VeGsW_lEeSjUp1iSfPc3g"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_5VeGsm_lEeSjUp1iSfPc3g"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_5VeGs2_lEeSjUp1iSfPc3g" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VeGtG_lEeSjUp1iSfPc3g"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_5VetwG_lEeSjUp1iSfPc3g" x="10" y="10" width="200" height="400"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_5VU8wG_lEeSjUp1iSfPc3g"/>
+    <edges xmi:id="_5Vc4kG_lEeSjUp1iSfPc3g" type="Transition" element="_5VcRgW_lEeSjUp1iSfPc3g" source="_5VZ1QG_lEeSjUp1iSfPc3g" target="_5VbDYW_lEeSjUp1iSfPc3g">
+      <children xsi:type="notation:DecorationNode" xmi:id="_5VdfoW_lEeSjUp1iSfPc3g" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_5Vdfom_lEeSjUp1iSfPc3g"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_5Vdfo2_lEeSjUp1iSfPc3g" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_5Vc4kW_lEeSjUp1iSfPc3g" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_5VdfoG_lEeSjUp1iSfPc3g" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_5Vc4km_lEeSjUp1iSfPc3g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+    <edges xmi:id="_SejmkEAREeWvWfsZWwe8Fw" type="Transition" element="_Sei_gEAREeWvWfsZWwe8Fw" source="_5VbDYW_lEeSjUp1iSfPc3g" target="_RzvvAEAREeWvWfsZWwe8Fw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_SekNoUAREeWvWfsZWwe8Fw" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_SekNokAREeWvWfsZWwe8Fw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_SekNo0AREeWvWfsZWwe8Fw" x="-3" y="-50"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_SejmkUAREeWvWfsZWwe8Fw" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_SekNoEAREeWvWfsZWwe8Fw" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_SejmkkAREeWvWfsZWwe8Fw" points="[-9, 24, -13, -103]$[-95, 129, -99, 2]"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>