瀏覽代碼

Share project "org.yakindu.sct.generator.java.test" into "https://svn.codespot.com/a/eclipselabs.org/yakindu"

Andreas Mülder 13 年之前
父節點
當前提交
432bbd9538

+ 7 - 0
test-plugins/org.yakindu.sct.generator.java.test/.classpath

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

+ 28 - 0
test-plugins/org.yakindu.sct.generator.java.test/.project

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.yakindu.sct.generator.java.test</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

+ 8 - 0
test-plugins/org.yakindu.sct.generator.java.test/.settings/org.eclipse.jdt.core.prefs

@@ -0,0 +1,8 @@
+#Mon Apr 30 15:22:12 CEST 2012
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6

+ 14 - 0
test-plugins/org.yakindu.sct.generator.java.test/META-INF/MANIFEST.MF

@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Test
+Bundle-SymbolicName: org.yakindu.sct.generator.java.test
+Bundle-Version: 1.0.0.qualifier
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.yakindu.sct.generator.java;bundle-version="1.0.0",
+ org.junit;bundle-version="4.8.2",
+ org.yakindu.sct.generator.core;bundle-version="1.0.0",
+ com.google.inject;bundle-version="2.0.0",
+ org.eclipse.xtext.junit4;bundle-version="2.0.1",
+ org.yakindu.sct.generator.genmodel;bundle-version="1.0.0",
+ org.eclipse.jdt.core;bundle-version="3.7.3",
+ org.yakindu.sct.test.models;bundle-version="1.0.0"

+ 4 - 0
test-plugins/org.yakindu.sct.generator.java.test/build.properties

@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .

+ 81 - 0
test-plugins/org.yakindu.sct.generator.java.test/pom.xml

@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.yakindu.sct</groupId>
+		<artifactId>org.yakindu.sct.releng</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+		<relativePath>../org.yakindu.sct.releng/pom.xml</relativePath>
+	</parent>
+	<artifactId>org.yakindu.sct.generator.java.test</artifactId>
+	<groupId>org.yakindu.sct.plugins</groupId>
+	<packaging>eclipse-test-plugin</packaging>
+	
+	<profiles>
+		<profile>
+			<id>CI</id>
+			<!-- Test failures are collected by jenkins and evaluated for instable builds -->
+			<properties>
+				<testFailureIgnore>true</testFailureIgnore>
+			</properties>
+		</profile>
+		<profile>
+			<id>macosx</id>
+			<activation>
+				<os>
+					<family>mac</family>
+				</os>
+			</activation>
+			<properties>
+				<test.vmargs>-Xmx512m -XX:MaxPermSize=256m -XstartOnFirstThread</test.vmargs>
+			</properties>
+		</profile>
+		<profile>
+			<id>other-os</id>
+			<activation>
+				<os>
+					<family>!mac</family>
+				</os>
+			</activation>
+			<properties>
+				<test.vmargs>-Xmx512m -XX:MaxPermSize=256m</test.vmargs>
+			</properties>
+		</profile>
+	</profiles>
+	
+	<properties>
+		<testFailureIgnore>false</testFailureIgnore>
+	</properties>
+	
+	<build>
+		<sourceDirectory>src</sourceDirectory>
+		<plugins>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-surefire-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<configuration>
+					<useUIHarness>false</useUIHarness>
+					<useUIThread>false</useUIThread>
+					<testFailureIgnore>${testFailureIgnore}</testFailureIgnore>
+					<argLine>${test.vmargs}</argLine>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.eclipse.tycho</groupId>
+				<artifactId>tycho-source-plugin</artifactId>
+				<version>${tycho-version}</version>
+				<executions>
+					<execution>
+						<id>plugin-source</id>
+						<goals>
+							<goal>plugin-source</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+</project>

+ 420 - 0
test-plugins/org.yakindu.sct.generator.java.test/resources/DeepHistory.sct

@@ -0,0 +1,420 @@
+<?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="_XoS0wPZlEeCSetPXFd1ZUw" specification="interface:&#xA;in event event1&#xA;in event event2&#xA;in event event3&#xA;in event event4&#xA;in event event5&#xA;in event event6&#xA;in event event7&#xA;in event event8&#xA;in event event9&#xA;&#xA;" name="Test_DeepHistory">
+    <regions xmi:id="_XoTb0vZlEeCSetPXFd1ZUw" name="mainRegion">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_Dd7OAPimEeCPG5ImOgba0Q">
+        <outgoingTransitions xmi:id="_Dd71EPimEeCPG5ImOgba0Q" target="_Dd71EfimEeCPG5ImOgba0Q"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_Dd71EfimEeCPG5ImOgba0Q" name="State1" incomingTransitions="_Dd71EPimEeCPG5ImOgba0Q _Dd71GPimEeCPG5ImOgba0Q">
+        <outgoingTransitions xmi:id="_Dd71EvimEeCPG5ImOgba0Q" specification="event1" target="_Dd71F_imEeCPG5ImOgba0Q"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_Dd71F_imEeCPG5ImOgba0Q" name="State2" incomingTransitions="_Dd71EvimEeCPG5ImOgba0Q">
+        <outgoingTransitions xmi:id="_Dd71GPimEeCPG5ImOgba0Q" specification="event2" target="_Dd71EfimEeCPG5ImOgba0Q"/>
+        <regions xmi:id="_Dd71HPimEeCPG5ImOgba0Q">
+          <vertices xsi:type="sgraph:State" xmi:id="_Dd71H_imEeCPG5ImOgba0Q" name="a" incomingTransitions="_QlbEMPiwEeCmAZxZWLaQmA">
+            <outgoingTransitions xmi:id="_Dd71IPimEeCPG5ImOgba0Q" specification="" target="_Dd71JPimEeCPG5ImOgba0Q"/>
+          </vertices>
+          <vertices xsi:type="sgraph:State" xmi:id="_Dd71JPimEeCPG5ImOgba0Q" name="State4" incomingTransitions="_Dd71IPimEeCPG5ImOgba0Q">
+            <outgoingTransitions xmi:id="_Dd71JfimEeCPG5ImOgba0Q" specification="event4" target="_Dd8cPPimEeCPG5ImOgba0Q"/>
+            <regions xmi:id="_Dd8cIvimEeCPG5ImOgba0Q">
+              <vertices xsi:type="sgraph:Entry" xmi:id="_Dd8cI_imEeCPG5ImOgba0Q">
+                <outgoingTransitions xmi:id="_Dd8cJPimEeCPG5ImOgba0Q" target="_Dd8cJfimEeCPG5ImOgba0Q"/>
+              </vertices>
+              <vertices xsi:type="sgraph:State" xmi:id="_Dd8cJfimEeCPG5ImOgba0Q" name="State6" incomingTransitions="_Dd8cJPimEeCPG5ImOgba0Q _Dd8cK_imEeCPG5ImOgba0Q">
+                <outgoingTransitions xmi:id="_Dd8cJvimEeCPG5ImOgba0Q" specification="event5" target="_Dd8cKvimEeCPG5ImOgba0Q"/>
+              </vertices>
+              <vertices xsi:type="sgraph:State" xmi:id="_Dd8cKvimEeCPG5ImOgba0Q" name="State7" incomingTransitions="_Dd8cJvimEeCPG5ImOgba0Q">
+                <outgoingTransitions xmi:id="_Dd8cK_imEeCPG5ImOgba0Q" specification="event6" target="_Dd8cJfimEeCPG5ImOgba0Q"/>
+                <regions xmi:id="_Dd8cL_imEeCPG5ImOgba0Q">
+                  <vertices xsi:type="sgraph:State" xmi:id="_Dd8cMPimEeCPG5ImOgba0Q" name="State8" incomingTransitions="_Dd8cNvimEeCPG5ImOgba0Q _TyjukPiwEeCmAZxZWLaQmA">
+                    <outgoingTransitions xmi:id="_Dd8cMfimEeCPG5ImOgba0Q" specification="event7" target="_Dd8cNfimEeCPG5ImOgba0Q"/>
+                  </vertices>
+                  <vertices xsi:type="sgraph:State" xmi:id="_Dd8cNfimEeCPG5ImOgba0Q" name="State9" incomingTransitions="_Dd8cMfimEeCPG5ImOgba0Q">
+                    <outgoingTransitions xmi:id="_Dd8cNvimEeCPG5ImOgba0Q" specification="event8" target="_Dd8cMPimEeCPG5ImOgba0Q"/>
+                  </vertices>
+                  <vertices xsi:type="sgraph:Entry" xmi:id="_TCRhIPiwEeCmAZxZWLaQmA">
+                    <outgoingTransitions xmi:id="_TyjukPiwEeCmAZxZWLaQmA" target="_Dd8cMPimEeCPG5ImOgba0Q"/>
+                  </vertices>
+                </regions>
+              </vertices>
+            </regions>
+          </vertices>
+          <vertices xsi:type="sgraph:State" xmi:id="_Dd8cPPimEeCPG5ImOgba0Q" name="State5" incomingTransitions="_Dd71JfimEeCPG5ImOgba0Q"/>
+          <vertices xsi:type="sgraph:Entry" xmi:id="_PkyGkPiwEeCmAZxZWLaQmA" kind="DEEP_HISTORY">
+            <outgoingTransitions xmi:id="_QlbEMPiwEeCmAZxZWLaQmA" target="_Dd71H_imEeCPG5ImOgba0Q"/>
+          </vertices>
+        </regions>
+      </vertices>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_XoTb0PZlEeCSetPXFd1ZUw" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_XoS0wPZlEeCSetPXFd1ZUw" measurementUnit="Pixel">
+    <children xmi:id="_XoUC4PZlEeCSetPXFd1ZUw" type="Region" element="_XoTb0vZlEeCSetPXFd1ZUw">
+      <children xsi:type="notation:DecorationNode" xmi:id="_XoUC4_ZlEeCSetPXFd1ZUw" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_XoUC5PZlEeCSetPXFd1ZUw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_XoUC5fZlEeCSetPXFd1ZUw"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_XoUC5vZlEeCSetPXFd1ZUw" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_Dd4xwfimEeCPG5ImOgba0Q" type="Entry" element="_Dd7OAPimEeCPG5ImOgba0Q">
+          <children xmi:id="_Dd4xwvimEeCPG5ImOgba0Q" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_Dd4xw_imEeCPG5ImOgba0Q" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd4xxPimEeCPG5ImOgba0Q"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_Dd4xxfimEeCPG5ImOgba0Q"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd4xxvimEeCPG5ImOgba0Q" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd4xx_imEeCPG5ImOgba0Q"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd4xyPimEeCPG5ImOgba0Q" fontName="Verdana" lineColor="4210752"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd4xyfimEeCPG5ImOgba0Q" x="80" y="30"/>
+        </children>
+        <children xmi:id="_Dd5Y0PimEeCPG5ImOgba0Q" type="State" element="_Dd71EfimEeCPG5ImOgba0Q">
+          <children xsi:type="notation:DecorationNode" xmi:id="_Dd5Y0fimEeCPG5ImOgba0Q" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd5Y0vimEeCPG5ImOgba0Q"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_Dd5Y0_imEeCPG5ImOgba0Q"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_Dd5Y1PimEeCPG5ImOgba0Q" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_Dd5Y1fimEeCPG5ImOgba0Q" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd5Y1vimEeCPG5ImOgba0Q"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_Dd5Y1_imEeCPG5ImOgba0Q" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd5Y2PimEeCPG5ImOgba0Q" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_Dd5Y2fimEeCPG5ImOgba0Q"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_Dd5Y2vimEeCPG5ImOgba0Q"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd5Y2_imEeCPG5ImOgba0Q" x="19" y="135" width="96"/>
+        </children>
+        <children xmi:id="_Dd5Y3PimEeCPG5ImOgba0Q" type="State" element="_Dd71F_imEeCPG5ImOgba0Q">
+          <children xsi:type="notation:DecorationNode" xmi:id="_Dd5Y3fimEeCPG5ImOgba0Q" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd5Y3vimEeCPG5ImOgba0Q"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_Dd5Y3_imEeCPG5ImOgba0Q"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_Dd5Y4PimEeCPG5ImOgba0Q" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_Dd5Y4fimEeCPG5ImOgba0Q" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd5Y4vimEeCPG5ImOgba0Q"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_Dd5Y4_imEeCPG5ImOgba0Q" type="StateFigureCompartment">
+            <children xmi:id="_Dd5Y5PimEeCPG5ImOgba0Q" type="Region" element="_Dd71HPimEeCPG5ImOgba0Q">
+              <children xsi:type="notation:DecorationNode" xmi:id="_Dd5Y5fimEeCPG5ImOgba0Q" type="RegionName">
+                <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd5Y5vimEeCPG5ImOgba0Q"/>
+                <layoutConstraint xsi:type="notation:Location" xmi:id="_Dd5Y5_imEeCPG5ImOgba0Q"/>
+              </children>
+              <children xsi:type="notation:Shape" xmi:id="_Dd5Y6PimEeCPG5ImOgba0Q" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                <children xmi:id="_Dd5Y8vimEeCPG5ImOgba0Q" type="State" element="_Dd71H_imEeCPG5ImOgba0Q">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_Dd5Y8_imEeCPG5ImOgba0Q" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd5Y9PimEeCPG5ImOgba0Q"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_Dd5Y9fimEeCPG5ImOgba0Q"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_Dd5Y9vimEeCPG5ImOgba0Q" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_Dd5Y9_imEeCPG5ImOgba0Q" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd5Y-PimEeCPG5ImOgba0Q"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_Dd5Y-fimEeCPG5ImOgba0Q" type="StateFigureCompartment"/>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd5Y-vimEeCPG5ImOgba0Q" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_Dd5Y-_imEeCPG5ImOgba0Q"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_Dd5Y_PimEeCPG5ImOgba0Q"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd5Y_fimEeCPG5ImOgba0Q" x="115" y="49" width="72"/>
+                </children>
+                <children xmi:id="_Dd5Y_vimEeCPG5ImOgba0Q" type="State" element="_Dd71JPimEeCPG5ImOgba0Q">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_Dd5Y__imEeCPG5ImOgba0Q" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd5ZAPimEeCPG5ImOgba0Q"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_Dd5ZAfimEeCPG5ImOgba0Q"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_Dd5ZAvimEeCPG5ImOgba0Q" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_Dd5ZA_imEeCPG5ImOgba0Q" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd5ZBPimEeCPG5ImOgba0Q"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_Dd5ZBfimEeCPG5ImOgba0Q" type="StateFigureCompartment">
+                    <children xmi:id="_Dd5_4PimEeCPG5ImOgba0Q" type="Region" element="_Dd8cIvimEeCPG5ImOgba0Q">
+                      <children xsi:type="notation:DecorationNode" xmi:id="_Dd5_4fimEeCPG5ImOgba0Q" type="RegionName">
+                        <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd5_4vimEeCPG5ImOgba0Q"/>
+                        <layoutConstraint xsi:type="notation:Location" xmi:id="_Dd5_4_imEeCPG5ImOgba0Q"/>
+                      </children>
+                      <children xsi:type="notation:Shape" xmi:id="_Dd5_5PimEeCPG5ImOgba0Q" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                        <children xmi:id="_Dd5_5fimEeCPG5ImOgba0Q" type="Entry" element="_Dd8cI_imEeCPG5ImOgba0Q">
+                          <children xmi:id="_Dd5_5vimEeCPG5ImOgba0Q" type="BorderItemLabelContainer">
+                            <children xsi:type="notation:DecorationNode" xmi:id="_Dd5_5_imEeCPG5ImOgba0Q" type="BorderItemLabel">
+                              <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd5_6PimEeCPG5ImOgba0Q"/>
+                              <layoutConstraint xsi:type="notation:Location" xmi:id="_Dd5_6fimEeCPG5ImOgba0Q"/>
+                            </children>
+                            <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd5_6vimEeCPG5ImOgba0Q" fontName="Verdana" lineColor="4210752"/>
+                            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd5_6_imEeCPG5ImOgba0Q"/>
+                          </children>
+                          <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd5_7PimEeCPG5ImOgba0Q" fontName="Verdana" lineColor="4210752"/>
+                          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd5_7fimEeCPG5ImOgba0Q" x="19" y="31"/>
+                        </children>
+                        <children xmi:id="_Dd5_7vimEeCPG5ImOgba0Q" type="State" element="_Dd8cJfimEeCPG5ImOgba0Q">
+                          <children xsi:type="notation:DecorationNode" xmi:id="_Dd5_7_imEeCPG5ImOgba0Q" type="StateName">
+                            <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd5_8PimEeCPG5ImOgba0Q"/>
+                            <layoutConstraint xsi:type="notation:Location" xmi:id="_Dd5_8fimEeCPG5ImOgba0Q"/>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_Dd5_8vimEeCPG5ImOgba0Q" type="StateTextCompartment">
+                            <children xsi:type="notation:Shape" xmi:id="_Dd5_8_imEeCPG5ImOgba0Q" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd5_9PimEeCPG5ImOgba0Q"/>
+                            </children>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_Dd5_9fimEeCPG5ImOgba0Q" type="StateFigureCompartment"/>
+                          <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd5_9vimEeCPG5ImOgba0Q" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                          <styles xsi:type="notation:FontStyle" xmi:id="_Dd5_9_imEeCPG5ImOgba0Q"/>
+                          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_Dd5_-PimEeCPG5ImOgba0Q"/>
+                          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd5_-fimEeCPG5ImOgba0Q" x="198" y="19" width="75"/>
+                        </children>
+                        <children xmi:id="_Dd5_-vimEeCPG5ImOgba0Q" type="State" element="_Dd8cKvimEeCPG5ImOgba0Q">
+                          <children xsi:type="notation:DecorationNode" xmi:id="_Dd5_-_imEeCPG5ImOgba0Q" type="StateName">
+                            <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd5__PimEeCPG5ImOgba0Q"/>
+                            <layoutConstraint xsi:type="notation:Location" xmi:id="_Dd5__fimEeCPG5ImOgba0Q"/>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_Dd5__vimEeCPG5ImOgba0Q" type="StateTextCompartment" collapsed="true">
+                            <children xsi:type="notation:Shape" xmi:id="_Dd5___imEeCPG5ImOgba0Q" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6AAPimEeCPG5ImOgba0Q"/>
+                            </children>
+                          </children>
+                          <children xsi:type="notation:Compartment" xmi:id="_Dd6AAfimEeCPG5ImOgba0Q" type="StateFigureCompartment">
+                            <children xmi:id="_Dd6AAvimEeCPG5ImOgba0Q" type="Region" element="_Dd8cL_imEeCPG5ImOgba0Q">
+                              <children xsi:type="notation:DecorationNode" xmi:id="_Dd6AA_imEeCPG5ImOgba0Q" type="RegionName">
+                                <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd6ABPimEeCPG5ImOgba0Q"/>
+                                <layoutConstraint xsi:type="notation:Location" xmi:id="_Dd6ABfimEeCPG5ImOgba0Q"/>
+                              </children>
+                              <children xsi:type="notation:Shape" xmi:id="_Dd6ABvimEeCPG5ImOgba0Q" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+                                <children xmi:id="_Dd6AB_imEeCPG5ImOgba0Q" type="State" element="_Dd8cMPimEeCPG5ImOgba0Q">
+                                  <children xsi:type="notation:DecorationNode" xmi:id="_Dd6ACPimEeCPG5ImOgba0Q" type="StateName">
+                                    <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd6ACfimEeCPG5ImOgba0Q"/>
+                                    <layoutConstraint xsi:type="notation:Location" xmi:id="_Dd6ACvimEeCPG5ImOgba0Q"/>
+                                  </children>
+                                  <children xsi:type="notation:Compartment" xmi:id="_Dd6AC_imEeCPG5ImOgba0Q" type="StateTextCompartment">
+                                    <children xsi:type="notation:Shape" xmi:id="_Dd6ADPimEeCPG5ImOgba0Q" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6ADfimEeCPG5ImOgba0Q"/>
+                                    </children>
+                                  </children>
+                                  <children xsi:type="notation:Compartment" xmi:id="_Dd6ADvimEeCPG5ImOgba0Q" type="StateFigureCompartment"/>
+                                  <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd6AD_imEeCPG5ImOgba0Q" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                                  <styles xsi:type="notation:FontStyle" xmi:id="_Dd6AEPimEeCPG5ImOgba0Q"/>
+                                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_Dd6AEfimEeCPG5ImOgba0Q"/>
+                                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6AEvimEeCPG5ImOgba0Q" x="71" y="7" width="72"/>
+                                </children>
+                                <children xmi:id="_Dd6AE_imEeCPG5ImOgba0Q" type="State" element="_Dd8cNfimEeCPG5ImOgba0Q">
+                                  <children xsi:type="notation:DecorationNode" xmi:id="_Dd6AFPimEeCPG5ImOgba0Q" type="StateName">
+                                    <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd6AFfimEeCPG5ImOgba0Q"/>
+                                    <layoutConstraint xsi:type="notation:Location" xmi:id="_Dd6AFvimEeCPG5ImOgba0Q"/>
+                                  </children>
+                                  <children xsi:type="notation:Compartment" xmi:id="_Dd6AF_imEeCPG5ImOgba0Q" type="StateTextCompartment">
+                                    <children xsi:type="notation:Shape" xmi:id="_Dd6AGPimEeCPG5ImOgba0Q" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6AGfimEeCPG5ImOgba0Q"/>
+                                    </children>
+                                  </children>
+                                  <children xsi:type="notation:Compartment" xmi:id="_Dd6AGvimEeCPG5ImOgba0Q" type="StateFigureCompartment"/>
+                                  <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd6AG_imEeCPG5ImOgba0Q" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                                  <styles xsi:type="notation:FontStyle" xmi:id="_Dd6AHPimEeCPG5ImOgba0Q"/>
+                                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_Dd6AHfimEeCPG5ImOgba0Q"/>
+                                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6AHvimEeCPG5ImOgba0Q" x="219" y="13" width="74"/>
+                                </children>
+                                <children xmi:id="_TCSIMPiwEeCmAZxZWLaQmA" type="Entry" element="_TCRhIPiwEeCmAZxZWLaQmA">
+                                  <children xmi:id="_TCSvQPiwEeCmAZxZWLaQmA" type="BorderItemLabelContainer">
+                                    <children xsi:type="notation:DecorationNode" xmi:id="_TCSvQ_iwEeCmAZxZWLaQmA" type="BorderItemLabel">
+                                      <styles xsi:type="notation:ShapeStyle" xmi:id="_TCSvRPiwEeCmAZxZWLaQmA"/>
+                                      <layoutConstraint xsi:type="notation:Location" xmi:id="_TCSvRfiwEeCmAZxZWLaQmA"/>
+                                    </children>
+                                    <styles xsi:type="notation:ShapeStyle" xmi:id="_TCSvQfiwEeCmAZxZWLaQmA" fontName="Verdana" lineColor="4210752"/>
+                                    <layoutConstraint xsi:type="notation:Bounds" xmi:id="_TCSvQviwEeCmAZxZWLaQmA"/>
+                                  </children>
+                                  <styles xsi:type="notation:ShapeStyle" xmi:id="_TCSIMfiwEeCmAZxZWLaQmA" fontName="Verdana" lineColor="4210752"/>
+                                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_TCSIMviwEeCmAZxZWLaQmA" x="23" y="27"/>
+                                </children>
+                                <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6AKPimEeCPG5ImOgba0Q"/>
+                              </children>
+                              <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd6AKfimEeCPG5ImOgba0Q" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+                              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6AKvimEeCPG5ImOgba0Q"/>
+                            </children>
+                          </children>
+                          <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd6AK_imEeCPG5ImOgba0Q" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                          <styles xsi:type="notation:FontStyle" xmi:id="_Dd6ALPimEeCPG5ImOgba0Q"/>
+                          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_Dd6ALfimEeCPG5ImOgba0Q"/>
+                          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6ALvimEeCPG5ImOgba0Q" x="33" y="127" width="354" height="225"/>
+                        </children>
+                        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6AL_imEeCPG5ImOgba0Q"/>
+                      </children>
+                      <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd6AMPimEeCPG5ImOgba0Q" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6AMfimEeCPG5ImOgba0Q"/>
+                    </children>
+                  </children>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd6AMvimEeCPG5ImOgba0Q" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_Dd6AM_imEeCPG5ImOgba0Q"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_Dd6ANPimEeCPG5ImOgba0Q"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6ANfimEeCPG5ImOgba0Q" x="278" y="5" width="441" height="447"/>
+                </children>
+                <children xmi:id="_Dd6ANvimEeCPG5ImOgba0Q" type="State" element="_Dd8cPPimEeCPG5ImOgba0Q">
+                  <children xsi:type="notation:DecorationNode" xmi:id="_Dd6AN_imEeCPG5ImOgba0Q" type="StateName">
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd6AOPimEeCPG5ImOgba0Q"/>
+                    <layoutConstraint xsi:type="notation:Location" xmi:id="_Dd6AOfimEeCPG5ImOgba0Q"/>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_Dd6AOvimEeCPG5ImOgba0Q" type="StateTextCompartment">
+                    <children xsi:type="notation:Shape" xmi:id="_Dd6AO_imEeCPG5ImOgba0Q" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+                      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6APPimEeCPG5ImOgba0Q"/>
+                    </children>
+                  </children>
+                  <children xsi:type="notation:Compartment" xmi:id="_Dd6APfimEeCPG5ImOgba0Q" type="StateFigureCompartment"/>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd6APvimEeCPG5ImOgba0Q" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+                  <styles xsi:type="notation:FontStyle" xmi:id="_Dd6AP_imEeCPG5ImOgba0Q"/>
+                  <styles xsi:type="notation:BooleanValueStyle" xmi:id="_Dd6AQPimEeCPG5ImOgba0Q"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6m8PimEeCPG5ImOgba0Q" x="62" y="355" width="86"/>
+                </children>
+                <children xmi:id="_Pk2YAPiwEeCmAZxZWLaQmA" type="DeepHistory" element="_PkyGkPiwEeCmAZxZWLaQmA">
+                  <children xmi:id="_Pk3mIPiwEeCmAZxZWLaQmA" type="BorderItemLabelContainer">
+                    <children xsi:type="notation:DecorationNode" xmi:id="_Pk4NMPiwEeCmAZxZWLaQmA" type="BorderItemLabel">
+                      <styles xsi:type="notation:ShapeStyle" xmi:id="_Pk4NMfiwEeCmAZxZWLaQmA"/>
+                      <layoutConstraint xsi:type="notation:Location" xmi:id="_Pk4NMviwEeCmAZxZWLaQmA"/>
+                    </children>
+                    <styles xsi:type="notation:ShapeStyle" xmi:id="_Pk3mIfiwEeCmAZxZWLaQmA" fontName="Verdana" lineColor="4210752"/>
+                    <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Pk3mIviwEeCmAZxZWLaQmA"/>
+                  </children>
+                  <styles xsi:type="notation:ShapeStyle" xmi:id="_Pk2YAfiwEeCmAZxZWLaQmA" fontName="Verdana" lineColor="4210752"/>
+                  <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Pk2YAviwEeCmAZxZWLaQmA" x="39" y="28"/>
+                </children>
+                <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6m8fimEeCPG5ImOgba0Q"/>
+              </children>
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd6m8vimEeCPG5ImOgba0Q" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6m8_imEeCPG5ImOgba0Q"/>
+            </children>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_Dd6m9PimEeCPG5ImOgba0Q" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_Dd6m9fimEeCPG5ImOgba0Q"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_Dd6m9vimEeCPG5ImOgba0Q"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_Dd6m9_imEeCPG5ImOgba0Q" x="215" y="23" width="785" height="589"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_XoUC5_ZlEeCSetPXFd1ZUw"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_XoUC4fZlEeCSetPXFd1ZUw" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_XoUp8PZlEeCSetPXFd1ZUw" x="220" y="10" width="993" height="675"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_XoXGN_ZlEeCSetPXFd1ZUw" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_XoXtQPZlEeCSetPXFd1ZUw" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_XoXtQfZlEeCSetPXFd1ZUw"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_XoXtQvZlEeCSetPXFd1ZUw"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_XoXtQ_ZlEeCSetPXFd1ZUw" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_XoXtRPZlEeCSetPXFd1ZUw"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_XoXtRfZlEeCSetPXFd1ZUw" x="10" y="10" width="200" height="400"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_XoTb0fZlEeCSetPXFd1ZUw"/>
+    <edges xmi:id="_DmuksPimEeCPG5ImOgba0Q" type="Transition" element="_Dd8cMfimEeCPG5ImOgba0Q" source="_Dd6AB_imEeCPG5ImOgba0Q" target="_Dd6AE_imEeCPG5ImOgba0Q">
+      <children xsi:type="notation:DecorationNode" xmi:id="_DmuktPimEeCPG5ImOgba0Q" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_DmuktfimEeCPG5ImOgba0Q"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_DmuktvimEeCPG5ImOgba0Q" x="1" y="-10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_DmuksfimEeCPG5ImOgba0Q" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_Dmuks_imEeCPG5ImOgba0Q" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_DmuksvimEeCPG5ImOgba0Q" points="[26, 6, -122, 0]$[74, -9, -74, -15]$[123, 6, -25, 0]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_NnamgPimEeCPG5ImOgba0Q" id="(0.09803921568627451,0.31746031746031744)"/>
+    </edges>
+    <edges xmi:id="_Dmvy0PimEeCPG5ImOgba0Q" type="Transition" element="_Dd8cNvimEeCPG5ImOgba0Q" source="_Dd6AE_imEeCPG5ImOgba0Q" target="_Dd6AB_imEeCPG5ImOgba0Q">
+      <children xsi:type="notation:DecorationNode" xmi:id="_Dmvy1PimEeCPG5ImOgba0Q" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_Dmvy1fimEeCPG5ImOgba0Q"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_Dmvy1vimEeCPG5ImOgba0Q" y="-13"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_Dmvy0fimEeCPG5ImOgba0Q" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_Dmvy0_imEeCPG5ImOgba0Q" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_Dmvy0vimEeCPG5ImOgba0Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_OM7HUPimEeCPG5ImOgba0Q" id="(0.0392156862745098,0.6349206349206349)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_PgEKMPimEeCPG5ImOgba0Q" id="(0.9607843137254902,0.7619047619047619)"/>
+    </edges>
+    <edges xmi:id="_Dp2KIPimEeCPG5ImOgba0Q" type="Transition" element="_Dd8cK_imEeCPG5ImOgba0Q" source="_Dd5_-vimEeCPG5ImOgba0Q" target="_Dd5_7vimEeCPG5ImOgba0Q">
+      <children xsi:type="notation:DecorationNode" xmi:id="_Dp2xMfimEeCPG5ImOgba0Q" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_Dp2xMvimEeCPG5ImOgba0Q"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_Dp2xM_imEeCPG5ImOgba0Q" x="-16" y="26"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_Dp2KIfimEeCPG5ImOgba0Q" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_Dp2xMPimEeCPG5ImOgba0Q" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_Dp2KIvimEeCPG5ImOgba0Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_CQIyYEs-EeGdEbcgyE6NOQ" id="(0.5875706214689266,0.013333333333333334)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_B88woEs-EeGdEbcgyE6NOQ" id="(0.9056603773584906,0.6964285714285714)"/>
+    </edges>
+    <edges xmi:id="_Dp3YQPimEeCPG5ImOgba0Q" type="Transition" element="_Dd8cJvimEeCPG5ImOgba0Q" source="_Dd5_7vimEeCPG5ImOgba0Q" target="_Dd5_-vimEeCPG5ImOgba0Q">
+      <children xsi:type="notation:DecorationNode" xmi:id="_Dp3YRPimEeCPG5ImOgba0Q" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_Dp3YRfimEeCPG5ImOgba0Q"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_Dp3_UPimEeCPG5ImOgba0Q" x="-5" y="30"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_Dp3YQfimEeCPG5ImOgba0Q" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_Dp3YQ_imEeCPG5ImOgba0Q" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_Dp3YQvimEeCPG5ImOgba0Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_Cp4IEEs-EeGdEbcgyE6NOQ" id="(0.32075471698113206,0.8928571428571429)"/>
+    </edges>
+    <edges xmi:id="_Dp4mYPimEeCPG5ImOgba0Q" type="Transition" element="_Dd8cJPimEeCPG5ImOgba0Q" source="_Dd5_5fimEeCPG5ImOgba0Q" target="_Dd5_7vimEeCPG5ImOgba0Q">
+      <children xsi:type="notation:DecorationNode" xmi:id="_Dp4mZPimEeCPG5ImOgba0Q" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_Dp4mZfimEeCPG5ImOgba0Q"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_Dp4mZvimEeCPG5ImOgba0Q" y="40"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_Dp4mYfimEeCPG5ImOgba0Q" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_Dp4mY_imEeCPG5ImOgba0Q" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_Dp4mYvimEeCPG5ImOgba0Q" points="[-1, -2, 0, -1]$[-1, -1, 0, 0]"/>
+    </edges>
+    <edges xmi:id="_DsU2YPimEeCPG5ImOgba0Q" type="Transition" element="_Dd71JfimEeCPG5ImOgba0Q" source="_Dd5Y_vimEeCPG5ImOgba0Q" target="_Dd6ANvimEeCPG5ImOgba0Q">
+      <children xsi:type="notation:DecorationNode" xmi:id="_DsVdcfimEeCPG5ImOgba0Q" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_DsVdcvimEeCPG5ImOgba0Q"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_DsVdc_imEeCPG5ImOgba0Q" y="40"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_DsU2YfimEeCPG5ImOgba0Q" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_DsVdcPimEeCPG5ImOgba0Q" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_DsU2YvimEeCPG5ImOgba0Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+    <edges xmi:id="_DsXSoPimEeCPG5ImOgba0Q" type="Transition" element="_Dd71IPimEeCPG5ImOgba0Q" source="_Dd5Y8vimEeCPG5ImOgba0Q" target="_Dd5Y_vimEeCPG5ImOgba0Q">
+      <children xsi:type="notation:DecorationNode" xmi:id="_DsX5sPimEeCPG5ImOgba0Q" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_DsX5sfimEeCPG5ImOgba0Q"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_DsX5svimEeCPG5ImOgba0Q" y="40"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_DsXSofimEeCPG5ImOgba0Q" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_DsXSo_imEeCPG5ImOgba0Q" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_DsXSovimEeCPG5ImOgba0Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+    <edges xmi:id="_DvpQIPimEeCPG5ImOgba0Q" type="Transition" element="_Dd71EvimEeCPG5ImOgba0Q" source="_Dd5Y0PimEeCPG5ImOgba0Q" target="_Dd5Y3PimEeCPG5ImOgba0Q">
+      <children xsi:type="notation:DecorationNode" xmi:id="_Dvp3MfimEeCPG5ImOgba0Q" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_Dvp3MvimEeCPG5ImOgba0Q"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_Dvp3M_imEeCPG5ImOgba0Q" x="26" y="-22"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_DvpQIfimEeCPG5ImOgba0Q" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_Dvp3MPimEeCPG5ImOgba0Q" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_DvpQIvimEeCPG5ImOgba0Q" points="[26, -3, -108, 13]$[128, -16, -6, 0]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_2JjJsPisEeCPG5ImOgba0Q" id="(0.8431372549019608,0.30158730158730157)"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_LF1akPimEeCPG5ImOgba0Q" id="(0.007643312101910828,0.21561969439728354)"/>
+    </edges>
+    <edges xmi:id="_DvrFUPimEeCPG5ImOgba0Q" type="Transition" element="_Dd71GPimEeCPG5ImOgba0Q" source="_Dd5Y3PimEeCPG5ImOgba0Q" target="_Dd5Y0PimEeCPG5ImOgba0Q">
+      <children xsi:type="notation:DecorationNode" xmi:id="_DvrFVPimEeCPG5ImOgba0Q" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_DvrFVfimEeCPG5ImOgba0Q"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_DvrFVvimEeCPG5ImOgba0Q" x="12" y="-20"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_DvrFUfimEeCPG5ImOgba0Q" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_DvrFU_imEeCPG5ImOgba0Q" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_DvrFUvimEeCPG5ImOgba0Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_29WlMPisEeCPG5ImOgba0Q" id="(0.012738853503184714,0.2614601018675722)"/>
+    </edges>
+    <edges xmi:id="_DvsTcPimEeCPG5ImOgba0Q" type="Transition" element="_Dd71EPimEeCPG5ImOgba0Q" source="_Dd4xwfimEeCPG5ImOgba0Q" target="_Dd5Y0PimEeCPG5ImOgba0Q">
+      <children xsi:type="notation:DecorationNode" xmi:id="_DvsTdPimEeCPG5ImOgba0Q" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_DvsTdfimEeCPG5ImOgba0Q"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_DvsTdvimEeCPG5ImOgba0Q" y="40"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_DvsTcfimEeCPG5ImOgba0Q" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_DvsTc_imEeCPG5ImOgba0Q" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_DvsTcvimEeCPG5ImOgba0Q" points="[-1, -2, 0, -1]$[-1, -1, 0, 0]"/>
+    </edges>
+    <edges xmi:id="_QlcSUPiwEeCmAZxZWLaQmA" type="Transition" element="_QlbEMPiwEeCmAZxZWLaQmA" source="_Pk2YAPiwEeCmAZxZWLaQmA" target="_Dd5Y8vimEeCPG5ImOgba0Q">
+      <children xsi:type="notation:DecorationNode" xmi:id="_Qlc5YfiwEeCmAZxZWLaQmA" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_Qlc5YviwEeCmAZxZWLaQmA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_Qlc5Y_iwEeCmAZxZWLaQmA" y="40"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_QlcSUfiwEeCmAZxZWLaQmA" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_Qlc5YPiwEeCmAZxZWLaQmA" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_QlcSUviwEeCmAZxZWLaQmA" points="[7, 0, -93, -17]$[94, -14, -6, -31]"/>
+    </edges>
+    <edges xmi:id="_Tymx4PiwEeCmAZxZWLaQmA" type="Transition" element="_TyjukPiwEeCmAZxZWLaQmA" source="_TCSIMPiwEeCmAZxZWLaQmA" target="_Dd6AB_imEeCPG5ImOgba0Q">
+      <children xsi:type="notation:DecorationNode" xmi:id="_Tymx5PiwEeCmAZxZWLaQmA" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_Tymx5fiwEeCmAZxZWLaQmA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_Tymx5viwEeCmAZxZWLaQmA" y="40"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_Tymx4fiwEeCmAZxZWLaQmA" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_Tymx4_iwEeCmAZxZWLaQmA" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_Tymx4viwEeCmAZxZWLaQmA" points="[7, 0, -45, 3]$[41, -9, -11, -6]"/>
+      <targetAnchor xsi:type="notation:IdentityAnchor" xmi:id="_TzQSIPiwEeCmAZxZWLaQmA" id="(0.21568627450980393,0.38095238095238093)"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>

+ 101 - 0
test-plugins/org.yakindu.sct.generator.java.test/resources/SimpleEvent.sct

@@ -0,0 +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="_MEOcMJLHEeGc3OFlLS8sJA" specification="internal:&#xD;&#xA;event Event1" name="SimpleEvent">
+    <regions xmi:id="_METUsZLHEeGc3OFlLS8sJA" name="main region">
+      <vertices xsi:type="sgraph:Entry" xmi:id="_MFEwwZLHEeGc3OFlLS8sJA">
+        <outgoingTransitions xmi:id="_MFMFgJLHEeGc3OFlLS8sJA" target="_MFHNBJLHEeGc3OFlLS8sJA"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_MFHNBJLHEeGc3OFlLS8sJA" name="A" incomingTransitions="_MFMFgJLHEeGc3OFlLS8sJA">
+        <outgoingTransitions xmi:id="_QfOn4JLHEeGc3OFlLS8sJA" specification="Event1" target="_P5KGYJLHEeGc3OFlLS8sJA"/>
+      </vertices>
+      <vertices xsi:type="sgraph:State" xmi:id="_P5KGYJLHEeGc3OFlLS8sJA" name="B" incomingTransitions="_QfOn4JLHEeGc3OFlLS8sJA"/>
+    </regions>
+  </sgraph:Statechart>
+  <notation:Diagram xmi:id="_MEStoJLHEeGc3OFlLS8sJA" type="org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor" element="_MEOcMJLHEeGc3OFlLS8sJA" measurementUnit="Pixel">
+    <children xmi:id="_MEgJAJLHEeGc3OFlLS8sJA" type="Region" element="_METUsZLHEeGc3OFlLS8sJA">
+      <children xsi:type="notation:DecorationNode" xmi:id="_MFBtcJLHEeGc3OFlLS8sJA" type="RegionName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_MFBtcZLHEeGc3OFlLS8sJA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_MFCUgJLHEeGc3OFlLS8sJA"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_MFC7kJLHEeGc3OFlLS8sJA" type="RegionCompartment" fontName="Verdana" lineColor="4210752">
+        <children xmi:id="_MFFX0JLHEeGc3OFlLS8sJA" type="Entry" element="_MFEwwZLHEeGc3OFlLS8sJA">
+          <children xmi:id="_MFGl8JLHEeGc3OFlLS8sJA" type="BorderItemLabelContainer">
+            <children xsi:type="notation:DecorationNode" xmi:id="_MFHNAJLHEeGc3OFlLS8sJA" type="BorderItemLabel">
+              <styles xsi:type="notation:ShapeStyle" xmi:id="_MFHNAZLHEeGc3OFlLS8sJA"/>
+              <layoutConstraint xsi:type="notation:Location" xmi:id="_MFHNApLHEeGc3OFlLS8sJA"/>
+            </children>
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_MFGl8ZLHEeGc3OFlLS8sJA" fontName="Verdana" lineColor="4210752"/>
+            <layoutConstraint xsi:type="notation:Bounds" xmi:id="_MFGl8pLHEeGc3OFlLS8sJA"/>
+          </children>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_MFFX0ZLHEeGc3OFlLS8sJA" fontName="Verdana" lineColor="4210752"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_MFHNA5LHEeGc3OFlLS8sJA" x="70" y="20"/>
+        </children>
+        <children xmi:id="_MFIbIJLHEeGc3OFlLS8sJA" type="State" element="_MFHNBJLHEeGc3OFlLS8sJA">
+          <children xsi:type="notation:DecorationNode" xmi:id="_MFJCMJLHEeGc3OFlLS8sJA" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_MFJpQJLHEeGc3OFlLS8sJA"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_MFJpQZLHEeGc3OFlLS8sJA"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_MFKQUJLHEeGc3OFlLS8sJA" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_MFKQUZLHEeGc3OFlLS8sJA" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_MFKQUpLHEeGc3OFlLS8sJA"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_MFK3YJLHEeGc3OFlLS8sJA" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_MFIbIZLHEeGc3OFlLS8sJA" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_MFIbIpLHEeGc3OFlLS8sJA"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_MFLecJLHEeGc3OFlLS8sJA"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_MFLecZLHEeGc3OFlLS8sJA" x="70" y="79"/>
+        </children>
+        <children xmi:id="_P5alEJLHEeGc3OFlLS8sJA" type="State" element="_P5KGYJLHEeGc3OFlLS8sJA">
+          <children xsi:type="notation:DecorationNode" xmi:id="_P5bzMJLHEeGc3OFlLS8sJA" type="StateName">
+            <styles xsi:type="notation:ShapeStyle" xmi:id="_P5bzMZLHEeGc3OFlLS8sJA"/>
+            <layoutConstraint xsi:type="notation:Location" xmi:id="_P5caQJLHEeGc3OFlLS8sJA"/>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_P5caQZLHEeGc3OFlLS8sJA" type="StateTextCompartment">
+            <children xsi:type="notation:Shape" xmi:id="_P5caQpLHEeGc3OFlLS8sJA" type="StateTextCompartmentExpression" fontName="Verdana" lineColor="4210752">
+              <layoutConstraint xsi:type="notation:Bounds" xmi:id="_P5caQ5LHEeGc3OFlLS8sJA"/>
+            </children>
+          </children>
+          <children xsi:type="notation:Compartment" xmi:id="_P5dBUJLHEeGc3OFlLS8sJA" type="StateFigureCompartment"/>
+          <styles xsi:type="notation:ShapeStyle" xmi:id="_P5alEZLHEeGc3OFlLS8sJA" fontName="Verdana" fillColor="15981773" lineColor="12632256"/>
+          <styles xsi:type="notation:FontStyle" xmi:id="_P5alEpLHEeGc3OFlLS8sJA"/>
+          <styles xsi:type="notation:BooleanValueStyle" xmi:id="_P5dBUZLHEeGc3OFlLS8sJA"/>
+          <layoutConstraint xsi:type="notation:Bounds" xmi:id="_P5alE5LHEeGc3OFlLS8sJA" x="234" y="82"/>
+        </children>
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_MFC7kZLHEeGc3OFlLS8sJA"/>
+      </children>
+      <styles xsi:type="notation:ShapeStyle" xmi:id="_MEgJAZLHEeGc3OFlLS8sJA" fontName="Verdana" fillColor="15790320" lineColor="12632256"/>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_MFEwwJLHEeGc3OFlLS8sJA" x="220" y="10" width="400" height="400"/>
+    </children>
+    <children xsi:type="notation:Shape" xmi:id="_MFQ-AJLHEeGc3OFlLS8sJA" type="StatechartText" fontName="Verdana" lineColor="4210752">
+      <children xsi:type="notation:DecorationNode" xmi:id="_MFRlEJLHEeGc3OFlLS8sJA" type="StatechartName">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_MFRlEZLHEeGc3OFlLS8sJA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_MFRlEpLHEeGc3OFlLS8sJA"/>
+      </children>
+      <children xsi:type="notation:Shape" xmi:id="_MFRlE5LHEeGc3OFlLS8sJA" type="StatechartTextExpression" fontName="Verdana" lineColor="4210752">
+        <layoutConstraint xsi:type="notation:Bounds" xmi:id="_MFRlFJLHEeGc3OFlLS8sJA"/>
+      </children>
+      <layoutConstraint xsi:type="notation:Bounds" xmi:id="_MFSzMJLHEeGc3OFlLS8sJA" x="10" y="10" width="200" height="400"/>
+    </children>
+    <styles xsi:type="notation:DiagramStyle" xmi:id="_METUsJLHEeGc3OFlLS8sJA"/>
+    <edges xmi:id="_MFOhwJLHEeGc3OFlLS8sJA" type="Transition" element="_MFMFgJLHEeGc3OFlLS8sJA" source="_MFFX0JLHEeGc3OFlLS8sJA" target="_MFIbIJLHEeGc3OFlLS8sJA">
+      <children xsi:type="notation:DecorationNode" xmi:id="_MFPv4JLHEeGc3OFlLS8sJA" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_MFPv4ZLHEeGc3OFlLS8sJA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_MFPv4pLHEeGc3OFlLS8sJA" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_MFOhwZLHEeGc3OFlLS8sJA" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_MFPI0JLHEeGc3OFlLS8sJA" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_MFOhwpLHEeGc3OFlLS8sJA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    </edges>
+    <edges xmi:id="_QfVVkJLHEeGc3OFlLS8sJA" type="Transition" element="_QfOn4JLHEeGc3OFlLS8sJA" source="_MFIbIJLHEeGc3OFlLS8sJA" target="_P5alEJLHEeGc3OFlLS8sJA">
+      <children xsi:type="notation:DecorationNode" xmi:id="_QfV8oZLHEeGc3OFlLS8sJA" type="TransitionExpression">
+        <styles xsi:type="notation:ShapeStyle" xmi:id="_QfV8opLHEeGc3OFlLS8sJA"/>
+        <layoutConstraint xsi:type="notation:Location" xmi:id="_QfWjsJLHEeGc3OFlLS8sJA" y="10"/>
+      </children>
+      <styles xsi:type="notation:ConnectorStyle" xmi:id="_QfVVkZLHEeGc3OFlLS8sJA" lineColor="4210752"/>
+      <styles xsi:type="notation:FontStyle" xmi:id="_QfV8oJLHEeGc3OFlLS8sJA" fontName="Verdana"/>
+      <bendpoints xsi:type="notation:RelativeBendpoints" xmi:id="_QfVVkpLHEeGc3OFlLS8sJA" points="[33, 2, -146, -11]$[174, -12, -5, -25]"/>
+      <sourceAnchor xsi:type="notation:IdentityAnchor" xmi:id="_QfjYAJLHEeGc3OFlLS8sJA" id="(0.075,0.30357142857142855)"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>

+ 116 - 0
test-plugins/org.yakindu.sct.generator.java.test/src/org/yakindu/sct/generator/java/JavaSCTGeneratorTest.java

@@ -0,0 +1,116 @@
+/**
+ * Copyright (c) 2012 committers of YAKINDU and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     committers of YAKINDU - initial API and implementation
+ */
+package org.yakindu.sct.generator.java;
+
+import static util.TestModels.DEEP_HISTORY;
+import static util.TestModels.FEATURE_CALLS;
+import static util.TestModels.GUARD;
+import static util.TestModels.SIMPLE_HIERACHY;
+import static util.TestModels.STATECHART_LOCAL_REACTIONS;
+import static util.TestModels.STATE_ACTIVE;
+import static util.TestModels.VALUED_EVENTS;
+
+import java.util.List;
+import java.util.Locale;
+
+import javax.tools.Diagnostic;
+import javax.tools.Diagnostic.Kind;
+import javax.tools.JavaFileObject;
+
+import org.eclipse.xtext.junit4.InjectWith;
+import org.eclipse.xtext.junit4.XtextRunner;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.yakindu.sct.generator.java.util.AbstractJavaGeneratorTest;
+import org.yakindu.sct.generator.java.util.JavaGeneratorInjectionProvider;
+import org.yakindu.sct.model.sgraph.Statechart;
+
+import util.TestModels;
+
+import com.google.inject.Inject;
+
+/**
+ * These tests only check for compile errors, they don't check the behaviour of
+ * the generated Statemachine!
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+@RunWith(XtextRunner.class)
+@InjectWith(JavaGeneratorInjectionProvider.class)
+public class JavaSCTGeneratorTest extends AbstractJavaGeneratorTest {
+
+	@Inject
+	private TestModels models;
+
+	@Test
+	public void testGuardModel() throws Exception {
+		Statechart statechart = models.loadStatechartFromResource(GUARD);
+		failOnError(generateAndCompile(statechart));
+	}
+
+	@Test
+	public void testSimpleHierachyModel() throws Exception {
+		Statechart statechart = models
+				.loadStatechartFromResource(SIMPLE_HIERACHY);
+		failOnError(generateAndCompile(statechart));
+
+	}
+
+	@Test
+	public void testDeepHistoryModel() throws Exception {
+		Statechart statechart = models.loadStatechartFromResource(DEEP_HISTORY);
+		failOnError(generateAndCompile(statechart));
+
+	}
+
+	@Test
+	public void testStateActiveModel() throws Exception {
+		Statechart statechart = models.loadStatechartFromResource(STATE_ACTIVE);
+		failOnError(generateAndCompile(statechart));
+
+	}
+
+	@Test
+	public void testValuedEventsModel() throws Exception {
+		Statechart statechart = models
+				.loadStatechartFromResource(VALUED_EVENTS);
+		failOnError(generateAndCompile(statechart));
+
+	}
+
+	@Test
+	public void testFeatureCallsModel() throws Exception {
+		Statechart statechart = models
+				.loadStatechartFromResource(FEATURE_CALLS);
+		failOnError(generateAndCompile(statechart));
+
+	}
+
+	@Test
+	public void testStatechartLocalReactionsModel() throws Exception {
+		Statechart statechart = models
+				.loadStatechartFromResource(STATECHART_LOCAL_REACTIONS);
+		failOnError(generateAndCompile(statechart));
+
+	}
+
+	private void failOnError(
+			List<Diagnostic<? extends JavaFileObject>> testModel) {
+		for (Diagnostic<? extends JavaFileObject> diagnostic : testModel) {
+			if (diagnostic.getKind() == Kind.ERROR) {
+				Assert.fail(diagnostic.getMessage(Locale.getDefault()));
+			}
+		}
+	}
+
+}

+ 152 - 0
test-plugins/org.yakindu.sct.generator.java.test/src/org/yakindu/sct/generator/java/util/AbstractJavaGeneratorTest.java

@@ -0,0 +1,152 @@
+/**
+ * Copyright (c) 2012 committers of YAKINDU and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     committers of YAKINDU - initial API and implementation
+ */
+package org.yakindu.sct.generator.java.util;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.tools.Diagnostic;
+import javax.tools.DiagnosticCollector;
+import javax.tools.JavaCompiler;
+import javax.tools.JavaFileObject;
+import javax.tools.StandardJavaFileManager;
+import javax.tools.ToolProvider;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.junit.Assert;
+import org.junit.Before;
+import org.yakindu.sct.generator.core.util.GeneratorUtils;
+import org.yakindu.sct.generator.java.JavaSCTGenerator;
+import org.yakindu.sct.model.sgen.FeatureConfiguration;
+import org.yakindu.sct.model.sgen.FeatureParameter;
+import org.yakindu.sct.model.sgen.FeatureParameterValue;
+import org.yakindu.sct.model.sgen.FeatureType;
+import org.yakindu.sct.model.sgen.GeneratorEntry;
+import org.yakindu.sct.model.sgen.SGenFactory;
+import org.yakindu.sct.model.sgraph.Statechart;
+
+import com.google.inject.Inject;
+
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+public abstract class AbstractJavaGeneratorTest {
+
+	private static final String SRC_GEN = "src-gen";
+	private static final String TARGET_PROJECT = "targetProject";
+	private static final String CONTENT_TYPE = "statechart";
+	private static final String OUTLET_FEATURE = "Outlet";
+	private static final String TARGET_FOLDER = "targetFolder";
+
+	@Inject
+	protected JavaSCTGenerator generator;
+	private JavaCompiler compiler;
+
+	@Before
+	public void setup() {
+		compiler = ToolProvider.getSystemJavaCompiler();
+		Assert.assertNotNull("No JDK 1.06 found", compiler);
+	}
+
+	public List<Diagnostic<? extends JavaFileObject>> generateAndCompile(
+			Statechart statechart) throws Exception {
+
+		GeneratorEntry entry = createGeneratorEntry("JavaGeneratorProject",
+				SRC_GEN);
+		entry.setElementRef(statechart);
+		IProject targetProject = GeneratorUtils.getTargetProject(entry);
+		targetProject.delete(true, new NullProgressMonitor());
+		generator.generate(entry);
+		IFolder folder = targetProject.getFolder(SRC_GEN);
+		Iterable<File> javaSourceFiles = getJavaSourceFiles(folder);
+		return compile(javaSourceFiles);
+	}
+
+	private List<Diagnostic<? extends JavaFileObject>> compile(
+			Iterable<File> ioFiles) throws IOException {
+		StandardJavaFileManager fileManager = compiler.getStandardFileManager(
+				null, null, null);
+		try {
+			Iterable<? extends JavaFileObject> compilationUnits = fileManager
+					.getJavaFileObjectsFromFiles(ioFiles);
+			DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
+			compiler.getTask(null, fileManager, diagnostics, null, null,
+					compilationUnits).call();
+			return diagnostics.getDiagnostics();
+		} finally {
+			fileManager.close();
+		}
+	}
+
+	private GeneratorEntry createGeneratorEntry(String targetProject,
+			String targetFolder) {
+		GeneratorEntry entry = SGenFactory.eINSTANCE.createGeneratorEntry();
+		entry.setContentType(CONTENT_TYPE);
+		FeatureConfiguration config = SGenFactory.eINSTANCE
+				.createFeatureConfiguration();
+		FeatureType type = SGenFactory.eINSTANCE.createFeatureType();
+		type.setName(OUTLET_FEATURE);
+		config.setType(type);
+		FeatureParameterValue project = SGenFactory.eINSTANCE
+				.createFeatureParameterValue();
+		FeatureParameter projectParameter = SGenFactory.eINSTANCE
+				.createFeatureParameter();
+		projectParameter.setName(TARGET_PROJECT);
+		project.setParameter(projectParameter);
+		project.setValue(targetProject);
+		config.getParameterValues().add(project);
+		FeatureParameterValue targetFolderValue = SGenFactory.eINSTANCE
+				.createFeatureParameterValue();
+		FeatureParameter targetParameter = SGenFactory.eINSTANCE
+				.createFeatureParameter();
+		targetParameter.setName(TARGET_FOLDER);
+		targetFolderValue.setParameter(targetParameter);
+		targetFolderValue.setValue(targetFolder);
+		config.getParameterValues().add(targetFolderValue);
+		entry.getFeatures().add(config);
+		return entry;
+	}
+
+	private Iterable<File> getJavaSourceFiles(IResource folder)
+			throws CoreException {
+		List<IFile> files = new ArrayList<IFile>();
+		getFilesToCompile(folder, files);
+		List<File> ioFiles = new ArrayList<File>();
+		for (IFile iFile : files) {
+			ioFiles.add(iFile.getRawLocation().makeAbsolute().toFile());
+		}
+		return ioFiles;
+	}
+
+	private void getFilesToCompile(IResource resource, List<IFile> toAdd)
+			throws CoreException {
+		if (resource instanceof IFolder) {
+			IResource[] members = ((IFolder) resource).members();
+			for (IResource iResource : members) {
+				getFilesToCompile(iResource, toAdd);
+			}
+		} else if (resource instanceof IFile) {
+			if (resource.getFileExtension().equals("java")) {
+				toAdd.add((IFile) resource);
+			}
+		}
+	}
+
+}

+ 30 - 0
test-plugins/org.yakindu.sct.generator.java.test/src/org/yakindu/sct/generator/java/util/JavaGeneratorInjectionProvider.java

@@ -0,0 +1,30 @@
+/**
+ * Copyright (c) 2012 committers of YAKINDU and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     committers of YAKINDU - initial API and implementation
+ */
+package org.yakindu.sct.generator.java.util;
+
+import org.eclipse.xtext.junit4.IInjectorProvider;
+import org.yakindu.sct.model.sexec.transformation.SequencerModule;
+
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+public class JavaGeneratorInjectionProvider implements IInjectorProvider {
+
+	public Injector getInjector() {
+		return Guice.createInjector(new SequencerModule());
+	}
+
+}