Add tests

- Failed attempt to find failing tests for #216
  but then we can't ever have enought tests so
  stashing ongoing work here.
This commit is contained in:
Janne Valkealahti
2016-05-01 19:27:30 +01:00
parent e7c28c2353
commit 84197d6ce5
8 changed files with 450 additions and 0 deletions

View File

@@ -34,6 +34,7 @@ import org.springframework.statemachine.ObjectStateMachine;
import org.springframework.statemachine.StateMachineSystemConstants;
import org.springframework.statemachine.config.EnableStateMachine;
import org.springframework.statemachine.config.EnumStateMachineConfigurerAdapter;
import org.springframework.statemachine.config.StateMachineConfigurerAdapter;
import org.springframework.statemachine.config.builders.StateMachineStateConfigurer;
import org.springframework.statemachine.config.builders.StateMachineTransitionConfigurer;
@@ -120,6 +121,18 @@ public class EndStateTests extends AbstractStateMachineTests {
assertThat(machine.getState().getIds(), contains(TestStates.S1, TestStates.SF));
}
@Test
public void testMultipleTransitionsToSameEndState() {
context.register(Config5.class);
context.refresh();
}
@Test
public void testMultipleTransitionsToSameEndStateFromChoices() {
context.register(Config6.class);
context.refresh();
}
@Configuration
@EnableStateMachine
static class Config1 extends EnumStateMachineConfigurerAdapter<TestStates, TestEvents> {
@@ -347,4 +360,80 @@ public class EndStateTests extends AbstractStateMachineTests {
return new SyncTaskExecutor();
}
}
@Configuration
@EnableStateMachine
static class Config5 extends EnumStateMachineConfigurerAdapter<TestStates, TestEvents> {
@Override
public void configure(StateMachineStateConfigurer<TestStates, TestEvents> states) throws Exception {
states
.withStates()
.initial(TestStates.SI)
.state(TestStates.S1)
.state(TestStates.S2)
.end(TestStates.SF);
}
@Override
public void configure(StateMachineTransitionConfigurer<TestStates, TestEvents> transitions) throws Exception {
transitions
.withExternal()
.source(TestStates.SI)
.target(TestStates.S1)
.event(TestEvents.E1)
.and()
.withExternal()
.source(TestStates.SI)
.target(TestStates.S2)
.event(TestEvents.E2)
.and()
.withExternal()
.source(TestStates.S1)
.target(TestStates.SF)
.event(TestEvents.E3)
.and()
.withExternal()
.source(TestStates.S2)
.target(TestStates.SF)
.event(TestEvents.E3);
}
}
@Configuration
@EnableStateMachine
static class Config6 extends StateMachineConfigurerAdapter<String, String> {
@Override
public void configure(StateMachineStateConfigurer<String, String> states) throws Exception {
states
.withStates()
.initial("SI")
.choice("JOIN1")
.choice("JOIN2")
.end("SF");
}
@Override
public void configure(StateMachineTransitionConfigurer<String, String> transitions) throws Exception {
transitions
.withExternal()
.source("SI")
.target("JOIN1")
.event("E1")
.and()
.withExternal()
.source("SI")
.target("JOIN2")
.event("E2")
.and()
.withChoice()
.source("JOIN1")
.last("SF")
.and()
.withChoice()
.source("JOIN2")
.last("SF");
}
}
}

View File

@@ -566,6 +566,18 @@ public class UmlStateMachineModelFactoryTests extends AbstractUmlTests {
assertThat(stateMachine.getState().getIds(), containsInAnyOrder("S1"));
}
@Test
public void testSimpleFlatMultipleToEnds() throws Exception {
context.register(Config17.class);
context.refresh();
}
@Test
public void testSimpleFlatMultipleToEndsViachoices() throws Exception {
context.register(Config18.class);
context.refresh();
}
@Configuration
@EnableStateMachine
public static class Config2 extends StateMachineConfigurerAdapter<String, String> {
@@ -890,6 +902,40 @@ public class UmlStateMachineModelFactoryTests extends AbstractUmlTests {
}
}
@Configuration
@EnableStateMachine
public static class Config17 extends StateMachineConfigurerAdapter<String, String> {
@Override
public void configure(StateMachineModelConfigurer<String, String> model) throws Exception {
model
.withModel()
.factory(modelFactory());
}
@Bean
public StateMachineModelFactory<String, String> modelFactory() {
return new UmlStateMachineModelFactory("classpath:org/springframework/statemachine/uml/simple-flat-multiple-to-end.uml");
}
}
@Configuration
@EnableStateMachine
public static class Config18 extends StateMachineConfigurerAdapter<String, String> {
@Override
public void configure(StateMachineModelConfigurer<String, String> model) throws Exception {
model
.withModel()
.factory(modelFactory());
}
@Bean
public StateMachineModelFactory<String, String> modelFactory() {
return new UmlStateMachineModelFactory("classpath:org/springframework/statemachine/uml/simple-flat-multiple-to-end-viachoices.uml");
}
}
public static class LatchAction implements Action<String, String> {
CountDownLatch latch = new CountDownLatch(1);
@Override

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>

View File

@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8"?>
<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_3Vk8YQ-8EeaqleSKKcvuHQ" type="PapyrusUMLStateMachineDiagram" name="StateMachine Diagram" measurementUnit="Pixel">
<children xmi:type="notation:Shape" xmi:id="_3Vk8Yg-8EeaqleSKKcvuHQ" type="2000">
<children xmi:type="notation:DecorationNode" xmi:id="_3Vk8Yw-8EeaqleSKKcvuHQ" type="2001">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Vk8ZA-8EeaqleSKKcvuHQ" width="700" height="23"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_3Vk8ZQ-8EeaqleSKKcvuHQ" type="2002">
<children xmi:type="notation:Shape" xmi:id="_3Vk8Zg-8EeaqleSKKcvuHQ" type="3000">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3Vk8Zw-8EeaqleSKKcvuHQ" source="RegionAnnotationKey">
<details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3Vk8aA-8EeaqleSKKcvuHQ" key="RegionZoneKey" value=""/>
</eAnnotations>
<children xmi:type="notation:DecorationNode" xmi:id="_3Vk8aQ-8EeaqleSKKcvuHQ" type="3002">
<children xmi:type="notation:Shape" xmi:id="_5hO7oA-8EeaqleSKKcvuHQ" type="6000">
<children xmi:type="notation:DecorationNode" xmi:id="_5hO7og-8EeaqleSKKcvuHQ" type="6001"/>
<children xmi:type="notation:DecorationNode" xmi:id="_5hO7ow-8EeaqleSKKcvuHQ" type="19003">
<layoutConstraint xmi:type="notation:Location" xmi:id="_5hO7pA-8EeaqleSKKcvuHQ" x="40"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_5hO7pQ-8EeaqleSKKcvuHQ" type="6002">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_5hO7pg-8EeaqleSKKcvuHQ"/>
</children>
<element xmi:type="uml:State" href="simple-flat-multiple-to-end-viachoices.uml#_5hNGcA-8EeaqleSKKcvuHQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_5hO7oQ-8EeaqleSKKcvuHQ" x="163" y="65"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_7PhCYA-8EeaqleSKKcvuHQ" type="8000">
<children xmi:type="notation:DecorationNode" xmi:id="_7PhCYg-8EeaqleSKKcvuHQ" type="8001">
<layoutConstraint xmi:type="notation:Location" xmi:id="_7PhCYw-8EeaqleSKKcvuHQ" x="25" y="3"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_7PhCZA-8EeaqleSKKcvuHQ" type="8002">
<layoutConstraint xmi:type="notation:Location" xmi:id="_7PhCZQ-8EeaqleSKKcvuHQ" x="25" y="-10"/>
</children>
<element xmi:type="uml:Pseudostate" href="simple-flat-multiple-to-end-viachoices.uml#_7PemIA-8EeaqleSKKcvuHQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_7PhCYQ-8EeaqleSKKcvuHQ" x="48" y="76"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_9Z8SkA-8EeaqleSKKcvuHQ" type="11000">
<children xmi:type="notation:DecorationNode" xmi:id="_9Z8Skg-8EeaqleSKKcvuHQ" type="11001">
<layoutConstraint xmi:type="notation:Location" xmi:id="_9Z8Skw-8EeaqleSKKcvuHQ" x="-1" y="-28"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_9Z8SlA-8EeaqleSKKcvuHQ" type="11002">
<layoutConstraint xmi:type="notation:Location" xmi:id="_9Z8SlQ-8EeaqleSKKcvuHQ" x="25" y="-10"/>
</children>
<element xmi:type="uml:Pseudostate" href="simple-flat-multiple-to-end-viachoices.uml#_9Z4oMA-8EeaqleSKKcvuHQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Z8SkQ-8EeaqleSKKcvuHQ" x="301" y="43"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_--DwsA-8EeaqleSKKcvuHQ" type="11000">
<children xmi:type="notation:DecorationNode" xmi:id="_--Dwsg-8EeaqleSKKcvuHQ" type="11001">
<layoutConstraint xmi:type="notation:Location" xmi:id="_--Dwsw-8EeaqleSKKcvuHQ" x="-5" y="40"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_--EXwA-8EeaqleSKKcvuHQ" type="11002">
<layoutConstraint xmi:type="notation:Location" xmi:id="_--EXwQ-8EeaqleSKKcvuHQ" x="25" y="-10"/>
</children>
<element xmi:type="uml:Pseudostate" href="simple-flat-multiple-to-end-viachoices.uml#_-9_fQA-8EeaqleSKKcvuHQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_--DwsQ-8EeaqleSKKcvuHQ" x="301" y="112"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_DdHV8A-9EeaqleSKKcvuHQ" type="5000">
<children xmi:type="notation:DecorationNode" xmi:id="_DdHV8g-9EeaqleSKKcvuHQ" type="5001">
<layoutConstraint xmi:type="notation:Location" xmi:id="_DdHV8w-9EeaqleSKKcvuHQ" x="25" y="3"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_DdHV9A-9EeaqleSKKcvuHQ" type="5002">
<layoutConstraint xmi:type="notation:Location" xmi:id="_DdHV9Q-9EeaqleSKKcvuHQ" x="25" y="-10"/>
</children>
<element xmi:type="uml:FinalState" href="simple-flat-multiple-to-end-viachoices.uml#_DdCdcA-9EeaqleSKKcvuHQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_DdHV8Q-9EeaqleSKKcvuHQ" x="470" y="78"/>
</children>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Vk8ag-8EeaqleSKKcvuHQ"/>
</children>
<element xmi:type="uml:Region" href="simple-flat-multiple-to-end-viachoices.uml#_3Vk8YA-8EeaqleSKKcvuHQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Vk8aw-8EeaqleSKKcvuHQ" width="700" height="287"/>
</children>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Vk8bA-8EeaqleSKKcvuHQ" y="23" width="700" height="287"/>
</children>
<element xmi:type="uml:StateMachine" href="simple-flat-multiple-to-end-viachoices.uml#_3VkVUA-8EeaqleSKKcvuHQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Vk8bQ-8EeaqleSKKcvuHQ" x="30" y="30" width="700" height="310"/>
</children>
<styles xmi:type="notation:StringValueStyle" xmi:id="_3Vk8bg-8EeaqleSKKcvuHQ" name="diagram_compatibility_version" stringValue="1.1.0"/>
<styles xmi:type="notation:DiagramStyle" xmi:id="_3Vk8bw-8EeaqleSKKcvuHQ"/>
<styles xmi:type="style:PapyrusViewStyle" xmi:id="_3Vk8cA-8EeaqleSKKcvuHQ">
<owner xmi:type="uml:Model" href="simple-flat-multiple-to-end-viachoices.uml#_3Vh5EA-8EeaqleSKKcvuHQ"/>
</styles>
<element xmi:type="uml:StateMachine" href="simple-flat-multiple-to-end-viachoices.uml#_3VkVUA-8EeaqleSKKcvuHQ"/>
<edges xmi:type="notation:Connector" xmi:id="_82iqkA-8EeaqleSKKcvuHQ" type="7000" source="_7PhCYA-8EeaqleSKKcvuHQ" target="_5hO7oA-8EeaqleSKKcvuHQ">
<children xmi:type="notation:DecorationNode" xmi:id="_82iqkw-8EeaqleSKKcvuHQ" type="7001">
<layoutConstraint xmi:type="notation:Location" xmi:id="_82iqlA-8EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_82iqlQ-8EeaqleSKKcvuHQ" type="7002">
<layoutConstraint xmi:type="notation:Location" xmi:id="_82iqlg-8EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_82iqlw-8EeaqleSKKcvuHQ" type="7003">
<layoutConstraint xmi:type="notation:Location" xmi:id="_82iqmA-8EeaqleSKKcvuHQ" y="60"/>
</children>
<styles xmi:type="notation:FontStyle" xmi:id="_82iqkQ-8EeaqleSKKcvuHQ"/>
<element xmi:type="uml:Transition" href="simple-flat-multiple-to-end-viachoices.uml#_82eZIA-8EeaqleSKKcvuHQ"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_82iqkg-8EeaqleSKKcvuHQ" points="[8, -1, -103, 0]$[105, -3, -6, -2]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_82sbkA-8EeaqleSKKcvuHQ" id="(1.0,0.45)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_82sbkQ-8EeaqleSKKcvuHQ" id="(0.0,0.425531914893617)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_Eko-sA-9EeaqleSKKcvuHQ" type="7000" source="_5hO7oA-8EeaqleSKKcvuHQ" target="_9Z8SkA-8EeaqleSKKcvuHQ">
<children xmi:type="notation:DecorationNode" xmi:id="_Eko-sw-9EeaqleSKKcvuHQ" type="7001">
<layoutConstraint xmi:type="notation:Location" xmi:id="_Eko-tA-9EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_Eko-tQ-9EeaqleSKKcvuHQ" type="7002">
<layoutConstraint xmi:type="notation:Location" xmi:id="_Eko-tg-9EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_Eko-tw-9EeaqleSKKcvuHQ" type="7003">
<layoutConstraint xmi:type="notation:Location" xmi:id="_Eko-uA-9EeaqleSKKcvuHQ" y="60"/>
</children>
<styles xmi:type="notation:FontStyle" xmi:id="_Eko-sQ-9EeaqleSKKcvuHQ"/>
<element xmi:type="uml:Transition" href="simple-flat-multiple-to-end-viachoices.uml#_EkiRAA-9EeaqleSKKcvuHQ"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Eko-sg-9EeaqleSKKcvuHQ" points="[40, 17, -108, 31]$[144, -15, -4, -1]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ek7SkA-9EeaqleSKKcvuHQ" id="(1.0,0.3404255319148936)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ek7SkQ-9EeaqleSKKcvuHQ" id="(0.0,0.5)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_FLxQIA-9EeaqleSKKcvuHQ" type="7000" source="_5hO7oA-8EeaqleSKKcvuHQ" target="_--DwsA-8EeaqleSKKcvuHQ">
<children xmi:type="notation:DecorationNode" xmi:id="_FLxQIw-9EeaqleSKKcvuHQ" type="7001">
<layoutConstraint xmi:type="notation:Location" xmi:id="_FLxQJA-9EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_FLxQJQ-9EeaqleSKKcvuHQ" type="7002">
<layoutConstraint xmi:type="notation:Location" xmi:id="_FLxQJg-9EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_FLxQJw-9EeaqleSKKcvuHQ" type="7003">
<layoutConstraint xmi:type="notation:Location" xmi:id="_FLxQKA-9EeaqleSKKcvuHQ" y="60"/>
</children>
<styles xmi:type="notation:FontStyle" xmi:id="_FLxQIQ-9EeaqleSKKcvuHQ"/>
<element xmi:type="uml:Transition" href="simple-flat-multiple-to-end-viachoices.uml#_FLp7YA-9EeaqleSKKcvuHQ"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FLxQIg-9EeaqleSKKcvuHQ" points="[40, 15, -106, -41]$[141, 55, -5, -1]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FMEyIA-9EeaqleSKKcvuHQ" id="(1.0,0.723404255319149)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FMEyIQ-9EeaqleSKKcvuHQ" id="(0.0,0.35)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_Fux2kA-9EeaqleSKKcvuHQ" type="7000" source="_9Z8SkA-8EeaqleSKKcvuHQ" target="_DdHV8A-9EeaqleSKKcvuHQ">
<children xmi:type="notation:DecorationNode" xmi:id="_Fux2kw-9EeaqleSKKcvuHQ" type="7001">
<layoutConstraint xmi:type="notation:Location" xmi:id="_Fux2lA-9EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_Fux2lQ-9EeaqleSKKcvuHQ" type="7002">
<layoutConstraint xmi:type="notation:Location" xmi:id="_Fux2lg-9EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_Fux2lw-9EeaqleSKKcvuHQ" type="7003">
<layoutConstraint xmi:type="notation:Location" xmi:id="_Fux2mA-9EeaqleSKKcvuHQ" y="60"/>
</children>
<styles xmi:type="notation:FontStyle" xmi:id="_Fux2kQ-9EeaqleSKKcvuHQ"/>
<element xmi:type="uml:Transition" href="simple-flat-multiple-to-end-viachoices.uml#_FurI4A-9EeaqleSKKcvuHQ"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Fux2kg-9EeaqleSKKcvuHQ" points="[17, 4, -132, -31]$[157, 35, 8, 0]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fu-q4A-9EeaqleSKKcvuHQ" id="(1.0,0.7)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Fu-q4Q-9EeaqleSKKcvuHQ" id="(0.0,0.3)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_GNxfsA-9EeaqleSKKcvuHQ" type="7000" source="_--DwsA-8EeaqleSKKcvuHQ" target="_DdHV8A-9EeaqleSKKcvuHQ">
<children xmi:type="notation:DecorationNode" xmi:id="_GNxfsw-9EeaqleSKKcvuHQ" type="7001">
<layoutConstraint xmi:type="notation:Location" xmi:id="_GNxftA-9EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_GNxftQ-9EeaqleSKKcvuHQ" type="7002">
<layoutConstraint xmi:type="notation:Location" xmi:id="_GNxftg-9EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_GNxftw-9EeaqleSKKcvuHQ" type="7003">
<layoutConstraint xmi:type="notation:Location" xmi:id="_GNxfuA-9EeaqleSKKcvuHQ" y="60"/>
</children>
<styles xmi:type="notation:FontStyle" xmi:id="_GNxfsQ-9EeaqleSKKcvuHQ"/>
<element xmi:type="uml:Transition" href="simple-flat-multiple-to-end-viachoices.uml#_GNpj4A-9EeaqleSKKcvuHQ"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GNxfsg-9EeaqleSKKcvuHQ" points="[16, -5, -133, 29]$[151, -43, 2, -9]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GOBXUA-9EeaqleSKKcvuHQ" id="(1.0,0.05)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GOBXUQ-9EeaqleSKKcvuHQ" id="(0.0,0.4)"/>
</edges>
</notation:Diagram>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_3Vh5EA-8EeaqleSKKcvuHQ" name="RootElement">
<packagedElement xmi:type="uml:StateMachine" xmi:id="_3VkVUA-8EeaqleSKKcvuHQ" name="StateMachine">
<region xmi:type="uml:Region" xmi:id="_3Vk8YA-8EeaqleSKKcvuHQ" name="Region1">
<transition xmi:type="uml:Transition" xmi:id="_82eZIA-8EeaqleSKKcvuHQ" source="_7PemIA-8EeaqleSKKcvuHQ" target="_5hNGcA-8EeaqleSKKcvuHQ"/>
<transition xmi:type="uml:Transition" xmi:id="_EkiRAA-9EeaqleSKKcvuHQ" source="_5hNGcA-8EeaqleSKKcvuHQ" target="_9Z4oMA-8EeaqleSKKcvuHQ"/>
<transition xmi:type="uml:Transition" xmi:id="_FLp7YA-9EeaqleSKKcvuHQ" source="_5hNGcA-8EeaqleSKKcvuHQ" target="_-9_fQA-8EeaqleSKKcvuHQ"/>
<transition xmi:type="uml:Transition" xmi:id="_FurI4A-9EeaqleSKKcvuHQ" source="_9Z4oMA-8EeaqleSKKcvuHQ" target="_DdCdcA-9EeaqleSKKcvuHQ"/>
<transition xmi:type="uml:Transition" xmi:id="_GNpj4A-9EeaqleSKKcvuHQ" source="_-9_fQA-8EeaqleSKKcvuHQ" target="_DdCdcA-9EeaqleSKKcvuHQ"/>
<subvertex xmi:type="uml:State" xmi:id="_5hNGcA-8EeaqleSKKcvuHQ" name="S1"/>
<subvertex xmi:type="uml:Pseudostate" xmi:id="_7PemIA-8EeaqleSKKcvuHQ" name=""/>
<subvertex xmi:type="uml:Pseudostate" xmi:id="_9Z4oMA-8EeaqleSKKcvuHQ" name="CHOICE1" kind="choice"/>
<subvertex xmi:type="uml:Pseudostate" xmi:id="_-9_fQA-8EeaqleSKKcvuHQ" name="CHOICE2" kind="choice"/>
<subvertex xmi:type="uml:FinalState" xmi:id="_DdCdcA-9EeaqleSKKcvuHQ" name="FINAL"/>
</region>
</packagedElement>
</uml:Model>

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>

View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8"?>
<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_BmqAEQ-8EeaqleSKKcvuHQ" type="PapyrusUMLStateMachineDiagram" name="StateMachine Diagram" measurementUnit="Pixel">
<children xmi:type="notation:Shape" xmi:id="_BmqAEg-8EeaqleSKKcvuHQ" type="2000">
<children xmi:type="notation:DecorationNode" xmi:id="_BmqAEw-8EeaqleSKKcvuHQ" type="2001">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_BmqAFA-8EeaqleSKKcvuHQ" width="700" height="23"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_BmqAFQ-8EeaqleSKKcvuHQ" type="2002">
<children xmi:type="notation:Shape" xmi:id="_BmqAFg-8EeaqleSKKcvuHQ" type="3000">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BmqAFw-8EeaqleSKKcvuHQ" source="RegionAnnotationKey">
<details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BmqAGA-8EeaqleSKKcvuHQ" key="RegionZoneKey" value=""/>
</eAnnotations>
<children xmi:type="notation:DecorationNode" xmi:id="_BmqAGQ-8EeaqleSKKcvuHQ" type="3002">
<children xmi:type="notation:Shape" xmi:id="_QGREQA-8EeaqleSKKcvuHQ" type="6000">
<children xmi:type="notation:DecorationNode" xmi:id="_QGREQg-8EeaqleSKKcvuHQ" type="6001">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_Rjmk8A-8EeaqleSKKcvuHQ" width="68"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_QGREQw-8EeaqleSKKcvuHQ" type="19003">
<layoutConstraint xmi:type="notation:Location" xmi:id="_QGRERA-8EeaqleSKKcvuHQ" x="40"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_QGRERQ-8EeaqleSKKcvuHQ" type="6002">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_QGRERg-8EeaqleSKKcvuHQ" y="-1" width="68"/>
</children>
<element xmi:type="uml:State" href="simple-flat-multiple-to-end.uml#_QGOoAA-8EeaqleSKKcvuHQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_QGREQQ-8EeaqleSKKcvuHQ" x="110" y="45" width="68"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_SHRSsA-8EeaqleSKKcvuHQ" type="8000">
<children xmi:type="notation:DecorationNode" xmi:id="_SHRSsg-8EeaqleSKKcvuHQ" type="8001">
<layoutConstraint xmi:type="notation:Location" xmi:id="_SHRSsw-8EeaqleSKKcvuHQ" x="25" y="3"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_SHRStA-8EeaqleSKKcvuHQ" type="8002">
<layoutConstraint xmi:type="notation:Location" xmi:id="_SHRStQ-8EeaqleSKKcvuHQ" x="25" y="-10"/>
</children>
<element xmi:type="uml:Pseudostate" href="simple-flat-multiple-to-end.uml#_SHO2cA-8EeaqleSKKcvuHQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_SHRSsQ-8EeaqleSKKcvuHQ" x="32" y="50"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_XSG_4A-8EeaqleSKKcvuHQ" type="5000">
<children xmi:type="notation:DecorationNode" xmi:id="_XSG_4g-8EeaqleSKKcvuHQ" type="5001">
<layoutConstraint xmi:type="notation:Location" xmi:id="_XSG_4w-8EeaqleSKKcvuHQ" x="25" y="3"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_XSG_5A-8EeaqleSKKcvuHQ" type="5002">
<layoutConstraint xmi:type="notation:Location" xmi:id="_XSG_5Q-8EeaqleSKKcvuHQ" x="25" y="-10"/>
</children>
<element xmi:type="uml:FinalState" href="simple-flat-multiple-to-end.uml#_XSDVgA-8EeaqleSKKcvuHQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_XSG_4Q-8EeaqleSKKcvuHQ" x="324" y="38"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_YutgwA-8EeaqleSKKcvuHQ" type="5000">
<children xmi:type="notation:DecorationNode" xmi:id="_Yutgwg-8EeaqleSKKcvuHQ" type="5001">
<layoutConstraint xmi:type="notation:Location" xmi:id="_Yutgww-8EeaqleSKKcvuHQ" x="25" y="3"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_YutgxA-8EeaqleSKKcvuHQ" type="5002">
<layoutConstraint xmi:type="notation:Location" xmi:id="_YutgxQ-8EeaqleSKKcvuHQ" x="25" y="-10"/>
</children>
<element xmi:type="uml:FinalState" href="simple-flat-multiple-to-end.uml#_YupPUA-8EeaqleSKKcvuHQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_YutgwQ-8EeaqleSKKcvuHQ" x="324" y="92"/>
</children>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_BmqAGg-8EeaqleSKKcvuHQ"/>
</children>
<element xmi:type="uml:Region" href="simple-flat-multiple-to-end.uml#_BmqAEA-8EeaqleSKKcvuHQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_BmqAGw-8EeaqleSKKcvuHQ" width="700" height="287"/>
</children>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_BmqAHA-8EeaqleSKKcvuHQ" y="23" width="700" height="287"/>
</children>
<element xmi:type="uml:StateMachine" href="simple-flat-multiple-to-end.uml#_BmpZAA-8EeaqleSKKcvuHQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_BmqAHQ-8EeaqleSKKcvuHQ" x="30" y="30" width="700" height="310"/>
</children>
<styles xmi:type="notation:StringValueStyle" xmi:id="_BmqAHg-8EeaqleSKKcvuHQ" name="diagram_compatibility_version" stringValue="1.1.0"/>
<styles xmi:type="notation:DiagramStyle" xmi:id="_BmqAHw-8EeaqleSKKcvuHQ"/>
<styles xmi:type="style:PapyrusViewStyle" xmi:id="_BmqAIA-8EeaqleSKKcvuHQ">
<owner xmi:type="uml:Model" href="simple-flat-multiple-to-end.uml#_Bmm8wA-8EeaqleSKKcvuHQ"/>
</styles>
<element xmi:type="uml:StateMachine" href="simple-flat-multiple-to-end.uml#_BmpZAA-8EeaqleSKKcvuHQ"/>
<edges xmi:type="notation:Connector" xmi:id="_Uh0pkA-8EeaqleSKKcvuHQ" type="7000" source="_SHRSsA-8EeaqleSKKcvuHQ" target="_QGREQA-8EeaqleSKKcvuHQ">
<children xmi:type="notation:DecorationNode" xmi:id="_Uh0pkw-8EeaqleSKKcvuHQ" type="7001">
<layoutConstraint xmi:type="notation:Location" xmi:id="_Uh0plA-8EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_Uh0plQ-8EeaqleSKKcvuHQ" type="7002">
<layoutConstraint xmi:type="notation:Location" xmi:id="_Uh0plg-8EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_Uh0plw-8EeaqleSKKcvuHQ" type="7003">
<layoutConstraint xmi:type="notation:Location" xmi:id="_Uh0pmA-8EeaqleSKKcvuHQ" y="60"/>
</children>
<styles xmi:type="notation:FontStyle" xmi:id="_Uh0pkQ-8EeaqleSKKcvuHQ"/>
<element xmi:type="uml:Transition" href="simple-flat-multiple-to-end.uml#_Uhw_MA-8EeaqleSKKcvuHQ"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Uh0pkg-8EeaqleSKKcvuHQ" points="[8, 0, -73, 0]$[68, -6, -13, -6]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Uh9zgA-8EeaqleSKKcvuHQ" id="(1.0,0.45)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Uh-akA-8EeaqleSKKcvuHQ" id="(0.0,0.2978723404255319)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_btWcIA-8EeaqleSKKcvuHQ" type="7000" source="_QGREQA-8EeaqleSKKcvuHQ" target="_XSG_4A-8EeaqleSKKcvuHQ">
<children xmi:type="notation:DecorationNode" xmi:id="_btXDMA-8EeaqleSKKcvuHQ" type="7001">
<layoutConstraint xmi:type="notation:Location" xmi:id="_btXDMQ-8EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_btXDMg-8EeaqleSKKcvuHQ" type="7002">
<layoutConstraint xmi:type="notation:Location" xmi:id="_btXDMw-8EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_btXDNA-8EeaqleSKKcvuHQ" type="7003">
<layoutConstraint xmi:type="notation:Location" xmi:id="_btXDNQ-8EeaqleSKKcvuHQ" y="60"/>
</children>
<styles xmi:type="notation:FontStyle" xmi:id="_btWcIQ-8EeaqleSKKcvuHQ"/>
<element xmi:type="uml:Transition" href="simple-flat-multiple-to-end.uml#_btQVgA-8EeaqleSKKcvuHQ"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_btWcIg-8EeaqleSKKcvuHQ" points="[13, -2, -156, 15]$[170, -9, 1, 8]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_btmTwA-8EeaqleSKKcvuHQ" id="(1.0,0.3829787234042553)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_btmTwQ-8EeaqleSKKcvuHQ" id="(0.0,0.6)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_cvkuIA-8EeaqleSKKcvuHQ" type="7000" source="_QGREQA-8EeaqleSKKcvuHQ" target="_YutgwA-8EeaqleSKKcvuHQ">
<children xmi:type="notation:DecorationNode" xmi:id="_cvkuIw-8EeaqleSKKcvuHQ" type="7001">
<layoutConstraint xmi:type="notation:Location" xmi:id="_cvkuJA-8EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_cvkuJQ-8EeaqleSKKcvuHQ" type="7002">
<layoutConstraint xmi:type="notation:Location" xmi:id="_cvkuJg-8EeaqleSKKcvuHQ"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_cvkuJw-8EeaqleSKKcvuHQ" type="7003">
<layoutConstraint xmi:type="notation:Location" xmi:id="_cvkuKA-8EeaqleSKKcvuHQ" y="60"/>
</children>
<styles xmi:type="notation:FontStyle" xmi:id="_cvkuIQ-8EeaqleSKKcvuHQ"/>
<element xmi:type="uml:Transition" href="simple-flat-multiple-to-end.uml#_cvengA-8EeaqleSKKcvuHQ"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cvkuIg-8EeaqleSKKcvuHQ" points="[68, 18, -156, -39]$[219, 65, -5, 8]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cv2a8A-8EeaqleSKKcvuHQ" id="(1.0,0.7021276595744681)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cv2a8Q-8EeaqleSKKcvuHQ" id="(0.0,0.55)"/>
</edges>
</notation:Diagram>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_Bmm8wA-8EeaqleSKKcvuHQ" name="RootElement">
<packagedElement xmi:type="uml:StateMachine" xmi:id="_BmpZAA-8EeaqleSKKcvuHQ" name="StateMachine">
<region xmi:type="uml:Region" xmi:id="_BmqAEA-8EeaqleSKKcvuHQ" name="Region1">
<transition xmi:type="uml:Transition" xmi:id="_Uhw_MA-8EeaqleSKKcvuHQ" source="_SHO2cA-8EeaqleSKKcvuHQ" target="_QGOoAA-8EeaqleSKKcvuHQ"/>
<transition xmi:type="uml:Transition" xmi:id="_btQVgA-8EeaqleSKKcvuHQ" source="_QGOoAA-8EeaqleSKKcvuHQ" target="_XSDVgA-8EeaqleSKKcvuHQ"/>
<transition xmi:type="uml:Transition" xmi:id="_cvengA-8EeaqleSKKcvuHQ" source="_QGOoAA-8EeaqleSKKcvuHQ" target="_YupPUA-8EeaqleSKKcvuHQ"/>
<subvertex xmi:type="uml:State" xmi:id="_QGOoAA-8EeaqleSKKcvuHQ" name="S1"/>
<subvertex xmi:type="uml:Pseudostate" xmi:id="_SHO2cA-8EeaqleSKKcvuHQ" name=""/>
<subvertex xmi:type="uml:FinalState" xmi:id="_XSDVgA-8EeaqleSKKcvuHQ" name="FINAL1"/>
<subvertex xmi:type="uml:FinalState" xmi:id="_YupPUA-8EeaqleSKKcvuHQ" name="FINAL2"/>
</region>
</packagedElement>
</uml:Model>