Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian W. Damus2017-06-14 17:06:06 +0000
committerChristian W. Damus2017-06-14 17:06:06 +0000
commit6683408a769f64f9bda5fd5631d0e7c0ff4708a5 (patch)
treebb5708b4f3d0239c343c26ac1e73c4870a41b2be
parentbe4d6534fad42d75c705b09290842dbd01bfe66e (diff)
parenta6106bebdf4c55341f4ce3bafdb4b28f131b3648 (diff)
downloadorg.eclipse.papyrus-rt-6683408a769f64f9bda5fd5631d0e7c0ff4708a5.tar.gz
org.eclipse.papyrus-rt-6683408a769f64f9bda5fd5631d0e7c0ff4708a5.tar.xz
org.eclipse.papyrus-rt-6683408a769f64f9bda5fd5631d0e7c0ff4708a5.zip
Merge master into committers/cdamus/bug506513
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions/.project11
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions/AmbiguousTransitions.di2
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions/AmbiguousTransitions.notation322
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions/AmbiguousTransitions.uml79
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/CMakeLists.txt36
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Makefile11
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/MakefileTop.mk49
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Protocol1.cc82
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Protocol1.hh32
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Top-connections.log0
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Top.cc213
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Top.hh60
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/TopControllers.cc76
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/TopControllers.hh18
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/TopMain.cc38
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/.project11
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/AmbiguousTransitions1.di2
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/AmbiguousTransitions1.notation370
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/AmbiguousTransitions1.uml105
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/CMakeLists.txt36
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Makefile11
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/MakefileTop.mk49
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol1.cc82
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol1.hh32
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol2.cc50
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol2.hh30
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Top-connections.log0
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Top.cc269
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Top.hh69
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/TopControllers.cc102
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/TopControllers.hh18
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/TopMain.cc38
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/.project11
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/AmbiguousTransitions2.di2
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/AmbiguousTransitions2.notation797
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/AmbiguousTransitions2.uml126
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/CMakeLists.txt36
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Makefile11
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/MakefileTop.mk49
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol1.cc82
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol1.hh32
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol2.cc82
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol2.hh32
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Top-connections.log0
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Top.cc485
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Top.hh95
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/TopControllers.cc102
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/TopControllers.hh18
-rw-r--r--models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/TopMain.cc38
-rw-r--r--plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/UMLPrettyPrinter.xtend80
-rw-r--r--plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/validation/PreUML2xtumlrtValidator.xtend101
-rw-r--r--plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.edit/.classpath4
-rw-r--r--plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.edit/META-INF/MANIFEST.MF2
-rw-r--r--plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare/.classpath2
-rw-r--r--plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare/META-INF/MANIFEST.MF2
-rw-r--r--plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/src/org/eclipse/papyrusrt/umlrt/tooling/diagram/statemachine/internal/editpolicies/Messages.java46
-rw-r--r--plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/src/org/eclipse/papyrusrt/umlrt/tooling/diagram/statemachine/internal/editpolicies/RTCustomStateNavigationEditPolicy.java43
-rw-r--r--plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/src/org/eclipse/papyrusrt/umlrt/tooling/diagram/statemachine/internal/editpolicies/messages.properties24
-rw-r--r--plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/META-INF/MANIFEST.MF4
-rw-r--r--plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/plugin.xml20
-rw-r--r--plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/src/org/eclipse/papyrusrt/umlrt/tooling/modelexplorer/preferences/CapsulePartDirectEditorConfiguration.java52
-rw-r--r--plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/src/org/eclipse/papyrusrt/umlrt/tooling/modelexplorer/preferences/RTParameterDirectEditorConfiguration.java52
-rw-r--r--plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTStateMachProfileUtil.xtend21
-rw-r--r--plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/ContainmentUtils.xtend11
-rw-r--r--tests/junit/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp.test/models/models_to_skip.txt1
-rw-r--r--tests/junit/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.tests/.classpath2
-rw-r--r--tests/junit/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.tests/META-INF/MANIFEST.MF2
67 files changed, 4746 insertions, 24 deletions
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions/.project b/models/tests/codepattern/statemachines/AmbiguousTransitions/.project
new file mode 100644
index 000000000..26eef1c4b
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>AmbiguousTransitions</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions/AmbiguousTransitions.di b/models/tests/codepattern/statemachines/AmbiguousTransitions/AmbiguousTransitions.di
new file mode 100644
index 000000000..47e812dba
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions/AmbiguousTransitions.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrusrt.umlrt.architecture"/>
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions/AmbiguousTransitions.notation b/models/tests/codepattern/statemachines/AmbiguousTransitions/AmbiguousTransitions.notation
new file mode 100644
index 000000000..0162b9aed
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions/AmbiguousTransitions.notation
@@ -0,0 +1,322 @@
+<?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: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/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_Slx7ME-xEeeBvLeqfpc2mw" type="CompositeStructure" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_SmOAEE-xEeeBvLeqfpc2mw" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SmRqcE-xEeeBvLeqfpc2mw" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SmRqcU-xEeeBvLeqfpc2mw" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SmRqck-xEeeBvLeqfpc2mw" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SmSRgE-xEeeBvLeqfpc2mw" type="Class_StructureCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SmSRgU-xEeeBvLeqfpc2mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SmSRgk-xEeeBvLeqfpc2mw"/>
+ </children>
+ <element xmi:type="uml:Class" href="AmbiguousTransitions.uml#_SdaCUE-xEeeBvLeqfpc2mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SmOAEU-xEeeBvLeqfpc2mw" x="40" y="40" width="500" height="250"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Slx7MU-xEeeBvLeqfpc2mw" name="diagram_compatibility_version" stringValue="1.3.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Slx7Mk-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_Slx7M0-xEeeBvLeqfpc2mw" diagramKindId="org.eclipse.papyrusrt.umlrt.tooling.diagram.common.UMLRTCapsuleStructure">
+ <owner xmi:type="uml:Class" href="AmbiguousTransitions.uml#_SdaCUE-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xmi:type="uml:Class" href="AmbiguousTransitions.uml#_SdaCUE-xEeeBvLeqfpc2mw"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_ZHQEIE-xEeeBvLeqfpc2mw" type="PapyrusUMLStateMachineDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_ZHQEIU-xEeeBvLeqfpc2mw" type="StateMachine_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZHQEIk-xEeeBvLeqfpc2mw" type="StateMachine_NameLabel">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZHQEI0-xEeeBvLeqfpc2mw" width="700" height="16"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZHQEJE-xEeeBvLeqfpc2mw" type="StateMachine_RegionCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_ZHQEJU-xEeeBvLeqfpc2mw" type="Region_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZHQEJk-xEeeBvLeqfpc2mw" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZHQEJ0-xEeeBvLeqfpc2mw" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZHQEKE-xEeeBvLeqfpc2mw" type="Region_SubvertexCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a7EyME-xEeeBvLeqfpc2mw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a7EyMU-xEeeBvLeqfpc2mw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_ajupME-xEeeBvLeqfpc2mw" type="Pseudostate_InitialShape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a7FZQE-xEeeBvLeqfpc2mw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a7FZQU-xEeeBvLeqfpc2mw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ajupMk-xEeeBvLeqfpc2mw" type="Pseudostate_InitialFloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ajvQQE-xEeeBvLeqfpc2mw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ajvQQU-xEeeBvLeqfpc2mw" type="Pseudostate_InitialStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ajvQQk-xEeeBvLeqfpc2mw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="AmbiguousTransitions.uml#_ZF9DoE-xEeeBvLeqfpc2mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ajupMU-xEeeBvLeqfpc2mw" x="9" y="-6"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ajvQQ0-xEeeBvLeqfpc2mw" type="State_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a7FZQk-xEeeBvLeqfpc2mw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a7FZQ0-xEeeBvLeqfpc2mw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ajv3UE-xEeeBvLeqfpc2mw" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ajv3UU-xEeeBvLeqfpc2mw" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ajv3Uk-xEeeBvLeqfpc2mw" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ajv3U0-xEeeBvLeqfpc2mw" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ajv3VE-xEeeBvLeqfpc2mw"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_ajzhsE-xEeeBvLeqfpc2mw" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ajzhsU-xEeeBvLeqfpc2mw"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions.uml#_ZGjgkE-xEeeBvLeqfpc2mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ajvQRE-xEeeBvLeqfpc2mw" x="129" y="134"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_amu54E-xEeeBvLeqfpc2mw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_amu54U-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_amu540-xEeeBvLeqfpc2mw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions.uml#_ZF9DoE-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_amu54k-xEeeBvLeqfpc2mw" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_and5sE-xEeeBvLeqfpc2mw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_and5sU-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_and5s0-xEeeBvLeqfpc2mw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions.uml#_ZGjgkE-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_and5sk-xEeeBvLeqfpc2mw" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cSOLUE-xEeeBvLeqfpc2mw" type="State_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cSOyYE-xEeeBvLeqfpc2mw" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cSOyYU-xEeeBvLeqfpc2mw" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cSOyYk-xEeeBvLeqfpc2mw" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cSOyY0-xEeeBvLeqfpc2mw" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cSOyZE-xEeeBvLeqfpc2mw"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_cSOyZU-xEeeBvLeqfpc2mw" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cSOyZk-xEeeBvLeqfpc2mw"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions.uml#_cRvqME-xEeeBvLeqfpc2mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cSOLUU-xEeeBvLeqfpc2mw" x="309" y="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cSf4I0-xEeeBvLeqfpc2mw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cSf4JE-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_cSf4Jk-xEeeBvLeqfpc2mw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions.uml#_cRvqME-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cSf4JU-xEeeBvLeqfpc2mw" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_c2mqwE-xEeeBvLeqfpc2mw" type="State_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_c2nR0E-xEeeBvLeqfpc2mw" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_c2nR0U-xEeeBvLeqfpc2mw" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_c2nR0k-xEeeBvLeqfpc2mw" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_c2nR00-xEeeBvLeqfpc2mw" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c2nR1E-xEeeBvLeqfpc2mw"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_c2nR1U-xEeeBvLeqfpc2mw" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c2nR1k-xEeeBvLeqfpc2mw"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions.uml#_c2JXwE-xEeeBvLeqfpc2mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c2mqwU-xEeeBvLeqfpc2mw" x="309" y="134"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_c24-o0-xEeeBvLeqfpc2mw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_c24-pE-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_c24-pk-xEeeBvLeqfpc2mw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions.uml#_c2JXwE-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c24-pU-xEeeBvLeqfpc2mw" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dXMPUE-xEeeBvLeqfpc2mw" type="State_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dXM2YE-xEeeBvLeqfpc2mw" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dXM2YU-xEeeBvLeqfpc2mw" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dXM2Yk-xEeeBvLeqfpc2mw" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dXM2Y0-xEeeBvLeqfpc2mw" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dXM2ZE-xEeeBvLeqfpc2mw"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_dXM2ZU-xEeeBvLeqfpc2mw" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dXM2Zk-xEeeBvLeqfpc2mw"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions.uml#_dWx_oE-xEeeBvLeqfpc2mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dXMPUU-xEeeBvLeqfpc2mw" x="309" y="214"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dXd8I0-xEeeBvLeqfpc2mw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dXd8JE-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_dXejME-xEeeBvLeqfpc2mw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions.uml#_dWx_oE-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dXd8JU-xEeeBvLeqfpc2mw" x="200"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZHQEKU-xEeeBvLeqfpc2mw"/>
+ </children>
+ <element xmi:type="uml:Region" href="AmbiguousTransitions.uml#_ZFuaIE-xEeeBvLeqfpc2mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZHQEKk-xEeeBvLeqfpc2mw" width="700" height="280"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ajh04E-xEeeBvLeqfpc2mw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ajh04U-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ajh040-xEeeBvLeqfpc2mw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Region" href="AmbiguousTransitions.uml#_ZFuaIE-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ajh04k-xEeeBvLeqfpc2mw" x="200"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZHQEK0-xEeeBvLeqfpc2mw" y="16" width="700" height="284"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="AmbiguousTransitions.uml#_ZE1pUE-xEeeBvLeqfpc2mw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZHQELE-xEeeBvLeqfpc2mw" x="30" y="30" width="700" height="300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ajG-IE-xEeeBvLeqfpc2mw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ajG-IU-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ajLPkE-xEeeBvLeqfpc2mw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:StateMachine" href="AmbiguousTransitions.uml#_ZE1pUE-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ajG-Ik-xEeeBvLeqfpc2mw" x="230" y="30"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ZHQELU-xEeeBvLeqfpc2mw" name="diagram_compatibility_version" stringValue="1.3.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ZHQELk-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_ZHQEL0-xEeeBvLeqfpc2mw" diagramKindId="org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine.UMLRTStateMachine">
+ <owner xmi:type="uml:StateMachine" href="AmbiguousTransitions.uml#_ZE1pUE-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xmi:type="uml:StateMachine" href="AmbiguousTransitions.uml#_ZE1pUE-xEeeBvLeqfpc2mw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_ajLPkU-xEeeBvLeqfpc2mw" type="StereotypeCommentLink" source="_ZHQEIU-xEeeBvLeqfpc2mw" target="_ajG-IE-xEeeBvLeqfpc2mw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ajLPkk-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ajL2ok-xEeeBvLeqfpc2mw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:StateMachine" href="AmbiguousTransitions.uml#_ZE1pUE-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ajLPk0-xEeeBvLeqfpc2mw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ajL2oE-xEeeBvLeqfpc2mw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ajL2oU-xEeeBvLeqfpc2mw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ajh05E-xEeeBvLeqfpc2mw" type="StereotypeCommentLink" source="_ZHQEJU-xEeeBvLeqfpc2mw" target="_ajh04E-xEeeBvLeqfpc2mw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ajh05U-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ajib8k-xEeeBvLeqfpc2mw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Region" href="AmbiguousTransitions.uml#_ZFuaIE-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ajh05k-xEeeBvLeqfpc2mw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ajib8E-xEeeBvLeqfpc2mw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ajib8U-xEeeBvLeqfpc2mw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_amu55E-xEeeBvLeqfpc2mw" type="StereotypeCommentLink" source="_ajupME-xEeeBvLeqfpc2mw" target="_amu54E-xEeeBvLeqfpc2mw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_amu55U-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_amu56U-xEeeBvLeqfpc2mw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions.uml#_ZF9DoE-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_amu55k-xEeeBvLeqfpc2mw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_amu550-xEeeBvLeqfpc2mw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_amu56E-xEeeBvLeqfpc2mw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_and5tE-xEeeBvLeqfpc2mw" type="StereotypeCommentLink" source="_ajvQQ0-xEeeBvLeqfpc2mw" target="_and5sE-xEeeBvLeqfpc2mw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_and5tU-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_and5uU-xEeeBvLeqfpc2mw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions.uml#_ZGjgkE-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_and5tk-xEeeBvLeqfpc2mw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_and5t0-xEeeBvLeqfpc2mw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_and5uE-xEeeBvLeqfpc2mw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_a5HqYE-xEeeBvLeqfpc2mw" type="Transition_Edge" source="_ajupME-xEeeBvLeqfpc2mw" target="_ajvQQ0-xEeeBvLeqfpc2mw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a-BYgE-xEeeBvLeqfpc2mw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a-B_kE-xEeeBvLeqfpc2mw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a5HqY0-xEeeBvLeqfpc2mw" type="Transition_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_bbW0wE-xEeeBvLeqfpc2mw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a5HqZE-xEeeBvLeqfpc2mw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a5IRcE-xEeeBvLeqfpc2mw" type="Transition_GuardLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_bb0HwE-xEeeBvLeqfpc2mw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a5IRcU-xEeeBvLeqfpc2mw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a5IRck-xEeeBvLeqfpc2mw" type="Transition_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_bcKGAE-xEeeBvLeqfpc2mw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a5IRc0-xEeeBvLeqfpc2mw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_a5HqYU-xEeeBvLeqfpc2mw"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions.uml#_ZG0mUE-xEeeBvLeqfpc2mw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_a5HqYk-xEeeBvLeqfpc2mw" points="[40, 46, -643984, -643984]$[40, 46, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a5IRdE-xEeeBvLeqfpc2mw" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a5IRdU-xEeeBvLeqfpc2mw" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cSgfME-xEeeBvLeqfpc2mw" type="StereotypeCommentLink" source="_cSOLUE-xEeeBvLeqfpc2mw" target="_cSf4I0-xEeeBvLeqfpc2mw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_cSgfMU-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_cSgfNU-xEeeBvLeqfpc2mw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions.uml#_cRvqME-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cSgfMk-xEeeBvLeqfpc2mw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cSgfM0-xEeeBvLeqfpc2mw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cSgfNE-xEeeBvLeqfpc2mw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_c25lsE-xEeeBvLeqfpc2mw" type="StereotypeCommentLink" source="_c2mqwE-xEeeBvLeqfpc2mw" target="_c24-o0-xEeeBvLeqfpc2mw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_c25lsU-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_c25ltU-xEeeBvLeqfpc2mw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions.uml#_c2JXwE-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_c25lsk-xEeeBvLeqfpc2mw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_c25ls0-xEeeBvLeqfpc2mw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_c25ltE-xEeeBvLeqfpc2mw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dXejMU-xEeeBvLeqfpc2mw" type="StereotypeCommentLink" source="_dXMPUE-xEeeBvLeqfpc2mw" target="_dXd8I0-xEeeBvLeqfpc2mw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_dXejMk-xEeeBvLeqfpc2mw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_dXejNk-xEeeBvLeqfpc2mw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions.uml#_dWx_oE-xEeeBvLeqfpc2mw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dXejM0-xEeeBvLeqfpc2mw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dXejNE-xEeeBvLeqfpc2mw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dXejNU-xEeeBvLeqfpc2mw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_fhtmIE-xEeeBvLeqfpc2mw" type="Transition_Edge" source="_ajvQQ0-xEeeBvLeqfpc2mw" target="_cSOLUE-xEeeBvLeqfpc2mw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_fhtmI0-xEeeBvLeqfpc2mw" type="Transition_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fhtmJE-xEeeBvLeqfpc2mw" x="-14" y="-10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fhtmJU-xEeeBvLeqfpc2mw" type="Transition_GuardLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fhtmJk-xEeeBvLeqfpc2mw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fhtmJ0-xEeeBvLeqfpc2mw" type="Transition_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fhtmKE-xEeeBvLeqfpc2mw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_fhtmIU-xEeeBvLeqfpc2mw"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions.uml#_fhOd8E-xEeeBvLeqfpc2mw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fhtmIk-xEeeBvLeqfpc2mw" points="[-14, 5, -198, 79]$[166, -75, -18, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fi9jUE-xEeeBvLeqfpc2mw" id="(0.75,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fi9jUU-xEeeBvLeqfpc2mw" id="(0.0,0.35)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_g7h4wE-xEeeBvLeqfpc2mw" type="Transition_Edge" source="_ajvQQ0-xEeeBvLeqfpc2mw" target="_c2mqwE-xEeeBvLeqfpc2mw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_g7h4w0-xEeeBvLeqfpc2mw" type="Transition_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_g7h4xE-xEeeBvLeqfpc2mw" x="-3" y="-15"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_g7h4xU-xEeeBvLeqfpc2mw" type="Transition_GuardLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_g7h4xk-xEeeBvLeqfpc2mw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_g7h4x0-xEeeBvLeqfpc2mw" type="Transition_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_g7h4yE-xEeeBvLeqfpc2mw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_g7h4wU-xEeeBvLeqfpc2mw"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions.uml#_g7KsYE-xEeeBvLeqfpc2mw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_g7h4wk-xEeeBvLeqfpc2mw" points="[11, 1, -154, 3]$[151, 1, -14, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g8p6IE-xEeeBvLeqfpc2mw" id="(0.725,0.475)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g8p6IU-xEeeBvLeqfpc2mw" id="(0.35,0.425)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_hn9g8E-xEeeBvLeqfpc2mw" type="Transition_Edge" source="_ajvQQ0-xEeeBvLeqfpc2mw" target="_dXMPUE-xEeeBvLeqfpc2mw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_hn-IAE-xEeeBvLeqfpc2mw" type="Transition_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hn-IAU-xEeeBvLeqfpc2mw" x="-4" y="-18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hn-IAk-xEeeBvLeqfpc2mw" type="Transition_GuardLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hn-IA0-xEeeBvLeqfpc2mw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hn-IBE-xEeeBvLeqfpc2mw" type="Transition_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hn-IBU-xEeeBvLeqfpc2mw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_hn9g8U-xEeeBvLeqfpc2mw"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions.uml#_hng1AE-xEeeBvLeqfpc2mw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hn9g8k-xEeeBvLeqfpc2mw" points="[5, 11, -167, -65]$[175, 91, 3, 15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hpIloE-xEeeBvLeqfpc2mw" id="(0.625,0.725)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hpIloU-xEeeBvLeqfpc2mw" id="(0.0,0.25)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions/AmbiguousTransitions.uml b/models/tests/codepattern/statemachines/AmbiguousTransitions/AmbiguousTransitions.uml
new file mode 100644
index 000000000..dc0f9f641
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions/AmbiguousTransitions.uml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:UMLRTStateMachines="http://www.eclipse.org/papyrus/umlrt/statemachine" xmlns:UMLRealTime="http://www.eclipse.org/papyrus/umlrt" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <uml:Model xmi:id="_xtAuYE-wEeeBvLeqfpc2mw" name="AmbiguousTransitions">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xtBVcE-wEeeBvLeqfpc2mw" source="http://www.eclipse.org/papyrus-rt/language/1.0.0">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xtBVcU-wEeeBvLeqfpc2mw" key="language" value="umlrt-cpp"/>
+ </eAnnotations>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SdaCUE-xEeeBvLeqfpc2mw" name="Top" classifierBehavior="_ZE1pUE-xEeeBvLeqfpc2mw" isActive="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_l6Tf4E-xEeeBvLeqfpc2mw" name="protocol1" visibility="public" type="_Vk2UYE-xEeeBvLeqfpc2mw" isOrdered="true" aggregation="composite" isBehavior="true" isService="true"/>
+ <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_ZE1pUE-xEeeBvLeqfpc2mw" name="StateMachine" isReentrant="false">
+ <region xmi:type="uml:Region" xmi:id="_ZFuaIE-xEeeBvLeqfpc2mw" name="Region">
+ <transition xmi:type="uml:Transition" xmi:id="_ZG0mUE-xEeeBvLeqfpc2mw" name="Initial" source="_ZF9DoE-xEeeBvLeqfpc2mw" target="_ZGjgkE-xEeeBvLeqfpc2mw"/>
+ <transition xmi:type="uml:Transition" xmi:id="_fhOd8E-xEeeBvLeqfpc2mw" kind="external" source="_ZGjgkE-xEeeBvLeqfpc2mw" target="_cRvqME-xEeeBvLeqfpc2mw">
+ <trigger xmi:type="uml:Trigger" xmi:id="_ovOekE-xEeeBvLeqfpc2mw" event="_WxCasE-xEeeBvLeqfpc2mw" port="_l6Tf4E-xEeeBvLeqfpc2mw"/>
+ </transition>
+ <transition xmi:type="uml:Transition" xmi:id="_g7KsYE-xEeeBvLeqfpc2mw" kind="external" source="_ZGjgkE-xEeeBvLeqfpc2mw" target="_c2JXwE-xEeeBvLeqfpc2mw">
+ <trigger xmi:type="uml:Trigger" xmi:id="_q5_F8E-xEeeBvLeqfpc2mw" event="_YCIPIE-xEeeBvLeqfpc2mw" port="_l6Tf4E-xEeeBvLeqfpc2mw"/>
+ </transition>
+ <transition xmi:type="uml:Transition" xmi:id="_hng1AE-xEeeBvLeqfpc2mw" kind="external" source="_ZGjgkE-xEeeBvLeqfpc2mw" target="_dWx_oE-xEeeBvLeqfpc2mw">
+ <trigger xmi:type="uml:Trigger" xmi:id="_shPXoE-xEeeBvLeqfpc2mw" event="_WxCasE-xEeeBvLeqfpc2mw" port="_l6Tf4E-xEeeBvLeqfpc2mw"/>
+ </transition>
+ <subvertex xmi:type="uml:Pseudostate" xmi:id="_ZF9DoE-xEeeBvLeqfpc2mw" kind="initial"/>
+ <subvertex xmi:type="uml:State" xmi:id="_ZGjgkE-xEeeBvLeqfpc2mw" name="State1"/>
+ <subvertex xmi:type="uml:State" xmi:id="_cRvqME-xEeeBvLeqfpc2mw" name="State2"/>
+ <subvertex xmi:type="uml:State" xmi:id="_c2JXwE-xEeeBvLeqfpc2mw" name="State3"/>
+ <subvertex xmi:type="uml:State" xmi:id="_dWx_oE-xEeeBvLeqfpc2mw" name="State4"/>
+ </region>
+ </ownedBehavior>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_VlIBME-xEeeBvLeqfpc2mw" name="Protocol1">
+ <packagedElement xmi:type="uml:Collaboration" xmi:id="_Vk2UYE-xEeeBvLeqfpc2mw" name="Protocol1">
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_VlYf4E-xEeeBvLeqfpc2mw" client="_Vk2UYE-xEeeBvLeqfpc2mw" supplier="_VlP9AE-xEeeBvLeqfpc2mw" contract="_VlP9AE-xEeeBvLeqfpc2mw"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_VloXgE-xEeeBvLeqfpc2mw" client="_Vk2UYE-xEeeBvLeqfpc2mw" supplier="_Vli38E-xEeeBvLeqfpc2mw" contract="_Vli38E-xEeeBvLeqfpc2mw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_VlP9AE-xEeeBvLeqfpc2mw" name="Protocol1">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_WwXFQE-xEeeBvLeqfpc2mw" name="m1"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_YCATUE-xEeeBvLeqfpc2mw" name="m2"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_Vla8IE-xEeeBvLeqfpc2mw" name="Protocol1~"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_VlhCwE-xEeeBvLeqfpc2mw" client="_Vk2UYE-xEeeBvLeqfpc2mw" supplier="_Vla8IE-xEeeBvLeqfpc2mw"/>
+ <packagedElement xmi:type="uml:AnyReceiveEvent" xmi:id="_Vlhp0E-xEeeBvLeqfpc2mw" name="*"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_Vli38E-xEeeBvLeqfpc2mw" name="Protocol1IO"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_VlploE-xEeeBvLeqfpc2mw" client="_Vk2UYE-xEeeBvLeqfpc2mw" supplier="_Vli38E-xEeeBvLeqfpc2mw"/>
+ <packagedElement xmi:type="uml:CallEvent" xmi:id="_WxCasE-xEeeBvLeqfpc2mw" operation="_WwXFQE-xEeeBvLeqfpc2mw"/>
+ <packagedElement xmi:type="uml:CallEvent" xmi:id="_YCIPIE-xEeeBvLeqfpc2mw" operation="_YCATUE-xEeeBvLeqfpc2mw"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_xtBVck-wEeeBvLeqfpc2mw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xtBVc0-wEeeBvLeqfpc2mw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_1h74oEeVEeO0lv5O1DTHOQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_xtBVdE-wEeeBvLeqfpc2mw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xtBVdU-wEeeBvLeqfpc2mw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt/statemachine#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/UMLRealTimeSM-addendum.profile.uml#_KLcn0FDtEeOA4ecmvfqvaw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_xtBVdk-wEeeBvLeqfpc2mw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xtBVd0-wEeeBvLeqfpc2mw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt/cppproperties#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UMLRT_CPP/RTCppProperties.profile.uml#_vl5LALs8EeSTjNEQkASznQ"/>
+ </profileApplication>
+ </uml:Model>
+ <UMLRealTime:Capsule xmi:id="_SmZmQE-xEeeBvLeqfpc2mw" base_Class="_SdaCUE-xEeeBvLeqfpc2mw"/>
+ <UMLRealTime:ProtocolContainer xmi:id="_VlM5sE-xEeeBvLeqfpc2mw" base_Package="_VlIBME-xEeeBvLeqfpc2mw"/>
+ <UMLRealTime:RTMessageSet xmi:id="_VlWqsE-xEeeBvLeqfpc2mw" base_Interface="_VlP9AE-xEeeBvLeqfpc2mw"/>
+ <UMLRealTime:RTMessageSet xmi:id="_Vlf0oE-xEeeBvLeqfpc2mw" base_Interface="_Vla8IE-xEeeBvLeqfpc2mw" rtMsgKind="out"/>
+ <UMLRealTime:RTMessageSet xmi:id="_VlmiUE-xEeeBvLeqfpc2mw" base_Interface="_Vli38E-xEeeBvLeqfpc2mw" rtMsgKind="inOut"/>
+ <UMLRealTime:Protocol xmi:id="_VlqzwE-xEeeBvLeqfpc2mw" base_Collaboration="_Vk2UYE-xEeeBvLeqfpc2mw"/>
+ <UMLRTStateMachines:RTPseudostate xmi:id="_ZGQloE-xEeeBvLeqfpc2mw" base_Pseudostate="_ZF9DoE-xEeeBvLeqfpc2mw"/>
+ <UMLRTStateMachines:RTState xmi:id="_ZGpnME-xEeeBvLeqfpc2mw" base_State="_ZGjgkE-xEeeBvLeqfpc2mw"/>
+ <UMLRTStateMachines:RTRegion xmi:id="_ZG5e0E-xEeeBvLeqfpc2mw" base_Region="_ZFuaIE-xEeeBvLeqfpc2mw"/>
+ <UMLRTStateMachines:RTStateMachine xmi:id="_ZHUVkE-xEeeBvLeqfpc2mw" base_StateMachine="_ZE1pUE-xEeeBvLeqfpc2mw"/>
+ <UMLRTStateMachines:RTState xmi:id="_cR0isE-xEeeBvLeqfpc2mw" base_State="_cRvqME-xEeeBvLeqfpc2mw"/>
+ <UMLRTStateMachines:RTState xmi:id="_c2MbEE-xEeeBvLeqfpc2mw" base_State="_c2JXwE-xEeeBvLeqfpc2mw"/>
+ <UMLRTStateMachines:RTState xmi:id="_dW1C8E-xEeeBvLeqfpc2mw" base_State="_dWx_oE-xEeeBvLeqfpc2mw"/>
+ <UMLRealTime:RTPort xmi:id="_l6kloE-xEeeBvLeqfpc2mw" isPublish="false" isWired="true" base_Port="_l6Tf4E-xEeeBvLeqfpc2mw"/>
+</xmi:XMI>
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/CMakeLists.txt b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/CMakeLists.txt
new file mode 100644
index 000000000..36a20dcf7
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated 2017-06-13 13:10:57
+
+cmake_minimum_required(VERSION 2.8.7)
+set(TARGET TopMain)
+project(${TARGET})
+
+# require location of supporting RTS
+if (NOT UMLRTS_ROOT)
+ if (DEFINED ENV{UMLRTS_ROOT})
+ set(UMLRTS_ROOT $ENV{UMLRTS_ROOT})
+ else ()
+ set(UMLRTS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/umlrt.rts)
+ endif ()
+endif ()
+
+# setup primary envars - provides tooling config
+include(${UMLRTS_ROOT}/build/buildenv.cmake)
+
+# model sources
+set(SRCS TopMain.cc Protocol1.cc Top.cc TopControllers.cc )
+
+# specify target
+add_executable(${TARGET} ${SRCS})
+
+# setup lib dependency support after defining TARGET
+include(${UMLRTS_ROOT}/build/rtslib.cmake)
+
+# compiler parameters
+set_target_properties(${TARGET} PROPERTIES COMPILE_OPTIONS "${COPTS}")
+set_target_properties(${TARGET} PROPERTIES COMPILE_DEFINITIONS "${CDEFS}")
+include_directories(${INCS})
+
+# linker parameters
+set_target_properties(${TARGET} PROPERTIES CMAKE_EXE_LINKER_FLAGS "${LOPTS}")
+target_link_libraries(${TARGET} ${LIBS})
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Makefile b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Makefile
new file mode 100644
index 000000000..0bcbd2251
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Makefile
@@ -0,0 +1,11 @@
+##################################################
+# Default makefile
+# Redirect make to target makefile
+##################################################
+
+all:
+ make -f MakefileTop.mk all
+clean:
+ make -f MakefileTop.mk clean
+.PHONY:
+ make -f MakefileTop.mk all clean
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/MakefileTop.mk b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/MakefileTop.mk
new file mode 100644
index 000000000..6cb0eb295
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/MakefileTop.mk
@@ -0,0 +1,49 @@
+# set default value for TARGETOS if is it not defined
+ifeq ($(TARGETOS), )
+$(warning warning: TARGETOS not defined. Choosing linux)
+TARGETOS=linux
+endif
+
+# set default value for BUILDTOOLS if is it not defined
+ifeq ($(BUILDTOOLS), )
+$(warning warning: BUILDTOOLS not defined. Choosing x86-gcc-4.6.3)
+BUILDTOOLS=x86-gcc-4.6.3
+endif
+
+# Location of RTS root.
+UMLRTS_ROOT ?= ./umlrt.rts
+
+CONFIG=$(TARGETOS).$(BUILDTOOLS)
+
+# Destination directory for the RTS services library.
+LIBDEST=$(UMLRTS_ROOT)/lib/$(CONFIG)
+
+include $(UMLRTS_ROOT)/build/host/host.mk
+include $(UMLRTS_ROOT)/build/buildtools/$(BUILDTOOLS)/buildtools.mk
+
+LD_PATHS=$(LIBDEST)
+CC_INCLUDES+=$(UMLRTS_ROOT)/include
+
+CC_DEFINES:=$(foreach d, $(CC_DEFINES), $(CC_DEF)$d)
+CC_INCLUDES:=$(foreach i, $(CC_INCLUDES), $(CC_INC)$i)
+LD_LIBS:=$(foreach i, $(LD_LIBS), $(LD_LIB)$i)
+LD_PATHS:=$(foreach i, $(LD_PATHS), $(LD_LIBPATH)$i)
+
+SRCS = TopMain.cc Protocol1.cc Top.cc TopControllers.cc
+OBJS = $(subst $(CC_EXT),$(OBJ_EXT),$(SRCS))
+
+MAIN = TopMain$(EXE_EXT)
+
+all: $(MAIN)
+
+$(MAIN): $(OBJS) $(UMLRTS_ROOT)/lib/$(CONFIG)/$(LIB_PRFX)rts$(LIB_EXT)
+ $(LD) $(LD_FLAGS) $(OBJS) $(LD_PATHS) $(LD_LIBS) $(LD_OUT)$@
+
+%$(OBJ_EXT) : %$(CC_EXT)
+ $(CC) $< $(CC_FLAGS) $(CC_DEFINES) $(CC_INCLUDES) $(CC_OUT)$@
+
+clean :
+ @echo $(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+ @$(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+
+.PHONY: all clean
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Protocol1.cc b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Protocol1.cc
new file mode 100644
index 000000000..e5ff89666
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Protocol1.cc
@@ -0,0 +1,82 @@
+
+#include "Protocol1.hh"
+
+#include "umlrtobjectclass.hh"
+#include "umlrtoutsignal.hh"
+struct UMLRTCommsPort;
+
+static UMLRTObject_field fields_m1[] =
+{
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ }
+ #endif
+};
+
+static UMLRTObject payload_m1 =
+{
+ 0,
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ 1
+ #else
+ 0
+ #endif
+ ,
+ fields_m1
+};
+
+static UMLRTObject_field fields_m2[] =
+{
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ }
+ #endif
+};
+
+static UMLRTObject payload_m2 =
+{
+ 0,
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ 1
+ #else
+ 0
+ #endif
+ ,
+ fields_m2
+};
+
+Protocol1::Base::Base( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+Protocol1::Conj::Conj( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+UMLRTOutSignal Protocol1::Conj::m1() const
+{
+ UMLRTOutSignal signal;
+ signal.initialize( "m1", signal_m1, srcPort, &payload_m1 );
+ return signal;
+}
+
+UMLRTOutSignal Protocol1::Conj::m2() const
+{
+ UMLRTOutSignal signal;
+ signal.initialize( "m2", signal_m2, srcPort, &payload_m2 );
+ return signal;
+}
+
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Protocol1.hh b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Protocol1.hh
new file mode 100644
index 000000000..5786c0dd6
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Protocol1.hh
@@ -0,0 +1,32 @@
+
+#ifndef PROTOCOL1_HH
+#define PROTOCOL1_HH
+
+#include "umlrtoutsignal.hh"
+#include "umlrtprotocol.hh"
+#include "umlrtsignal.hh"
+struct UMLRTCommsPort;
+
+namespace Protocol1
+{
+ class Base : public UMLRTProtocol
+ {
+ public:
+ Base( const UMLRTCommsPort * & srcPort );
+ };
+ class Conj : public UMLRTProtocol
+ {
+ public:
+ Conj( const UMLRTCommsPort * & srcPort );
+ UMLRTOutSignal m1() const;
+ UMLRTOutSignal m2() const;
+ };
+ enum SignalId
+ {
+ signal_m1 = UMLRTSignal::FIRST_PROTOCOL_SIGNAL_ID,
+ signal_m2
+ };
+};
+
+#endif
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Top-connections.log b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Top-connections.log
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Top-connections.log
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Top.cc b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Top.cc
new file mode 100644
index 000000000..8389c4fea
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Top.cc
@@ -0,0 +1,213 @@
+
+#include "Top.hh"
+
+#include "Protocol1.hh"
+#include "umlrtcommsportrole.hh"
+#include "umlrtmessage.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsuleclass.hh"
+#include "umlrtframeservice.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_Top::Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: UMLRTCapsule( NULL, cd, st, border, internal, isStat )
+, protocol1( borderPorts[borderport_protocol1] )
+, currentState( SPECIAL_INTERNAL_STATE_UNVISITED )
+{
+ stateNames[State1] = "State1";
+ stateNames[State2] = "State2";
+ stateNames[State3] = "State3";
+ stateNames[State4] = "State4";
+ stateNames[SPECIAL_INTERNAL_STATE_TOP] = "<top>";
+ stateNames[SPECIAL_INTERNAL_STATE_UNVISITED] = "<uninitialized>";
+}
+
+
+
+
+
+void Capsule_Top::bindPort( bool isBorder, int portId, int index )
+{
+ if( isBorder )
+ switch( portId )
+ {
+ case borderport_protocol1:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_protocol1, index, true );
+ break;
+ }
+}
+
+void Capsule_Top::unbindPort( bool isBorder, int portId, int index )
+{
+ if( isBorder )
+ switch( portId )
+ {
+ case borderport_protocol1:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_protocol1, index, false );
+ UMLRTFrameService::disconnectPort( borderPorts[borderport_protocol1], index );
+ break;
+ }
+}
+
+void Capsule_Top::inject( const UMLRTMessage & message )
+{
+ msg = &message;
+ switch( currentState )
+ {
+ case State1:
+ currentState = state_____State1( &message );
+ break;
+ case State2:
+ currentState = state_____State2( &message );
+ break;
+ case State3:
+ currentState = state_____State3( &message );
+ break;
+ case State4:
+ currentState = state_____State4( &message );
+ break;
+ default:
+ break;
+ }
+}
+
+void Capsule_Top::initialize( const UMLRTMessage & message )
+{
+ msg = &message;
+ actionchain_____Initial( &message );
+ currentState = State1;
+}
+
+const char * Capsule_Top::getCurrentStateString() const
+{
+ return stateNames[currentState];
+}
+
+
+
+
+void Capsule_Top::update_state( Capsule_Top::State newState )
+{
+ currentState = newState;
+}
+
+void Capsule_Top::actionchain_____Initial( const UMLRTMessage * msg )
+{
+ update_state( State1 );
+}
+
+void Capsule_Top::actionchain_____transition1( const UMLRTMessage * msg )
+{
+ update_state( SPECIAL_INTERNAL_STATE_TOP );
+ update_state( State2 );
+}
+
+void Capsule_Top::actionchain_____transition2( const UMLRTMessage * msg )
+{
+ update_state( SPECIAL_INTERNAL_STATE_TOP );
+ update_state( State3 );
+}
+
+void Capsule_Top::actionchain_____transition3( const UMLRTMessage * msg )
+{
+ update_state( SPECIAL_INTERNAL_STATE_TOP );
+ update_state( State4 );
+}
+
+Capsule_Top::State Capsule_Top::state_____State1( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ case port_protocol1:
+ switch( msg->getSignalId() )
+ {
+ case Protocol1::signal_m1:
+ actionchain_____transition1( msg );
+ return State2;
+ case Protocol1::signal_m2:
+ actionchain_____transition2( msg );
+ return State3;
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_Top::State Capsule_Top::state_____State2( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_Top::State Capsule_Top::state_____State3( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_Top::State Capsule_Top::state_____State4( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+
+static const UMLRTCommsPortRole portroles_border[] =
+{
+ {
+ Capsule_Top::port_protocol1,
+ "Protocol1",
+ "protocol1",
+ "",
+ 1,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ }
+};
+
+static void instantiate_Top( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+ slot->capsule = new Capsule_Top( &Top, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass Top =
+{
+ "Top",
+ NULL,
+ instantiate_Top,
+ 0,
+ NULL,
+ 1,
+ portroles_border,
+ 0,
+ NULL
+};
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Top.hh b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Top.hh
new file mode 100644
index 000000000..b8659129c
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/Top.hh
@@ -0,0 +1,60 @@
+
+#ifndef TOP_HH
+#define TOP_HH
+
+#include "Protocol1.hh"
+#include "umlrtcapsule.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_Top : public UMLRTCapsule
+{
+public:
+ Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+protected:
+ Protocol1::Base protocol1;
+public:
+ enum BorderPortId
+ {
+ borderport_protocol1
+ };
+ enum PartId
+ {
+ };
+ enum PortId
+ {
+ port_protocol1
+ };
+ virtual void bindPort( bool isBorder, int portId, int index );
+ virtual void unbindPort( bool isBorder, int portId, int index );
+ virtual void inject( const UMLRTMessage & message );
+ virtual void initialize( const UMLRTMessage & message );
+ const char * getCurrentStateString() const;
+private:
+ enum State
+ {
+ State1,
+ State2,
+ State3,
+ State4,
+ SPECIAL_INTERNAL_STATE_TOP,
+ SPECIAL_INTERNAL_STATE_UNVISITED
+ };
+ const char * stateNames[6];
+ State currentState;
+ void update_state( State newState );
+ void actionchain_____Initial( const UMLRTMessage * msg );
+ void actionchain_____transition1( const UMLRTMessage * msg );
+ void actionchain_____transition2( const UMLRTMessage * msg );
+ void actionchain_____transition3( const UMLRTMessage * msg );
+ State state_____State1( const UMLRTMessage * msg );
+ State state_____State2( const UMLRTMessage * msg );
+ State state_____State3( const UMLRTMessage * msg );
+ State state_____State4( const UMLRTMessage * msg );
+};
+extern const UMLRTCapsuleClass Top;
+
+#endif
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/TopControllers.cc b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/TopControllers.cc
new file mode 100644
index 000000000..1df070eac
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/TopControllers.cc
@@ -0,0 +1,76 @@
+
+#include "TopControllers.hh"
+
+#include "Top.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcommsport.hh"
+#include "umlrtcommsportfarend.hh"
+#include "umlrtcontroller.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+
+
+static UMLRTController DefaultController_( "DefaultController" );
+
+UMLRTController * DefaultController = &DefaultController_;
+
+static UMLRTCommsPortFarEnd borderfarEndList_Top[] =
+{
+ {
+ 0,
+ NULL
+ }
+};
+
+UMLRTCommsPort borderports_Top[] =
+{
+ {
+ &Top,
+ Capsule_Top::borderport_protocol1,
+ &Top_slots[InstId_Top],
+ 1,
+ borderfarEndList_Top,
+ NULL,
+ NULL,
+ "",
+ true,
+ true,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ }
+};
+
+static const UMLRTCommsPort * borderports_Top_ptrs[] =
+{
+ &borderports_Top[0]
+};
+
+static Capsule_Top top( &Top, &Top_slots[InstId_Top], borderports_Top_ptrs, NULL, true );
+
+UMLRTSlot Top_slots[] =
+{
+ {
+ "Top",
+ 0,
+ &Top,
+ NULL,
+ 0,
+ &top,
+ &DefaultController_,
+ 0,
+ NULL,
+ 1,
+ borderports_Top,
+ NULL,
+ true,
+ false
+ }
+};
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/TopControllers.hh b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/TopControllers.hh
new file mode 100644
index 000000000..0d5aac67e
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/TopControllers.hh
@@ -0,0 +1,18 @@
+
+#ifndef TOPCONTROLLERS_HH
+#define TOPCONTROLLERS_HH
+
+class UMLRTController;
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+enum CapsuleInstanceId
+{
+ InstId_Top
+};
+extern UMLRTController * DefaultController;
+extern UMLRTCommsPort borderports_Top[];
+extern UMLRTSlot Top_slots[];
+
+#endif
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/TopMain.cc b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/TopMain.cc
new file mode 100644
index 000000000..bf88ec44f
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions/expected_src/TopMain.cc
@@ -0,0 +1,38 @@
+#include "umlrtmain.hh"
+
+#include "umlrtcontroller.hh"
+#include "TopControllers.hh"
+#include "umlrtcapsuletocontrollermap.hh"
+#include "umlrtmessagepool.hh"
+#include "umlrtsignalelementpool.hh"
+#include "umlrttimerpool.hh"
+#include "umlrtuserconfig.hh"
+#include <stdio.h>
+
+static UMLRTSignalElement signalElementBuffer[USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE];
+static UMLRTSignalElementPool signalElementPool( signalElementBuffer, USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE );
+
+static UMLRTMessage messageBuffer[USER_CONFIG_MESSAGE_POOL_SIZE];
+static UMLRTMessagePool messagePool( messageBuffer, USER_CONFIG_MESSAGE_POOL_SIZE );
+
+static UMLRTTimer timers[USER_CONFIG_TIMER_POOL_SIZE];
+static UMLRTTimerPool timerPool( timers, USER_CONFIG_TIMER_POOL_SIZE );
+
+int main( int argc, char * argv[] )
+{
+ UMLRTController::initializePools( &signalElementPool, &messagePool, &timerPool );
+ UMLRTMain::setArgs( argc, argv );
+ UMLRTCapsuleToControllerMap::setDefaultSlotList( Top_slots, 1 );
+
+ if( ! UMLRTMain::targetStartup() )
+ return EXIT_FAILURE;
+
+ DefaultController->spawn();
+
+ if( ! UMLRTMain::mainLoop() )
+ return UMLRTMain::targetShutdown( false );
+
+ DefaultController->join();
+
+ return UMLRTMain::targetShutdown( true );
+}
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/.project b/models/tests/codepattern/statemachines/AmbiguousTransitions1/.project
new file mode 100644
index 000000000..c9055bd8b
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>AmbiguousTransitions1</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/AmbiguousTransitions1.di b/models/tests/codepattern/statemachines/AmbiguousTransitions1/AmbiguousTransitions1.di
new file mode 100644
index 000000000..47e812dba
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/AmbiguousTransitions1.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrusrt.umlrt.architecture"/>
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/AmbiguousTransitions1.notation b/models/tests/codepattern/statemachines/AmbiguousTransitions1/AmbiguousTransitions1.notation
new file mode 100644
index 000000000..f685a3316
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/AmbiguousTransitions1.notation
@@ -0,0 +1,370 @@
+<?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: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/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_vhA6MFBbEeeAb79RbYsirA" type="CompositeStructure" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_vhEkkFBbEeeAb79RbYsirA" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vhHn4FBbEeeAb79RbYsirA" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vhHn4VBbEeeAb79RbYsirA" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vhHn4lBbEeeAb79RbYsirA" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vhIO8FBbEeeAb79RbYsirA" type="Class_StructureCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vhIO8VBbEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vhIO8lBbEeeAb79RbYsirA"/>
+ </children>
+ <element xmi:type="uml:Class" href="AmbiguousTransitions1.uml#_vdLjEFBbEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vhEkkVBbEeeAb79RbYsirA" x="40" y="40" width="500" height="250"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_vhA6MVBbEeeAb79RbYsirA" name="diagram_compatibility_version" stringValue="1.3.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_vhA6MlBbEeeAb79RbYsirA"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_vhA6M1BbEeeAb79RbYsirA" diagramKindId="org.eclipse.papyrusrt.umlrt.tooling.diagram.common.UMLRTCapsuleStructure">
+ <owner xmi:type="uml:Class" href="AmbiguousTransitions1.uml#_vdLjEFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xmi:type="uml:Class" href="AmbiguousTransitions1.uml#_vdLjEFBbEeeAb79RbYsirA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_7DL84FBbEeeAb79RbYsirA" type="PapyrusUMLStateMachineDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_7DL84VBbEeeAb79RbYsirA" type="StateMachine_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7DL84lBbEeeAb79RbYsirA" type="StateMachine_NameLabel">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7DL841BbEeeAb79RbYsirA" width="700" height="16"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7DL85FBbEeeAb79RbYsirA" type="StateMachine_RegionCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_7DL85VBbEeeAb79RbYsirA" type="Region_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7DL85lBbEeeAb79RbYsirA" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7DL851BbEeeAb79RbYsirA" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7DL86FBbEeeAb79RbYsirA" type="Region_SubvertexCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8A1Q4FBbEeeAb79RbYsirA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8A138FBbEeeAb79RbYsirA" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_702qYFBbEeeAb79RbYsirA" type="Pseudostate_InitialShape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8A138VBbEeeAb79RbYsirA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8A138lBbEeeAb79RbYsirA" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_702qYlBbEeeAb79RbYsirA" type="Pseudostate_InitialFloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_703RcFBbEeeAb79RbYsirA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_703RcVBbEeeAb79RbYsirA" type="Pseudostate_InitialStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_703RclBbEeeAb79RbYsirA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="AmbiguousTransitions1.uml#_7C3MwFBbEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_702qYVBbEeeAb79RbYsirA" x="9" y="-6"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7034gFBbEeeAb79RbYsirA" type="State_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8A1381BbEeeAb79RbYsirA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8A139FBbEeeAb79RbYsirA" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7034glBbEeeAb79RbYsirA" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7034g1BbEeeAb79RbYsirA" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7034hFBbEeeAb79RbYsirA" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7034hVBbEeeAb79RbYsirA" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7034hlBbEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_704fkFBbEeeAb79RbYsirA" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_704fkVBbEeeAb79RbYsirA"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions1.uml#_7C_IkFBbEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7034gVBbEeeAb79RbYsirA" x="109" y="134"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_71NPs1BbEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_71NPtFBbEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_71NPtlBbEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions1.uml#_7C3MwFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_71NPtVBbEeeAb79RbYsirA" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_71aEA1BbEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_71aEBFBbEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_71aEBlBbEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions1.uml#_7C_IkFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_71aEBVBbEeeAb79RbYsirA" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-FVfQFBbEeeAb79RbYsirA" type="State_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-FWGUFBbEeeAb79RbYsirA" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-FWGUVBbEeeAb79RbYsirA" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-FWGUlBbEeeAb79RbYsirA" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-FWGU1BbEeeAb79RbYsirA" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-FWGVFBbEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_-FWGVVBbEeeAb79RbYsirA" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-FWGVlBbEeeAb79RbYsirA"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions1.uml#_-FEZgFBbEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-FVfQVBbEeeAb79RbYsirA" x="309" y="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-FiTkFBbEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-FiTkVBbEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_-FiTk1BbEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions1.uml#_-FEZgFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-FiTklBbEeeAb79RbYsirA" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-jOVIFBbEeeAb79RbYsirA" type="State_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-jOVIlBbEeeAb79RbYsirA" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-jOVI1BbEeeAb79RbYsirA" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-jOVJFBbEeeAb79RbYsirA" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-jOVJVBbEeeAb79RbYsirA" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-jOVJlBbEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_-jO8MFBbEeeAb79RbYsirA" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-jO8MVBbEeeAb79RbYsirA"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions1.uml#_-i8BQFBbEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-jOVIVBbEeeAb79RbYsirA" x="309" y="114"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-jbwg1BbEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-jbwhFBbEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_-jcXkFBbEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions1.uml#_-i8BQFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-jbwhVBbEeeAb79RbYsirA" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__CAi4FBbEeeAb79RbYsirA" type="State_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__CAi4lBbEeeAb79RbYsirA" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="__CAi41BbEeeAb79RbYsirA" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__CBJ8FBbEeeAb79RbYsirA" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__CBJ8VBbEeeAb79RbYsirA" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__CBJ8lBbEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="__CBJ81BbEeeAb79RbYsirA" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__CBJ9FBbEeeAb79RbYsirA"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions1.uml#__BqkoFBbEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__CAi4VBbEeeAb79RbYsirA" x="309" y="174"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__CSPsFBbEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__CSPsVBbEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="__CSPs1BbEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions1.uml#__BqkoFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__CSPslBbEeeAb79RbYsirA" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B4Q-UFBcEeeAb79RbYsirA" type="State_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_B4Q-UlBcEeeAb79RbYsirA" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_B4Q-U1BcEeeAb79RbYsirA" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B4Q-VFBcEeeAb79RbYsirA" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_B4Q-VVBcEeeAb79RbYsirA" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B4Q-VlBcEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_B4Q-V1BcEeeAb79RbYsirA" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B4Q-WFBcEeeAb79RbYsirA"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions1.uml#_B36ZAFBcEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B4Q-UVBcEeeAb79RbYsirA" x="309" y="234"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B4g18FBcEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_B4g18VBcEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_B4g181BcEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions1.uml#_B36ZAFBcEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B4g18lBcEeeAb79RbYsirA" x="200"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7DL86VBbEeeAb79RbYsirA"/>
+ </children>
+ <element xmi:type="uml:Region" href="AmbiguousTransitions1.uml#_7CyUQFBbEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7DL86lBbEeeAb79RbYsirA" width="700" height="280"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_70on8FBbEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_70on8VBbEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_70pPAFBbEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Region" href="AmbiguousTransitions1.uml#_7CyUQFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_70on8lBbEeeAb79RbYsirA" x="200"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7DL861BbEeeAb79RbYsirA" y="16" width="700" height="284"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="AmbiguousTransitions1.uml#_7CYroFBbEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7DL87FBbEeeAb79RbYsirA" x="30" y="30" width="700" height="300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_70bMkFBbEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_70bMkVBbEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_70feAFBbEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:StateMachine" href="AmbiguousTransitions1.uml#_7CYroFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_70bMklBbEeeAb79RbYsirA" x="230" y="30"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7DL87VBbEeeAb79RbYsirA" name="diagram_compatibility_version" stringValue="1.3.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_7DL87lBbEeeAb79RbYsirA"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_7DL871BbEeeAb79RbYsirA" diagramKindId="org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine.UMLRTStateMachine">
+ <owner xmi:type="uml:StateMachine" href="AmbiguousTransitions1.uml#_7CYroFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xmi:type="uml:StateMachine" href="AmbiguousTransitions1.uml#_7CYroFBbEeeAb79RbYsirA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_70gFEFBbEeeAb79RbYsirA" type="StereotypeCommentLink" source="_7DL84VBbEeeAb79RbYsirA" target="_70bMkFBbEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_70gFEVBbEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_70gFFVBbEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:StateMachine" href="AmbiguousTransitions1.uml#_7CYroFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_70gFElBbEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_70gFE1BbEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_70gFFFBbEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_70pPAVBbEeeAb79RbYsirA" type="StereotypeCommentLink" source="_7DL85VBbEeeAb79RbYsirA" target="_70on8FBbEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_70pPAlBbEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_70pPBlBbEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Region" href="AmbiguousTransitions1.uml#_7CyUQFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_70pPA1BbEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_70pPBFBbEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_70pPBVBbEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_71NPt1BbEeeAb79RbYsirA" type="StereotypeCommentLink" source="_702qYFBbEeeAb79RbYsirA" target="_71NPs1BbEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_71NPuFBbEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_71NPvFBbEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions1.uml#_7C3MwFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_71NPuVBbEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_71NPulBbEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_71NPu1BbEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_71aEB1BbEeeAb79RbYsirA" type="StereotypeCommentLink" source="_7034gFBbEeeAb79RbYsirA" target="_71aEA1BbEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_71aECFBbEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_71arEFBbEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions1.uml#_7C_IkFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_71aECVBbEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_71aEClBbEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_71aEC1BbEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8ARQMFBbEeeAb79RbYsirA" type="Transition_Edge" source="_702qYFBbEeeAb79RbYsirA" target="_7034gFBbEeeAb79RbYsirA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8GdXwFBbEeeAb79RbYsirA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8GdXwVBbEeeAb79RbYsirA" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8AR3QFBbEeeAb79RbYsirA" type="Transition_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8aqGIFBbEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8AR3QVBbEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8AR3QlBbEeeAb79RbYsirA" type="Transition_GuardLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8a-2QFBbEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8AR3Q1BbEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8AR3RFBbEeeAb79RbYsirA" type="Transition_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8bSYQFBbEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8AR3RVBbEeeAb79RbYsirA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8ARQMVBbEeeAb79RbYsirA"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions1.uml#_7DEBEFBbEeeAb79RbYsirA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8ARQMlBbEeeAb79RbYsirA" points="[40, 46, -643984, -643984]$[40, 46, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8AR3RlBbEeeAb79RbYsirA" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8AR3R1BbEeeAb79RbYsirA" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-FiTlFBbEeeAb79RbYsirA" type="StereotypeCommentLink" source="_-FVfQFBbEeeAb79RbYsirA" target="_-FiTkFBbEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_-FiTlVBbEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_-FiTmVBbEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions1.uml#_-FEZgFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-FiTllBbEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-FiTl1BbEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-FiTmFBbEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-jcXkVBbEeeAb79RbYsirA" type="StereotypeCommentLink" source="_-jOVIFBbEeeAb79RbYsirA" target="_-jbwg1BbEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_-jcXklBbEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_-jcXllBbEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions1.uml#_-i8BQFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-jcXk1BbEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-jcXlFBbEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-jcXlVBbEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__CSPtFBbEeeAb79RbYsirA" type="StereotypeCommentLink" source="__CAi4FBbEeeAb79RbYsirA" target="__CSPsFBbEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="__CSPtVBbEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="__CS2wFBbEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions1.uml#__BqkoFBbEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__CSPtlBbEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__CSPt1BbEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__CSPuFBbEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_B4g19FBcEeeAb79RbYsirA" type="StereotypeCommentLink" source="_B4Q-UFBcEeeAb79RbYsirA" target="_B4g18FBcEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_B4g19VBcEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_B4g1-VBcEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions1.uml#_B36ZAFBcEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_B4g19lBcEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B4g191BcEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B4g1-FBcEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DEtjUFBcEeeAb79RbYsirA" type="Transition_Edge" source="_7034gFBbEeeAb79RbYsirA" target="_-FVfQFBbEeeAb79RbYsirA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DEtjU1BcEeeAb79RbYsirA" type="Transition_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DEtjVFBcEeeAb79RbYsirA" x="-20" y="-10"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DEtjVVBcEeeAb79RbYsirA" type="Transition_GuardLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DEtjVlBcEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DEtjV1BcEeeAb79RbYsirA" type="Transition_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DEtjWFBcEeeAb79RbYsirA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_DEtjUVBcEeeAb79RbYsirA"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions1.uml#_DET6sFBcEeeAb79RbYsirA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DEtjUlBcEeeAb79RbYsirA" points="[3, -11, -198, 58]$[183, -71, -18, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DFoJUFBcEeeAb79RbYsirA" id="(0.425,0.275)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DFoJUVBcEeeAb79RbYsirA" id="(0.45,0.55)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_D0NtoFBcEeeAb79RbYsirA" type="Transition_Edge" source="_7034gFBbEeeAb79RbYsirA" target="_-jOVIFBbEeeAb79RbYsirA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_D0Nto1BcEeeAb79RbYsirA" type="Transition_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D0NtpFBcEeeAb79RbYsirA" x="8" y="-18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_D0NtpVBcEeeAb79RbYsirA" type="Transition_GuardLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D0NtplBcEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_D0Ntp1BcEeeAb79RbYsirA" type="Transition_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D0NtqFBcEeeAb79RbYsirA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_D0NtoVBcEeeAb79RbYsirA"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions1.uml#_Dzzd8FBcEeeAb79RbYsirA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_D0NtolBcEeeAb79RbYsirA" points="[-1, -8, -199, -1]$[179, -8, -19, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D1LW8FBcEeeAb79RbYsirA" id="(1.0,0.25)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D1L-AFBcEeeAb79RbYsirA" id="(0.475,0.525)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_E3jZ8FBcEeeAb79RbYsirA" type="Transition_Edge" source="_7034gFBbEeeAb79RbYsirA" target="__CAi4FBbEeeAb79RbYsirA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_E3jZ81BcEeeAb79RbYsirA" type="Transition_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E3jZ9FBcEeeAb79RbYsirA" x="21" y="-19"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_E3jZ9VBcEeeAb79RbYsirA" type="Transition_GuardLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E3jZ9lBcEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_E3jZ91BcEeeAb79RbYsirA" type="Transition_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E3jZ-FBcEeeAb79RbYsirA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_E3jZ8VBcEeeAb79RbYsirA"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions1.uml#_E3GuAFBcEeeAb79RbYsirA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_E3jZ8lBcEeeAb79RbYsirA" points="[12, -3, -171, -31]$[182, 17, -1, -11]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_E4nw8FBcEeeAb79RbYsirA" id="(0.7,0.575)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_E4nw8VBcEeeAb79RbYsirA" id="(0.0,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_F9SS8FBcEeeAb79RbYsirA" type="Transition_Edge" source="_7034gFBbEeeAb79RbYsirA" target="_B4Q-UFBcEeeAb79RbYsirA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_F9S6AFBcEeeAb79RbYsirA" type="Transition_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_F9S6AVBcEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_F9S6AlBcEeeAb79RbYsirA" type="Transition_GuardLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_F9S6A1BcEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_F9S6BFBcEeeAb79RbYsirA" type="Transition_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_F9S6BVBcEeeAb79RbYsirA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_F9SS8VBcEeeAb79RbYsirA"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions1.uml#_F88UsFBcEeeAb79RbYsirA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_F9SS8lBcEeeAb79RbYsirA" points="[-17, -2, -217, -97]$[183, 98, -17, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F-PVMFBcEeeAb79RbYsirA" id="(0.5,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F-PVMVBcEeeAb79RbYsirA" id="(0.425,0.425)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/AmbiguousTransitions1.uml b/models/tests/codepattern/statemachines/AmbiguousTransitions1/AmbiguousTransitions1.uml
new file mode 100644
index 000000000..4f4fca27d
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/AmbiguousTransitions1.uml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:UMLRTStateMachines="http://www.eclipse.org/papyrus/umlrt/statemachine" xmlns:UMLRealTime="http://www.eclipse.org/papyrus/umlrt" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <uml:Model xmi:id="_r6gtkFBbEeeAb79RbYsirA" name="AmbiguousTransitions1">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r6gtkVBbEeeAb79RbYsirA" source="http://www.eclipse.org/papyrus-rt/language/1.0.0">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r6gtklBbEeeAb79RbYsirA" key="language" value="umlrt-cpp"/>
+ </eAnnotations>
+ <packagedElement xmi:type="uml:Class" xmi:id="_vdLjEFBbEeeAb79RbYsirA" name="Top" classifierBehavior="_7CYroFBbEeeAb79RbYsirA" isActive="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_x9otoFBbEeeAb79RbYsirA" name="protocol1" visibility="public" type="_yXafkFBbEeeAb79RbYsirA" isOrdered="true" aggregation="composite" isBehavior="true" isService="true"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_4cQ98FBbEeeAb79RbYsirA" name="protocol2" visibility="public" type="_4veN0FBbEeeAb79RbYsirA" isOrdered="true" aggregation="composite" isBehavior="true" isService="true"/>
+ <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_7CYroFBbEeeAb79RbYsirA" name="StateMachine" isReentrant="false">
+ <region xmi:type="uml:Region" xmi:id="_7CyUQFBbEeeAb79RbYsirA" name="Region">
+ <transition xmi:type="uml:Transition" xmi:id="_7DEBEFBbEeeAb79RbYsirA" name="Initial" source="_7C3MwFBbEeeAb79RbYsirA" target="_7C_IkFBbEeeAb79RbYsirA"/>
+ <transition xmi:type="uml:Transition" xmi:id="_DET6sFBcEeeAb79RbYsirA" name="" kind="external" source="_7C_IkFBbEeeAb79RbYsirA" target="_-FEZgFBbEeeAb79RbYsirA">
+ <trigger xmi:type="uml:Trigger" xmi:id="_HdaB4FBcEeeAb79RbYsirA" event="_15v94FBbEeeAb79RbYsirA" port="_x9otoFBbEeeAb79RbYsirA"/>
+ </transition>
+ <transition xmi:type="uml:Transition" xmi:id="_Dzzd8FBcEeeAb79RbYsirA" name="" kind="external" source="_7C_IkFBbEeeAb79RbYsirA" target="_-i8BQFBbEeeAb79RbYsirA">
+ <trigger xmi:type="uml:Trigger" xmi:id="_JTnVkFBcEeeAb79RbYsirA" event="_3L2e8FBbEeeAb79RbYsirA" port="_x9otoFBbEeeAb79RbYsirA"/>
+ </transition>
+ <transition xmi:type="uml:Transition" xmi:id="_E3GuAFBcEeeAb79RbYsirA" name="" kind="external" source="_7C_IkFBbEeeAb79RbYsirA" target="__BqkoFBbEeeAb79RbYsirA">
+ <trigger xmi:type="uml:Trigger" xmi:id="_LpPJIFBcEeeAb79RbYsirA" event="_6ADE4FBbEeeAb79RbYsirA" port="_4cQ98FBbEeeAb79RbYsirA"/>
+ <trigger xmi:type="uml:Trigger" xmi:id="_R3KrAFBcEeeAb79RbYsirA" event="_3L2e8FBbEeeAb79RbYsirA" port="_x9otoFBbEeeAb79RbYsirA"/>
+ </transition>
+ <transition xmi:type="uml:Transition" xmi:id="_F88UsFBcEeeAb79RbYsirA" kind="external" source="_7C_IkFBbEeeAb79RbYsirA" target="_B36ZAFBcEeeAb79RbYsirA"/>
+ <subvertex xmi:type="uml:Pseudostate" xmi:id="_7C3MwFBbEeeAb79RbYsirA" kind="initial"/>
+ <subvertex xmi:type="uml:State" xmi:id="_7C_IkFBbEeeAb79RbYsirA" name="State1"/>
+ <subvertex xmi:type="uml:State" xmi:id="_-FEZgFBbEeeAb79RbYsirA" name="State2"/>
+ <subvertex xmi:type="uml:State" xmi:id="_-i8BQFBbEeeAb79RbYsirA" name="State3"/>
+ <subvertex xmi:type="uml:State" xmi:id="__BqkoFBbEeeAb79RbYsirA" name="State4"/>
+ <subvertex xmi:type="uml:State" xmi:id="_B36ZAFBcEeeAb79RbYsirA" name="State5"/>
+ </region>
+ </ownedBehavior>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_yYF1AFBbEeeAb79RbYsirA" name="Protocol1">
+ <packagedElement xmi:type="uml:Collaboration" xmi:id="_yXafkFBbEeeAb79RbYsirA" name="Protocol1">
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_yYNw0FBbEeeAb79RbYsirA" client="_yXafkFBbEeeAb79RbYsirA" supplier="_yYKGcFBbEeeAb79RbYsirA" contract="_yYKGcFBbEeeAb79RbYsirA"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_yYYI4FBbEeeAb79RbYsirA" client="_yXafkFBbEeeAb79RbYsirA" supplier="_yYT3cFBbEeeAb79RbYsirA" contract="_yYT3cFBbEeeAb79RbYsirA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_yYKGcFBbEeeAb79RbYsirA" name="Protocol1">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_15TR8FBbEeeAb79RbYsirA" name="m1"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3LujIFBbEeeAb79RbYsirA" name="m2"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_yYO-8FBbEeeAb79RbYsirA" name="Protocol1~"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_yYSpUFBbEeeAb79RbYsirA" client="_yXafkFBbEeeAb79RbYsirA" supplier="_yYO-8FBbEeeAb79RbYsirA"/>
+ <packagedElement xmi:type="uml:AnyReceiveEvent" xmi:id="_yYTQYFBbEeeAb79RbYsirA" name="*"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_yYT3cFBbEeeAb79RbYsirA" name="Protocol1IO"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_yYZXAFBbEeeAb79RbYsirA" client="_yXafkFBbEeeAb79RbYsirA" supplier="_yYT3cFBbEeeAb79RbYsirA"/>
+ <packagedElement xmi:type="uml:CallEvent" xmi:id="_15v94FBbEeeAb79RbYsirA" operation="_15TR8FBbEeeAb79RbYsirA"/>
+ <packagedElement xmi:type="uml:CallEvent" xmi:id="_3L2e8FBbEeeAb79RbYsirA" operation="_3LujIFBbEeeAb79RbYsirA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_4vgqEFBbEeeAb79RbYsirA" name="Protocol2">
+ <packagedElement xmi:type="uml:Collaboration" xmi:id="_4veN0FBbEeeAb79RbYsirA" name="Protocol2">
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_4vol4FBbEeeAb79RbYsirA" client="_4veN0FBbEeeAb79RbYsirA" supplier="_4vk7gFBbEeeAb79RbYsirA" contract="_4vk7gFBbEeeAb79RbYsirA"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_4vxIwFBbEeeAb79RbYsirA" client="_4veN0FBbEeeAb79RbYsirA" supplier="_4vuFcFBbEeeAb79RbYsirA" contract="_4vuFcFBbEeeAb79RbYsirA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_4vk7gFBbEeeAb79RbYsirA" name="Protocol2">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_5_7wIFBbEeeAb79RbYsirA" name="m1"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_4vpM8FBbEeeAb79RbYsirA" name="Protocol2~"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_4vs3UFBbEeeAb79RbYsirA" client="_4veN0FBbEeeAb79RbYsirA" supplier="_4vpM8FBbEeeAb79RbYsirA"/>
+ <packagedElement xmi:type="uml:AnyReceiveEvent" xmi:id="_4vteYFBbEeeAb79RbYsirA" name="*"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_4vuFcFBbEeeAb79RbYsirA" name="Protocol2IO"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_4vyW4FBbEeeAb79RbYsirA" client="_4veN0FBbEeeAb79RbYsirA" supplier="_4vuFcFBbEeeAb79RbYsirA"/>
+ <packagedElement xmi:type="uml:CallEvent" xmi:id="_6ADE4FBbEeeAb79RbYsirA" operation="_5_7wIFBbEeeAb79RbYsirA"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_r6gtk1BbEeeAb79RbYsirA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r6gtlFBbEeeAb79RbYsirA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_1h74oEeVEeO0lv5O1DTHOQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_r6gtlVBbEeeAb79RbYsirA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r6gtllBbEeeAb79RbYsirA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt/statemachine#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/UMLRealTimeSM-addendum.profile.uml#_KLcn0FDtEeOA4ecmvfqvaw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_r6gtl1BbEeeAb79RbYsirA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r6gtmFBbEeeAb79RbYsirA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt/cppproperties#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UMLRT_CPP/RTCppProperties.profile.uml#_vl5LALs8EeSTjNEQkASznQ"/>
+ </profileApplication>
+ </uml:Model>
+ <UMLRealTime:Capsule xmi:id="_vhOVkFBbEeeAb79RbYsirA" base_Class="_vdLjEFBbEeeAb79RbYsirA"/>
+ <UMLRealTime:RTPort xmi:id="_x-Ic4FBbEeeAb79RbYsirA" isPublish="false" isWired="true" base_Port="_x9otoFBbEeeAb79RbYsirA"/>
+ <UMLRealTime:ProtocolContainer xmi:id="_yYHqMFBbEeeAb79RbYsirA" base_Package="_yYF1AFBbEeeAb79RbYsirA"/>
+ <UMLRealTime:RTMessageSet xmi:id="_yYL7oFBbEeeAb79RbYsirA" base_Interface="_yYKGcFBbEeeAb79RbYsirA"/>
+ <UMLRealTime:RTMessageSet xmi:id="_yYQ0IFBbEeeAb79RbYsirA" base_Interface="_yYO-8FBbEeeAb79RbYsirA" rtMsgKind="out"/>
+ <UMLRealTime:RTMessageSet xmi:id="_yYW6wFBbEeeAb79RbYsirA" base_Interface="_yYT3cFBbEeeAb79RbYsirA" rtMsgKind="inOut"/>
+ <UMLRealTime:Protocol xmi:id="_yYZ-EFBbEeeAb79RbYsirA" base_Collaboration="_yXafkFBbEeeAb79RbYsirA"/>
+ <UMLRealTime:RTPort xmi:id="_4cUoUFBbEeeAb79RbYsirA" isPublish="false" isWired="true" base_Port="_4cQ98FBbEeeAb79RbYsirA"/>
+ <UMLRealTime:ProtocolContainer xmi:id="_4vjGUFBbEeeAb79RbYsirA" base_Package="_4vgqEFBbEeeAb79RbYsirA"/>
+ <UMLRealTime:RTMessageSet xmi:id="_4vnXwFBbEeeAb79RbYsirA" base_Interface="_4vk7gFBbEeeAb79RbYsirA"/>
+ <UMLRealTime:RTMessageSet xmi:id="_4vrpMFBbEeeAb79RbYsirA" base_Interface="_4vpM8FBbEeeAb79RbYsirA" rtMsgKind="out"/>
+ <UMLRealTime:RTMessageSet xmi:id="_4vwhsFBbEeeAb79RbYsirA" base_Interface="_4vuFcFBbEeeAb79RbYsirA" rtMsgKind="inOut"/>
+ <UMLRealTime:Protocol xmi:id="_4vy98FBbEeeAb79RbYsirA" base_Collaboration="_4veN0FBbEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTPseudostate xmi:id="_7C7eMFBbEeeAb79RbYsirA" base_Pseudostate="_7C3MwFBbEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTState xmi:id="_7DBk0FBbEeeAb79RbYsirA" base_State="_7C_IkFBbEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTRegion xmi:id="_7DF2QFBbEeeAb79RbYsirA" base_Region="_7CyUQFBbEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTStateMachine xmi:id="_7DNyEFBbEeeAb79RbYsirA" base_StateMachine="_7CYroFBbEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTState xmi:id="_-FHc0FBbEeeAb79RbYsirA" base_State="_-FEZgFBbEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTState xmi:id="_-i-dgFBbEeeAb79RbYsirA" base_State="_-i8BQFBbEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTState xmi:id="__BsZ0FBbEeeAb79RbYsirA" base_State="__BqkoFBbEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTState xmi:id="_B38OMFBcEeeAb79RbYsirA" base_State="_B36ZAFBcEeeAb79RbYsirA"/>
+</xmi:XMI>
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/CMakeLists.txt b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/CMakeLists.txt
new file mode 100644
index 000000000..ab0466fc1
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated 2017-06-13 13:18:42
+
+cmake_minimum_required(VERSION 2.8.7)
+set(TARGET TopMain)
+project(${TARGET})
+
+# require location of supporting RTS
+if (NOT UMLRTS_ROOT)
+ if (DEFINED ENV{UMLRTS_ROOT})
+ set(UMLRTS_ROOT $ENV{UMLRTS_ROOT})
+ else ()
+ set(UMLRTS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/umlrt.rts)
+ endif ()
+endif ()
+
+# setup primary envars - provides tooling config
+include(${UMLRTS_ROOT}/build/buildenv.cmake)
+
+# model sources
+set(SRCS TopMain.cc Protocol1.cc Top.cc TopControllers.cc Protocol2.cc )
+
+# specify target
+add_executable(${TARGET} ${SRCS})
+
+# setup lib dependency support after defining TARGET
+include(${UMLRTS_ROOT}/build/rtslib.cmake)
+
+# compiler parameters
+set_target_properties(${TARGET} PROPERTIES COMPILE_OPTIONS "${COPTS}")
+set_target_properties(${TARGET} PROPERTIES COMPILE_DEFINITIONS "${CDEFS}")
+include_directories(${INCS})
+
+# linker parameters
+set_target_properties(${TARGET} PROPERTIES CMAKE_EXE_LINKER_FLAGS "${LOPTS}")
+target_link_libraries(${TARGET} ${LIBS})
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Makefile b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Makefile
new file mode 100644
index 000000000..0bcbd2251
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Makefile
@@ -0,0 +1,11 @@
+##################################################
+# Default makefile
+# Redirect make to target makefile
+##################################################
+
+all:
+ make -f MakefileTop.mk all
+clean:
+ make -f MakefileTop.mk clean
+.PHONY:
+ make -f MakefileTop.mk all clean
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/MakefileTop.mk b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/MakefileTop.mk
new file mode 100644
index 000000000..6d30fd436
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/MakefileTop.mk
@@ -0,0 +1,49 @@
+# set default value for TARGETOS if is it not defined
+ifeq ($(TARGETOS), )
+$(warning warning: TARGETOS not defined. Choosing linux)
+TARGETOS=linux
+endif
+
+# set default value for BUILDTOOLS if is it not defined
+ifeq ($(BUILDTOOLS), )
+$(warning warning: BUILDTOOLS not defined. Choosing x86-gcc-4.6.3)
+BUILDTOOLS=x86-gcc-4.6.3
+endif
+
+# Location of RTS root.
+UMLRTS_ROOT ?= ./umlrt.rts
+
+CONFIG=$(TARGETOS).$(BUILDTOOLS)
+
+# Destination directory for the RTS services library.
+LIBDEST=$(UMLRTS_ROOT)/lib/$(CONFIG)
+
+include $(UMLRTS_ROOT)/build/host/host.mk
+include $(UMLRTS_ROOT)/build/buildtools/$(BUILDTOOLS)/buildtools.mk
+
+LD_PATHS=$(LIBDEST)
+CC_INCLUDES+=$(UMLRTS_ROOT)/include
+
+CC_DEFINES:=$(foreach d, $(CC_DEFINES), $(CC_DEF)$d)
+CC_INCLUDES:=$(foreach i, $(CC_INCLUDES), $(CC_INC)$i)
+LD_LIBS:=$(foreach i, $(LD_LIBS), $(LD_LIB)$i)
+LD_PATHS:=$(foreach i, $(LD_PATHS), $(LD_LIBPATH)$i)
+
+SRCS = TopMain.cc Protocol1.cc Top.cc TopControllers.cc Protocol2.cc
+OBJS = $(subst $(CC_EXT),$(OBJ_EXT),$(SRCS))
+
+MAIN = TopMain$(EXE_EXT)
+
+all: $(MAIN)
+
+$(MAIN): $(OBJS) $(UMLRTS_ROOT)/lib/$(CONFIG)/$(LIB_PRFX)rts$(LIB_EXT)
+ $(LD) $(LD_FLAGS) $(OBJS) $(LD_PATHS) $(LD_LIBS) $(LD_OUT)$@
+
+%$(OBJ_EXT) : %$(CC_EXT)
+ $(CC) $< $(CC_FLAGS) $(CC_DEFINES) $(CC_INCLUDES) $(CC_OUT)$@
+
+clean :
+ @echo $(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+ @$(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+
+.PHONY: all clean
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol1.cc b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol1.cc
new file mode 100644
index 000000000..e5ff89666
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol1.cc
@@ -0,0 +1,82 @@
+
+#include "Protocol1.hh"
+
+#include "umlrtobjectclass.hh"
+#include "umlrtoutsignal.hh"
+struct UMLRTCommsPort;
+
+static UMLRTObject_field fields_m1[] =
+{
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ }
+ #endif
+};
+
+static UMLRTObject payload_m1 =
+{
+ 0,
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ 1
+ #else
+ 0
+ #endif
+ ,
+ fields_m1
+};
+
+static UMLRTObject_field fields_m2[] =
+{
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ }
+ #endif
+};
+
+static UMLRTObject payload_m2 =
+{
+ 0,
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ 1
+ #else
+ 0
+ #endif
+ ,
+ fields_m2
+};
+
+Protocol1::Base::Base( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+Protocol1::Conj::Conj( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+UMLRTOutSignal Protocol1::Conj::m1() const
+{
+ UMLRTOutSignal signal;
+ signal.initialize( "m1", signal_m1, srcPort, &payload_m1 );
+ return signal;
+}
+
+UMLRTOutSignal Protocol1::Conj::m2() const
+{
+ UMLRTOutSignal signal;
+ signal.initialize( "m2", signal_m2, srcPort, &payload_m2 );
+ return signal;
+}
+
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol1.hh b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol1.hh
new file mode 100644
index 000000000..5786c0dd6
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol1.hh
@@ -0,0 +1,32 @@
+
+#ifndef PROTOCOL1_HH
+#define PROTOCOL1_HH
+
+#include "umlrtoutsignal.hh"
+#include "umlrtprotocol.hh"
+#include "umlrtsignal.hh"
+struct UMLRTCommsPort;
+
+namespace Protocol1
+{
+ class Base : public UMLRTProtocol
+ {
+ public:
+ Base( const UMLRTCommsPort * & srcPort );
+ };
+ class Conj : public UMLRTProtocol
+ {
+ public:
+ Conj( const UMLRTCommsPort * & srcPort );
+ UMLRTOutSignal m1() const;
+ UMLRTOutSignal m2() const;
+ };
+ enum SignalId
+ {
+ signal_m1 = UMLRTSignal::FIRST_PROTOCOL_SIGNAL_ID,
+ signal_m2
+ };
+};
+
+#endif
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol2.cc b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol2.cc
new file mode 100644
index 000000000..d83d7ab74
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol2.cc
@@ -0,0 +1,50 @@
+
+#include "Protocol2.hh"
+
+#include "umlrtobjectclass.hh"
+#include "umlrtoutsignal.hh"
+struct UMLRTCommsPort;
+
+static UMLRTObject_field fields_m1[] =
+{
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ }
+ #endif
+};
+
+static UMLRTObject payload_m1 =
+{
+ 0,
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ 1
+ #else
+ 0
+ #endif
+ ,
+ fields_m1
+};
+
+Protocol2::Base::Base( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+Protocol2::Conj::Conj( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+UMLRTOutSignal Protocol2::Conj::m1() const
+{
+ UMLRTOutSignal signal;
+ signal.initialize( "m1", signal_m1, srcPort, &payload_m1 );
+ return signal;
+}
+
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol2.hh b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol2.hh
new file mode 100644
index 000000000..58c0212a0
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Protocol2.hh
@@ -0,0 +1,30 @@
+
+#ifndef PROTOCOL2_HH
+#define PROTOCOL2_HH
+
+#include "umlrtoutsignal.hh"
+#include "umlrtprotocol.hh"
+#include "umlrtsignal.hh"
+struct UMLRTCommsPort;
+
+namespace Protocol2
+{
+ class Base : public UMLRTProtocol
+ {
+ public:
+ Base( const UMLRTCommsPort * & srcPort );
+ };
+ enum SignalId
+ {
+ signal_m1 = UMLRTSignal::FIRST_PROTOCOL_SIGNAL_ID
+ };
+ class Conj : public UMLRTProtocol
+ {
+ public:
+ Conj( const UMLRTCommsPort * & srcPort );
+ UMLRTOutSignal m1() const;
+ };
+};
+
+#endif
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Top-connections.log b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Top-connections.log
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Top-connections.log
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Top.cc b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Top.cc
new file mode 100644
index 000000000..0a87759cd
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Top.cc
@@ -0,0 +1,269 @@
+
+#include "Top.hh"
+
+#include "Protocol1.hh"
+#include "Protocol2.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcommsportrole.hh"
+#include "umlrtmessage.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtframeservice.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_Top::Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: UMLRTCapsule( NULL, cd, st, border, internal, isStat )
+, protocol1( borderPorts[borderport_protocol1] )
+, protocol2( borderPorts[borderport_protocol2] )
+, currentState( SPECIAL_INTERNAL_STATE_UNVISITED )
+{
+ stateNames[State1] = "State1";
+ stateNames[State2] = "State2";
+ stateNames[State3] = "State3";
+ stateNames[State4] = "State4";
+ stateNames[State5] = "State5";
+ stateNames[SPECIAL_INTERNAL_STATE_TOP] = "<top>";
+ stateNames[SPECIAL_INTERNAL_STATE_UNVISITED] = "<uninitialized>";
+}
+
+
+
+
+
+
+void Capsule_Top::bindPort( bool isBorder, int portId, int index )
+{
+ if( isBorder )
+ switch( portId )
+ {
+ case borderport_protocol1:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_protocol1, index, true );
+ break;
+ case borderport_protocol2:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_protocol2, index, true );
+ break;
+ }
+}
+
+void Capsule_Top::unbindPort( bool isBorder, int portId, int index )
+{
+ if( isBorder )
+ switch( portId )
+ {
+ case borderport_protocol1:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_protocol1, index, false );
+ UMLRTFrameService::disconnectPort( borderPorts[borderport_protocol1], index );
+ break;
+ case borderport_protocol2:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_protocol2, index, false );
+ UMLRTFrameService::disconnectPort( borderPorts[borderport_protocol2], index );
+ break;
+ }
+}
+
+void Capsule_Top::inject( const UMLRTMessage & message )
+{
+ msg = &message;
+ switch( currentState )
+ {
+ case State1:
+ currentState = state_____State1( &message );
+ break;
+ case State2:
+ currentState = state_____State2( &message );
+ break;
+ case State3:
+ currentState = state_____State3( &message );
+ break;
+ case State4:
+ currentState = state_____State4( &message );
+ break;
+ case State5:
+ currentState = state_____State5( &message );
+ break;
+ default:
+ break;
+ }
+}
+
+void Capsule_Top::initialize( const UMLRTMessage & message )
+{
+ msg = &message;
+ actionchain_____Initial( &message );
+ currentState = State1;
+}
+
+const char * Capsule_Top::getCurrentStateString() const
+{
+ return stateNames[currentState];
+}
+
+
+
+
+void Capsule_Top::update_state( Capsule_Top::State newState )
+{
+ currentState = newState;
+}
+
+void Capsule_Top::actionchain_____Initial( const UMLRTMessage * msg )
+{
+ update_state( State1 );
+}
+
+void Capsule_Top::actionchain_____transition1( const UMLRTMessage * msg )
+{
+ update_state( SPECIAL_INTERNAL_STATE_TOP );
+ update_state( State2 );
+}
+
+void Capsule_Top::actionchain_____transition2( const UMLRTMessage * msg )
+{
+ update_state( SPECIAL_INTERNAL_STATE_TOP );
+ update_state( State3 );
+}
+
+void Capsule_Top::actionchain_____transition3( const UMLRTMessage * msg )
+{
+ update_state( SPECIAL_INTERNAL_STATE_TOP );
+ update_state( State4 );
+}
+
+void Capsule_Top::actionchain_____transition4( const UMLRTMessage * msg )
+{
+ update_state( SPECIAL_INTERNAL_STATE_TOP );
+ update_state( State5 );
+}
+
+Capsule_Top::State Capsule_Top::state_____State1( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ case port_protocol1:
+ switch( msg->getSignalId() )
+ {
+ case Protocol1::signal_m1:
+ actionchain_____transition1( msg );
+ return State2;
+ case Protocol1::signal_m2:
+ actionchain_____transition2( msg );
+ return State3;
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+ case port_protocol2:
+ switch( msg->getSignalId() )
+ {
+ case Protocol2::signal_m1:
+ actionchain_____transition3( msg );
+ return State4;
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_Top::State Capsule_Top::state_____State2( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_Top::State Capsule_Top::state_____State3( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_Top::State Capsule_Top::state_____State4( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_Top::State Capsule_Top::state_____State5( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+
+static const UMLRTCommsPortRole portroles_border[] =
+{
+ {
+ Capsule_Top::port_protocol1,
+ "Protocol1",
+ "protocol1",
+ "",
+ 1,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ },
+ {
+ Capsule_Top::port_protocol2,
+ "Protocol2",
+ "protocol2",
+ "",
+ 1,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ }
+};
+
+static void instantiate_Top( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+ slot->capsule = new Capsule_Top( &Top, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass Top =
+{
+ "Top",
+ NULL,
+ instantiate_Top,
+ 0,
+ NULL,
+ 2,
+ portroles_border,
+ 0,
+ NULL
+};
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Top.hh b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Top.hh
new file mode 100644
index 000000000..8f62b794f
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/Top.hh
@@ -0,0 +1,69 @@
+
+#ifndef TOP_HH
+#define TOP_HH
+
+#include "Protocol1.hh"
+#include "Protocol2.hh"
+#include "umlrtcapsule.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_Top : public UMLRTCapsule
+{
+public:
+ Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+protected:
+ Protocol1::Base protocol1;
+public:
+ enum BorderPortId
+ {
+ borderport_protocol1,
+ borderport_protocol2
+ };
+protected:
+ Protocol2::Base protocol2;
+public:
+ enum PartId
+ {
+ };
+ enum PortId
+ {
+ port_protocol1,
+ port_protocol2
+ };
+ virtual void bindPort( bool isBorder, int portId, int index );
+ virtual void unbindPort( bool isBorder, int portId, int index );
+ virtual void inject( const UMLRTMessage & message );
+ virtual void initialize( const UMLRTMessage & message );
+ const char * getCurrentStateString() const;
+private:
+ enum State
+ {
+ State1,
+ State2,
+ State3,
+ State4,
+ State5,
+ SPECIAL_INTERNAL_STATE_TOP,
+ SPECIAL_INTERNAL_STATE_UNVISITED
+ };
+ const char * stateNames[7];
+ State currentState;
+ void update_state( State newState );
+ void actionchain_____Initial( const UMLRTMessage * msg );
+ void actionchain_____transition1( const UMLRTMessage * msg );
+ void actionchain_____transition2( const UMLRTMessage * msg );
+ void actionchain_____transition3( const UMLRTMessage * msg );
+ void actionchain_____transition4( const UMLRTMessage * msg );
+ State state_____State1( const UMLRTMessage * msg );
+ State state_____State2( const UMLRTMessage * msg );
+ State state_____State3( const UMLRTMessage * msg );
+ State state_____State4( const UMLRTMessage * msg );
+ State state_____State5( const UMLRTMessage * msg );
+};
+extern const UMLRTCapsuleClass Top;
+
+#endif
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/TopControllers.cc b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/TopControllers.cc
new file mode 100644
index 000000000..b3ecea73a
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/TopControllers.cc
@@ -0,0 +1,102 @@
+
+#include "TopControllers.hh"
+
+#include "Top.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcommsport.hh"
+#include "umlrtcommsportfarend.hh"
+#include "umlrtcontroller.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+
+
+static UMLRTController DefaultController_( "DefaultController" );
+
+UMLRTController * DefaultController = &DefaultController_;
+
+static UMLRTCommsPortFarEnd borderfarEndList_Top[] =
+{
+ {
+ 0,
+ NULL
+ },
+ {
+ 0,
+ NULL
+ }
+};
+
+UMLRTCommsPort borderports_Top[] =
+{
+ {
+ &Top,
+ Capsule_Top::borderport_protocol1,
+ &Top_slots[InstId_Top],
+ 1,
+ borderfarEndList_Top,
+ NULL,
+ NULL,
+ "",
+ true,
+ true,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ },
+ {
+ &Top,
+ Capsule_Top::borderport_protocol2,
+ &Top_slots[InstId_Top],
+ 1,
+ &borderfarEndList_Top[1],
+ NULL,
+ NULL,
+ "",
+ true,
+ true,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ }
+};
+
+static const UMLRTCommsPort * borderports_Top_ptrs[] =
+{
+ &borderports_Top[0],
+ &borderports_Top[1]
+};
+
+static Capsule_Top top( &Top, &Top_slots[InstId_Top], borderports_Top_ptrs, NULL, true );
+
+UMLRTSlot Top_slots[] =
+{
+ {
+ "Top",
+ 0,
+ &Top,
+ NULL,
+ 0,
+ &top,
+ &DefaultController_,
+ 0,
+ NULL,
+ 2,
+ borderports_Top,
+ NULL,
+ true,
+ false
+ }
+};
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/TopControllers.hh b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/TopControllers.hh
new file mode 100644
index 000000000..0d5aac67e
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/TopControllers.hh
@@ -0,0 +1,18 @@
+
+#ifndef TOPCONTROLLERS_HH
+#define TOPCONTROLLERS_HH
+
+class UMLRTController;
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+enum CapsuleInstanceId
+{
+ InstId_Top
+};
+extern UMLRTController * DefaultController;
+extern UMLRTCommsPort borderports_Top[];
+extern UMLRTSlot Top_slots[];
+
+#endif
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/TopMain.cc b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/TopMain.cc
new file mode 100644
index 000000000..bf88ec44f
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions1/expected_src/TopMain.cc
@@ -0,0 +1,38 @@
+#include "umlrtmain.hh"
+
+#include "umlrtcontroller.hh"
+#include "TopControllers.hh"
+#include "umlrtcapsuletocontrollermap.hh"
+#include "umlrtmessagepool.hh"
+#include "umlrtsignalelementpool.hh"
+#include "umlrttimerpool.hh"
+#include "umlrtuserconfig.hh"
+#include <stdio.h>
+
+static UMLRTSignalElement signalElementBuffer[USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE];
+static UMLRTSignalElementPool signalElementPool( signalElementBuffer, USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE );
+
+static UMLRTMessage messageBuffer[USER_CONFIG_MESSAGE_POOL_SIZE];
+static UMLRTMessagePool messagePool( messageBuffer, USER_CONFIG_MESSAGE_POOL_SIZE );
+
+static UMLRTTimer timers[USER_CONFIG_TIMER_POOL_SIZE];
+static UMLRTTimerPool timerPool( timers, USER_CONFIG_TIMER_POOL_SIZE );
+
+int main( int argc, char * argv[] )
+{
+ UMLRTController::initializePools( &signalElementPool, &messagePool, &timerPool );
+ UMLRTMain::setArgs( argc, argv );
+ UMLRTCapsuleToControllerMap::setDefaultSlotList( Top_slots, 1 );
+
+ if( ! UMLRTMain::targetStartup() )
+ return EXIT_FAILURE;
+
+ DefaultController->spawn();
+
+ if( ! UMLRTMain::mainLoop() )
+ return UMLRTMain::targetShutdown( false );
+
+ DefaultController->join();
+
+ return UMLRTMain::targetShutdown( true );
+}
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/.project b/models/tests/codepattern/statemachines/AmbiguousTransitions2/.project
new file mode 100644
index 000000000..be6b9aaa9
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>AmbiguousTransitions2</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/AmbiguousTransitions2.di b/models/tests/codepattern/statemachines/AmbiguousTransitions2/AmbiguousTransitions2.di
new file mode 100644
index 000000000..47e812dba
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/AmbiguousTransitions2.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrusrt.umlrt.architecture"/>
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/AmbiguousTransitions2.notation b/models/tests/codepattern/statemachines/AmbiguousTransitions2/AmbiguousTransitions2.notation
new file mode 100644
index 000000000..78e0ffc02
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/AmbiguousTransitions2.notation
@@ -0,0 +1,797 @@
+<?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: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/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_9OAuUFBeEeeAb79RbYsirA" type="CompositeStructure" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_9OBVYFBeEeeAb79RbYsirA" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9OB8cFBeEeeAb79RbYsirA" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9OB8cVBeEeeAb79RbYsirA" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9OB8clBeEeeAb79RbYsirA" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9OB8c1BeEeeAb79RbYsirA" type="Class_StructureCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9OB8dFBeEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9OB8dVBeEeeAb79RbYsirA"/>
+ </children>
+ <element xmi:type="uml:Class" href="AmbiguousTransitions2.uml#_9LLcwFBeEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9OBVYVBeEeeAb79RbYsirA" x="40" y="40" width="500" height="250"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_9OAuUVBeEeeAb79RbYsirA" name="diagram_compatibility_version" stringValue="1.3.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_9OAuUlBeEeeAb79RbYsirA"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_9OAuU1BeEeeAb79RbYsirA" diagramKindId="org.eclipse.papyrusrt.umlrt.tooling.diagram.common.UMLRTCapsuleStructure">
+ <owner xmi:type="uml:Class" href="AmbiguousTransitions2.uml#_9LLcwFBeEeeAb79RbYsirA"/>
+ </styles>
+ <element xmi:type="uml:Class" href="AmbiguousTransitions2.uml#_9LLcwFBeEeeAb79RbYsirA"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_BlnAsFBfEeeAb79RbYsirA" type="PapyrusUMLStateMachineDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_BlnAsVBfEeeAb79RbYsirA" type="StateMachine_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BlnAslBfEeeAb79RbYsirA" type="StateMachine_NameLabel">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BlnAs1BfEeeAb79RbYsirA" width="700" height="16"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BlnAtFBfEeeAb79RbYsirA" type="StateMachine_RegionCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_BlnAtVBfEeeAb79RbYsirA" type="Region_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BlnAtlBfEeeAb79RbYsirA" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BlnAt1BfEeeAb79RbYsirA" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BlnAuFBfEeeAb79RbYsirA" type="Region_SubvertexCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CVYQwFBfEeeAb79RbYsirA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CVY30FBfEeeAb79RbYsirA" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_CMbJEFBfEeeAb79RbYsirA" type="Pseudostate_InitialShape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CVY30VBfEeeAb79RbYsirA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CVY30lBfEeeAb79RbYsirA" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CMbJElBfEeeAb79RbYsirA" type="Pseudostate_InitialFloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CMbJE1BfEeeAb79RbYsirA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CMbJFFBfEeeAb79RbYsirA" type="Pseudostate_InitialStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CMbJFVBfEeeAb79RbYsirA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_BlcooFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CMbJEVBfEeeAb79RbYsirA" x="9" y="-6"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CMbJFlBfEeeAb79RbYsirA" type="State_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CVY301BfEeeAb79RbYsirA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CVY31FBfEeeAb79RbYsirA" key="mutable" value="true"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bmvnUFBfEeeAb79RbYsirA" source="PapyrusHyperLink_Page" references="_bmo5oFBfEeeAb79RbYsirA">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bmvnUVBfEeeAb79RbYsirA" key="tooltip_text" value="Top..State1"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bmvnUlBfEeeAb79RbYsirA" key="pageName" value="Top..State1"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bmvnU1BfEeeAb79RbYsirA" key="is_default_navigation" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CMbJGFBfEeeAb79RbYsirA" type="State_NameLabel">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OzErEFBgEeeAb79RbYsirA" width="81"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CMbwIFBfEeeAb79RbYsirA" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CMbwIVBfEeeAb79RbYsirA" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CMbwIlBfEeeAb79RbYsirA" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CMbwI1BfEeeAb79RbYsirA" y="-1" width="81"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_CMbwJFBfEeeAb79RbYsirA" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CMbwJVBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CMnWUFBfEeeAb79RbYsirA" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_CMnWUVBfEeeAb79RbYsirA" name="stereotype" stringValue="UMLRTStateMachines::RTState"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/UMLRealTimeSM-addendum.profile.uml#_KKLAAFDuEeOA4ecmvfqvaw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CMnWUlBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CMnWU1BfEeeAb79RbYsirA" type="StereotypeBrace">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CMnWVFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_CMnWVVBfEeeAb79RbYsirA" name="stereotype" stringValue="UMLRTStateMachines::RTState"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/UMLRealTimeSM-addendum.profile.uml#_KKLAAFDuEeOA4ecmvfqvaw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CMnWVlBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CMn9YFBfEeeAb79RbYsirA" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CMn9YVBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CMn9YlBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CMn9cVBfEeeAb79RbYsirA" type="StereotypeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CMn9clBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_CMn9c1BfEeeAb79RbYsirA" name="stereotype" stringValue="UMLRTStateMachines::RTState"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/UMLRealTimeSM-addendum.profile.uml#_KKLAAFDuEeOA4ecmvfqvaw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CMn9dFBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bm28EFBfEeeAb79RbYsirA" type="Pseudostate_EntryPointShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_bm28ElBfEeeAb79RbYsirA" type="Pseudostate_EntryPointFloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bm28E1BfEeeAb79RbYsirA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bm28FFBfEeeAb79RbYsirA" type="Pseudostate_EntryPointStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bm28FVBfEeeAb79RbYsirA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bmw1cFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bm28EVBfEeeAb79RbYsirA" x="10" y="-5" width="10" height="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bm7NgFBfEeeAb79RbYsirA" type="Pseudostate_ExitPointShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_bm7NglBfEeeAb79RbYsirA" type="Pseudostate_ExitPointFloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bm7Ng1BfEeeAb79RbYsirA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bm70kFBfEeeAb79RbYsirA" type="Pseudostate_ExitPointStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bm70kVBfEeeAb79RbYsirA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bm4xQFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bm7NgVBfEeeAb79RbYsirA" x="76" y="8" width="10" height="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bm-34FBfEeeAb79RbYsirA" type="Pseudostate_ExitPointShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_bm_e8VBfEeeAb79RbYsirA" type="Pseudostate_ExitPointFloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bm_e8lBfEeeAb79RbYsirA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bm_e81BfEeeAb79RbYsirA" type="Pseudostate_ExitPointStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bm_e9FBfEeeAb79RbYsirA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bm8boFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bm_e8FBfEeeAb79RbYsirA" x="75" y="29" width="10" height="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_19cOQFBfEeeAb79RbYsirA" type="Pseudostate_ExitPointShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_19c1UFBfEeeAb79RbYsirA" type="Pseudostate_ExitPointFloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_19c1UVBfEeeAb79RbYsirA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_19c1UlBfEeeAb79RbYsirA" type="Pseudostate_ExitPointStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_19c1U1BfEeeAb79RbYsirA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_18bhoFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_19cOQVBfEeeAb79RbYsirA" x="76" y="49" width="10" height="10"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions2.uml#_BlgTAFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CMbJF1BfEeeAb79RbYsirA" x="109" y="114" width="81" height="75"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CMh2w1BfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CMh2xFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_CMh2xlBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_BlcooFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CMh2xVBfEeeAb79RbYsirA" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CMn9Y1BfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CMn9ZFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_CMn9ZlBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions2.uml#_BlgTAFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CMn9ZVBfEeeAb79RbYsirA" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DKkMUFBfEeeAb79RbYsirA" type="State_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DKkMUlBfEeeAb79RbYsirA" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DKkMU1BfEeeAb79RbYsirA" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DKkMVFBfEeeAb79RbYsirA" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DKkMVVBfEeeAb79RbYsirA" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DKkMVlBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_DKkMV1BfEeeAb79RbYsirA" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DKkMWFBfEeeAb79RbYsirA"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions2.uml#_DKWw8FBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DKkMUVBfEeeAb79RbYsirA" x="329" y="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DKvLc1BfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DKvLdFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_DKvLdlBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions2.uml#_DKWw8FBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DKvLdVBfEeeAb79RbYsirA" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DkK_IFBfEeeAb79RbYsirA" type="State_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DkK_IlBfEeeAb79RbYsirA" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DkK_I1BfEeeAb79RbYsirA" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DkLmMFBfEeeAb79RbYsirA" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DkLmMVBfEeeAb79RbYsirA" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DkLmMlBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_DkLmM1BfEeeAb79RbYsirA" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DkLmNFBfEeeAb79RbYsirA"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions2.uml#_Dj7ukFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DkK_IVBfEeeAb79RbYsirA" x="329" y="128"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DkUwJ1BfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DkUwKFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_DkUwKlBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions2.uml#_Dj7ukFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DkUwKVBfEeeAb79RbYsirA" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZxKlwFBfEeeAb79RbYsirA" type="State_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZxKlwlBfEeeAb79RbYsirA" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZxKlw1BfEeeAb79RbYsirA" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZxKlxFBfEeeAb79RbYsirA" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZxKlxVBfEeeAb79RbYsirA" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZxKlxlBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_ZxKlx1BfEeeAb79RbYsirA" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZxKlyFBfEeeAb79RbYsirA"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions2.uml#_Zw1OkFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZxKlwVBfEeeAb79RbYsirA" x="329" y="194"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZxUWx1BfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZxUWyFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZxUWylBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions2.uml#_Zw1OkFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZxUWyVBfEeeAb79RbYsirA" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bq9Y81BfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bq9Y9FBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_bq9Y9lBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bmw1cFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bq9Y9VBfEeeAb79RbYsirA" x="210" y="-5"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_brDfk1BfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_brDflFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_brDfllBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bm4xQFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_brDflVBfEeeAb79RbYsirA" x="235" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_brKNQFBfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_brKNQVBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_brKNQ1BfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bm8boFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_brKNQlBfEeeAb79RbYsirA" x="235" y="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_196vY1BfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_196vZFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_196vZlBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_18bhoFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_196vZVBfEeeAb79RbYsirA" x="195" y="35"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BlnAuVBfEeeAb79RbYsirA"/>
+ </children>
+ <element xmi:type="uml:Region" href="AmbiguousTransitions2.uml#_BlaMYFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BlnAulBfEeeAb79RbYsirA" width="700" height="280"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CMW3oFBfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CMW3oVBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_CMXesFBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Region" href="AmbiguousTransitions2.uml#_BlaMYFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CMW3olBfEeeAb79RbYsirA" x="200"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BlnAu1BfEeeAb79RbYsirA" y="16" width="700" height="284"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="AmbiguousTransitions2.uml#_BlUs0FBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BlnAvFBfEeeAb79RbYsirA" x="30" y="30" width="700" height="300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CMSmMFBfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CMSmMVBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_CMSmM1BfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:StateMachine" href="AmbiguousTransitions2.uml#_BlUs0FBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CMSmMlBfEeeAb79RbYsirA" x="230" y="30"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_BlnAvVBfEeeAb79RbYsirA" name="diagram_compatibility_version" stringValue="1.3.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_BlnAvlBfEeeAb79RbYsirA"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_BlnAv1BfEeeAb79RbYsirA" diagramKindId="org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine.UMLRTStateMachine">
+ <owner xmi:type="uml:StateMachine" href="AmbiguousTransitions2.uml#_BlUs0FBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xmi:type="uml:StateMachine" href="AmbiguousTransitions2.uml#_BlUs0FBfEeeAb79RbYsirA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_CMSmNFBfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_BlnAsVBfEeeAb79RbYsirA" target="_CMSmMFBfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_CMSmNVBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_CMTNQFBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:StateMachine" href="AmbiguousTransitions2.uml#_BlUs0FBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CMSmNlBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CMSmN1BfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CMSmOFBfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CMXesVBfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_BlnAtVBfEeeAb79RbYsirA" target="_CMW3oFBfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_CMXeslBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_CMXetlBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Region" href="AmbiguousTransitions2.uml#_BlaMYFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CMXes1BfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CMXetFBfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CMXetVBfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CMh2x1BfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_CMbJEFBfEeeAb79RbYsirA" target="_CMh2w1BfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_CMh2yFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_CMh2zFBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_BlcooFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CMh2yVBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CMh2ylBfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CMh2y1BfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CMn9Z1BfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_CMbJFlBfEeeAb79RbYsirA" target="_CMn9Y1BfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_CMn9aFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_CMn9bFBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions2.uml#_BlgTAFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CMn9aVBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CMn9alBfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CMn9a1BfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CVHLAFBfEeeAb79RbYsirA" type="Transition_Edge" source="_CMbJEFBfEeeAb79RbYsirA" target="_bm28EFBfEeeAb79RbYsirA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CXABYFBfEeeAb79RbYsirA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CXABYVBfEeeAb79RbYsirA" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CVHLA1BfEeeAb79RbYsirA" type="Transition_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CpmNQFBfEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CVHLBFBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CVHLBVBfEeeAb79RbYsirA" type="Transition_GuardLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CpxzcFBfEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CVHLBlBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CVHLB1BfEeeAb79RbYsirA" type="Transition_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Cp69YFBfEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CVHLCFBfEeeAb79RbYsirA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CVHLAVBfEeeAb79RbYsirA"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions2.uml#_BljWUFBfEeeAb79RbYsirA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CVHLAlBfEeeAb79RbYsirA" points="[40, 46, -643984, -643984]$[40, 46, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CVHLCVBfEeeAb79RbYsirA" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CVHLClBfEeeAb79RbYsirA" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DKvLd1BfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_DKkMUFBfEeeAb79RbYsirA" target="_DKvLc1BfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_DKvLeFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_DKvLfFBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions2.uml#_DKWw8FBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DKvLeVBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DKvLelBfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DKvLe1BfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DkUwK1BfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_DkK_IFBfEeeAb79RbYsirA" target="_DkUwJ1BfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_DkUwLFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_DkVXMlBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions2.uml#_Dj7ukFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DkUwLVBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DkVXMFBfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DkVXMVBfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_X5qRkFBfEeeAb79RbYsirA" type="Transition_Edge" source="_bm7NgFBfEeeAb79RbYsirA" target="_DKkMUFBfEeeAb79RbYsirA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_X5qRk1BfEeeAb79RbYsirA" type="Transition_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Yh4IIFBfEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_X5qRlFBfEeeAb79RbYsirA" x="-22" y="-8"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_X5qRlVBfEeeAb79RbYsirA" type="Transition_GuardLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_YiLDEFBfEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_X5qRllBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_X5qRl1BfEeeAb79RbYsirA" type="Transition_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Yid-AFBfEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_X5qRmFBfEeeAb79RbYsirA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_X5qRkVBfEeeAb79RbYsirA"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions2.uml#_X5Zy4FBfEeeAb79RbYsirA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_X5qRklBfEeeAb79RbYsirA" points="[15, 0, -156, 43]$[155, -40, -16, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_X6XcMFBfEeeAb79RbYsirA" id="(0.75,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_X6XcMVBfEeeAb79RbYsirA" id="(0.4,0.425)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZxU90FBfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_ZxKlwFBfEeeAb79RbYsirA" target="_ZxUWx1BfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZxU90VBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ZxU91VBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions2.uml#_Zw1OkFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZxU90lBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZxU901BfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZxU91FBfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_atoOAFBfEeeAb79RbYsirA" type="Transition_Edge" source="_CMbJFlBfEeeAb79RbYsirA" target="_DkK_IFBfEeeAb79RbYsirA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ato1EFBfEeeAb79RbYsirA" type="Transition_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_PkeS0FBgEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ato1EVBfEeeAb79RbYsirA" x="-4" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ato1ElBfEeeAb79RbYsirA" type="Transition_GuardLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Pk37cFBgEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ato1E1BfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ato1FFBfEeeAb79RbYsirA" type="Transition_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_PlMrkFBgEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ato1FVBfEeeAb79RbYsirA" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_atoOAVBfEeeAb79RbYsirA"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions2.uml#_atTd4FBfEeeAb79RbYsirA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_atoOAlBfEeeAb79RbYsirA" points="[220, 200, -643984, -643984]$[360, 200, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aufJoFBfEeeAb79RbYsirA" id="(1.0,0.5573770491803278)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aufJoVBfEeeAb79RbYsirA" id="(0.375,0.525)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_bq9Y91BfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_bm28EFBfEeeAb79RbYsirA" target="_bq9Y81BfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_bq9Y-FBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_bq-AAVBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bmw1cFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bq9Y-VBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bq9Y-lBfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bq-AAFBfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_brDfl1BfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_bm7NgFBfEeeAb79RbYsirA" target="_brDfk1BfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_brDfmFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_brDfnFBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bm4xQFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_brDfmVBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_brDfmlBfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_brDfm1BfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_brKNRFBfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_bm-34FBfEeeAb79RbYsirA" target="_brKNQFBfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_brKNRVBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_brKNSVBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bm8boFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_brKNRlBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_brKNR1BfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_brKNSFBfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_19HeIFBfEeeAb79RbYsirA" type="Transition_Edge" source="_19cOQFBfEeeAb79RbYsirA" target="_ZxKlwFBfEeeAb79RbYsirA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_19HeI1BfEeeAb79RbYsirA" type="Transition_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_2ay4oFBfEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_19HeJFBfEeeAb79RbYsirA" x="5" y="-7"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_19HeJVBfEeeAb79RbYsirA" type="Transition_GuardLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_2bJd8FBfEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_19HeJlBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_19HeJ1BfEeeAb79RbYsirA" type="Transition_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_2bjtoFBfEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_19HeKFBfEeeAb79RbYsirA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_19HeIVBfEeeAb79RbYsirA"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions2.uml#_18fMAFBfEeeAb79RbYsirA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_19HeIlBfEeeAb79RbYsirA" points="[-13, 4, -196, -68]$[167, 74, -16, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1_NI0FBfEeeAb79RbYsirA" id="(0.65,0.675)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1_NI0VBfEeeAb79RbYsirA" id="(0.4,0.45)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_196vZ1BfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_19cOQFBfEeeAb79RbYsirA" target="_196vY1BfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_196vaFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_196vbFBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_18bhoFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_196vaVBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_196valBfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_196va1BfEeeAb79RbYsirA"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_bmo5oFBfEeeAb79RbYsirA" type="PapyrusUMLStateMachineDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_bmo5oVBfEeeAb79RbYsirA" type="State_Shape_TN">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2BavUFBfEeeAb79RbYsirA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2BavUVBfEeeAb79RbYsirA" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bmo5olBfEeeAb79RbYsirA" type="State_NameLabel_TN">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bmo5o1BfEeeAb79RbYsirA" width="700" height="16"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bmo5pFBfEeeAb79RbYsirA" type="State_RegionCompartment_TN">
+ <children xmi:type="notation:Shape" xmi:id="_bmo5pVBfEeeAb79RbYsirA" type="Region_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bmo5plBfEeeAb79RbYsirA" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bmo5p1BfEeeAb79RbYsirA" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bmo5qFBfEeeAb79RbYsirA" type="Region_SubvertexCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_dVLfEFBfEeeAb79RbYsirA" type="State_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dVMGIFBfEeeAb79RbYsirA" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dVMGIVBfEeeAb79RbYsirA" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dVMGIlBfEeeAb79RbYsirA" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dVMGI1BfEeeAb79RbYsirA" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dVMGJFBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_dVMGJVBfEeeAb79RbYsirA" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dVMGJlBfEeeAb79RbYsirA"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions2.uml#_dVBHAFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dVLfEVBfEeeAb79RbYsirA" x="329" y="114"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dVWeMFBfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dVWeMVBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_dVWeM1BfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions2.uml#_dVBHAFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dVWeMlBfEeeAb79RbYsirA" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gO6FQFBfEeeAb79RbYsirA" type="State_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gO6FQlBfEeeAb79RbYsirA" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gO6FQ1BfEeeAb79RbYsirA" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gO6FRFBfEeeAb79RbYsirA" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gO6FRVBfEeeAb79RbYsirA" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gO6FRlBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_gO6FR1BfEeeAb79RbYsirA" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gO6FSFBfEeeAb79RbYsirA"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions2.uml#_gOqNoFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gO6FQVBfEeeAb79RbYsirA" x="449" y="54"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gPEdU1BfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gPEdVFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gPFEYFBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions2.uml#_gOqNoFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gPEdVVBfEeeAb79RbYsirA" x="200"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bmo5qVBfEeeAb79RbYsirA"/>
+ </children>
+ <element xmi:type="uml:Region" href="AmbiguousTransitions2.uml#_bmnrgFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bmo5qlBfEeeAb79RbYsirA" width="700" height="280"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bpCtY1BfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bpCtZFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_bpCtZlBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Region" href="AmbiguousTransitions2.uml#_bmnrgFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bpCtZVBfEeeAb79RbYsirA" x="200"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bmo5q1BfEeeAb79RbYsirA" y="16" width="700" height="280"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_bmo5rFBfEeeAb79RbYsirA" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bmo5rVBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bnDJUFBfEeeAb79RbYsirA" type="Pseudostate_EntryPointShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_bnDwYFBfEeeAb79RbYsirA" type="Pseudostate_EntryPointFloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bnDwYVBfEeeAb79RbYsirA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bnDwYlBfEeeAb79RbYsirA" type="Pseudostate_EntryPointStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bnDwY1BfEeeAb79RbYsirA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bmw1cFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bnDJUVBfEeeAb79RbYsirA" x="259" y="-5"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bnDwZFBfEeeAb79RbYsirA" type="Pseudostate_ExitPointShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_bnDwZlBfEeeAb79RbYsirA" type="Pseudostate_ExitPointFloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bnDwZ1BfEeeAb79RbYsirA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bnDwaFBfEeeAb79RbYsirA" type="Pseudostate_ExitPointStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bnDwaVBfEeeAb79RbYsirA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bm4xQFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bnDwZVBfEeeAb79RbYsirA" x="695" y="62"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bnEXcFBfEeeAb79RbYsirA" type="Pseudostate_ExitPointShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_bnEXclBfEeeAb79RbYsirA" type="Pseudostate_ExitPointFloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bnEXc1BfEeeAb79RbYsirA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bnEXdFBfEeeAb79RbYsirA" type="Pseudostate_ExitPointStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bnEXdVBfEeeAb79RbYsirA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bm8boFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bnEXcVBfEeeAb79RbYsirA" x="695" y="145"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bo904FBfEeeAb79RbYsirA" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_bo904VBfEeeAb79RbYsirA" name="stereotype" stringValue="UMLRTStateMachines::RTState"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/UMLRealTimeSM-addendum.profile.uml#_KKLAAFDuEeOA4ecmvfqvaw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bo904lBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bo-b8FBfEeeAb79RbYsirA" type="StereotypeBrace">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bo-b8VBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_bo-b8lBfEeeAb79RbYsirA" name="stereotype" stringValue="UMLRTStateMachines::RTState"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/UMLRealTimeSM-addendum.profile.uml#_KKLAAFDuEeOA4ecmvfqvaw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bo-b81BfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bo-b9FBfEeeAb79RbYsirA" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bo-b9VBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bo-b9lBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bo_DBFBfEeeAb79RbYsirA" type="StereotypeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bo_DBVBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_bo_DBlBfEeeAb79RbYsirA" name="stereotype" stringValue="UMLRTStateMachines::RTState"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/UMLRealTimeSM-addendum.profile.uml#_KKLAAFDuEeOA4ecmvfqvaw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bo_DB1BfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_19hGwFBfEeeAb79RbYsirA" type="Pseudostate_ExitPointShape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2BavUlBfEeeAb79RbYsirA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2BavU1BfEeeAb79RbYsirA" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_19hGwlBfEeeAb79RbYsirA" type="Pseudostate_ExitPointFloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_19hGw1BfEeeAb79RbYsirA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_19hGxFBfEeeAb79RbYsirA" type="Pseudostate_ExitPointStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_19hGxVBfEeeAb79RbYsirA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_18bhoFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_19hGwVBfEeeAb79RbYsirA" x="695" y="242" width="10" height="10"/>
+ </children>
+ <element xmi:type="uml:State" href="AmbiguousTransitions2.uml#_BlgTAFBfEeeAb79RbYsirA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bmo5rlBfEeeAb79RbYsirA" x="30" y="30" width="700" height="296"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bo-b91BfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bo-b-FBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_bo-b-lBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions2.uml#_BlgTAFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bo-b-VBfEeeAb79RbYsirA" x="230" y="30"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bpKpM1BfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bpKpNFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_bpKpNlBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bmw1cFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bpKpNVBfEeeAb79RbYsirA" x="461" y="-5"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bpNFd1BfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bpNFeFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_bpNsgFBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bm4xQFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bpNFeVBfEeeAb79RbYsirA" x="895" y="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bpQv01BfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bpQv1FBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_bpQv1lBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bm8boFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bpQv1VBfEeeAb79RbYsirA" x="895" y="184"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_19nNZ1BfEeeAb79RbYsirA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_19nNaFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_19nNalBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_18bhoFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_19nNaVBfEeeAb79RbYsirA" x="195" y="291"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_bmo5r1BfEeeAb79RbYsirA" name="diagram_compatibility_version" stringValue="1.3.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_bmo5sFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_bmo5sVBfEeeAb79RbYsirA" diagramKindId="org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine.UMLRTStateMachine">
+ <owner xmi:type="uml:State" href="AmbiguousTransitions2.uml#_BlgTAFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xmi:type="uml:State" href="AmbiguousTransitions2.uml#_BlgTAFBfEeeAb79RbYsirA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_bo-b-1BfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_bmo5oVBfEeeAb79RbYsirA" target="_bo-b91BfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_bo-b_FBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_bo-cAFBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions2.uml#_BlgTAFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bo-b_VBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bo-b_lBfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bo-b_1BfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_bpCtZ1BfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_bmo5pVBfEeeAb79RbYsirA" target="_bpCtY1BfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_bpCtaFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_bpCtbFBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Region" href="AmbiguousTransitions2.uml#_bmnrgFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bpCtaVBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bpCtalBfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bpCta1BfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_bpKpN1BfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_bnDJUFBfEeeAb79RbYsirA" target="_bpKpM1BfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_bpKpOFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_bpLQQFBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bmw1cFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bpKpOVBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bpKpOlBfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bpKpO1BfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_bpNsgVBfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_bnDwZFBfEeeAb79RbYsirA" target="_bpNFd1BfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_bpNsglBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_bpNshlBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bm4xQFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bpNsg1BfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bpNshFBfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bpNshVBfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_bpQv11BfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_bnEXcFBfEeeAb79RbYsirA" target="_bpQv01BfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_bpQv2FBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_bpRW4lBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_bm8boFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bpQv2VBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bpRW4FBfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bpRW4VBfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dVWeNFBfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_dVLfEFBfEeeAb79RbYsirA" target="_dVWeMFBfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_dVWeNVBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_dVWeOVBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions2.uml#_dVBHAFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dVWeNlBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dVWeN1BfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dVWeOFBfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_fCA0UFBfEeeAb79RbYsirA" type="Transition_Edge" source="_bnDJUFBfEeeAb79RbYsirA" target="_dVLfEFBfEeeAb79RbYsirA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_fCA0U1BfEeeAb79RbYsirA" type="Transition_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_fkKfIFBfEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fCA0VFBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fCA0VVBfEeeAb79RbYsirA" type="Transition_GuardLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_fkWsYFBfEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fCA0VlBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fCA0V1BfEeeAb79RbYsirA" type="Transition_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_fkf2UFBfEeeAb79RbYsirA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fCA0WFBfEeeAb79RbYsirA" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_fCA0UVBfEeeAb79RbYsirA"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions2.uml#_fB0nEFBfEeeAb79RbYsirA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fCA0UlBfEeeAb79RbYsirA" points="[294, 35, -643984, -643984]$[294, 180, -643984, -643984]$[360, 180, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1LirsFBpEeevEbN5fxKHMg" id="(0.5,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fChKoFBfEeeAb79RbYsirA" id="(0.0,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gPFEYVBfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_gO6FQFBfEeeAb79RbYsirA" target="_gPEdU1BfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_gPFEYlBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gPFEZlBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="AmbiguousTransitions2.uml#_gOqNoFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gPFEY1BfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gPFEZFBfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gPFEZVBfEeeAb79RbYsirA"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_hguScFBfEeeAb79RbYsirA" type="Transition_Edge" source="_dVLfEFBfEeeAb79RbYsirA" target="_gO6FQFBfEeeAb79RbYsirA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_hguSc1BfEeeAb79RbYsirA" type="Transition_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_zHskoFBpEeevEbN5fxKHMg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hguSdFBfEeeAb79RbYsirA" x="-6" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hgu5gFBfEeeAb79RbYsirA" type="Transition_GuardLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_zIP-QFBpEeevEbN5fxKHMg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hgu5gVBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_hgu5glBfEeeAb79RbYsirA" type="Transition_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_zIw7oFBpEeevEbN5fxKHMg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hgu5g1BfEeeAb79RbYsirA" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_hguScVBfEeeAb79RbYsirA"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions2.uml#_hggQAFBfEeeAb79RbYsirA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hguSclBfEeeAb79RbYsirA" points="[-4, -6, -197, 38]$[176, -46, -17, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hhUvYFBfEeeAb79RbYsirA" id="(1.0,0.25)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hhUvYVBfEeeAb79RbYsirA" id="(0.425,0.55)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_jDjXIFBfEeeAb79RbYsirA" type="Transition_Edge" source="_dVLfEFBfEeeAb79RbYsirA" target="_bnEXcFBfEeeAb79RbYsirA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jDjXI1BfEeeAb79RbYsirA" type="Transition_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_wAm34FBpEeevEbN5fxKHMg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jDj-MFBfEeeAb79RbYsirA" x="3" y="-16"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jDj-MVBfEeeAb79RbYsirA" type="Transition_GuardLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_wBGnIFBpEeevEbN5fxKHMg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jDj-MlBfEeeAb79RbYsirA"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jDj-M1BfEeeAb79RbYsirA" type="Transition_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_wBlvUFBpEeevEbN5fxKHMg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jDj-NFBfEeeAb79RbYsirA" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_jDjXIVBfEeeAb79RbYsirA"/>
+ <element xmi:type="uml:Transition" href="AmbiguousTransitions2.uml#_jCEJYFBfEeeAb79RbYsirA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jDjXIlBfEeeAb79RbYsirA" points="[400, 180, -643984, -643984]$[700, 180, -643984, -643984]$[700, 177, -643984, -643984]$[726, 177, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jEP6sFBfEeeAb79RbYsirA" id="(1.0,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_19nNa1BfEeeAb79RbYsirA" type="StereotypeCommentLink" source="_19hGwFBfEeeAb79RbYsirA" target="_19nNZ1BfEeeAb79RbYsirA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_19nNbFBfEeeAb79RbYsirA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_19n0clBfEeeAb79RbYsirA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="AmbiguousTransitions2.uml#_18bhoFBfEeeAb79RbYsirA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_19nNbVBfEeeAb79RbYsirA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_19n0cFBfEeeAb79RbYsirA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_19n0cVBfEeeAb79RbYsirA"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/AmbiguousTransitions2.uml b/models/tests/codepattern/statemachines/AmbiguousTransitions2/AmbiguousTransitions2.uml
new file mode 100644
index 000000000..50e6fa612
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/AmbiguousTransitions2.uml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:UMLRTStateMachines="http://www.eclipse.org/papyrus/umlrt/statemachine" xmlns:UMLRealTime="http://www.eclipse.org/papyrus/umlrt" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <uml:Model xmi:id="_60CmQFBeEeeAb79RbYsirA" name="AmbiguousTransitions2">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_60CmQVBeEeeAb79RbYsirA" source="http://www.eclipse.org/papyrus-rt/language/1.0.0">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_60CmQlBeEeeAb79RbYsirA" key="language" value="umlrt-cpp"/>
+ </eAnnotations>
+ <packagedElement xmi:type="uml:Class" xmi:id="_9LLcwFBeEeeAb79RbYsirA" name="Top" classifierBehavior="_BlUs0FBfEeeAb79RbYsirA" isActive="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_-zKuQFBeEeeAb79RbYsirA" name="protocol1" visibility="public" type="__EqG4FBeEeeAb79RbYsirA" isOrdered="true" aggregation="composite" isBehavior="true" isService="true"/>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_AS9tEFBfEeeAb79RbYsirA" name="protocol2" visibility="public" type="_Ai5mgFBfEeeAb79RbYsirA" isOrdered="true" aggregation="composite" isBehavior="true" isService="true"/>
+ <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_BlUs0FBfEeeAb79RbYsirA" name="StateMachine" isReentrant="false">
+ <region xmi:type="uml:Region" xmi:id="_BlaMYFBfEeeAb79RbYsirA" name="Region">
+ <transition xmi:type="uml:Transition" xmi:id="_BljWUFBfEeeAb79RbYsirA" name="Initial" source="_BlcooFBfEeeAb79RbYsirA" target="_bmw1cFBfEeeAb79RbYsirA"/>
+ <transition xmi:type="uml:Transition" xmi:id="_X5Zy4FBfEeeAb79RbYsirA" kind="external" source="_bm4xQFBfEeeAb79RbYsirA" target="_DKWw8FBfEeeAb79RbYsirA">
+ <trigger xmi:type="uml:Trigger" xmi:id="_wz3sYFBfEeeAb79RbYsirA" event="_qYJmIFBfEeeAb79RbYsirA" port="_-zKuQFBeEeeAb79RbYsirA"/>
+ </transition>
+ <transition xmi:type="uml:Transition" xmi:id="_atTd4FBfEeeAb79RbYsirA" name="" kind="external" source="_BlgTAFBfEeeAb79RbYsirA" target="_Dj7ukFBfEeeAb79RbYsirA">
+ <trigger xmi:type="uml:Trigger" xmi:id="_y5U9AFBfEeeAb79RbYsirA" event="_ulNccFBfEeeAb79RbYsirA" port="_AS9tEFBfEeeAb79RbYsirA"/>
+ </transition>
+ <transition xmi:type="uml:Transition" xmi:id="_18fMAFBfEeeAb79RbYsirA" name="" kind="external" source="_18bhoFBfEeeAb79RbYsirA" target="_Zw1OkFBfEeeAb79RbYsirA">
+ <trigger xmi:type="uml:Trigger" xmi:id="_28xkUFBfEeeAb79RbYsirA" event="_spOQ4FBfEeeAb79RbYsirA" port="_AS9tEFBfEeeAb79RbYsirA"/>
+ </transition>
+ <subvertex xmi:type="uml:Pseudostate" xmi:id="_BlcooFBfEeeAb79RbYsirA" kind="initial"/>
+ <subvertex xmi:type="uml:State" xmi:id="_BlgTAFBfEeeAb79RbYsirA" name="State1">
+ <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_bmw1cFBfEeeAb79RbYsirA" kind="entryPoint"/>
+ <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_bm4xQFBfEeeAb79RbYsirA" kind="exitPoint"/>
+ <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_bm8boFBfEeeAb79RbYsirA" kind="exitPoint"/>
+ <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_18bhoFBfEeeAb79RbYsirA" kind="exitPoint"/>
+ <region xmi:type="uml:Region" xmi:id="_bmnrgFBfEeeAb79RbYsirA" name="Region1">
+ <transition xmi:type="uml:Transition" xmi:id="_fB0nEFBfEeeAb79RbYsirA" kind="local" source="_bmw1cFBfEeeAb79RbYsirA" target="_dVBHAFBfEeeAb79RbYsirA"/>
+ <transition xmi:type="uml:Transition" xmi:id="_hggQAFBfEeeAb79RbYsirA" name="" kind="external" source="_dVBHAFBfEeeAb79RbYsirA" target="_gOqNoFBfEeeAb79RbYsirA">
+ <trigger xmi:type="uml:Trigger" xmi:id="_7jLuwFBfEeeAb79RbYsirA" event="_qYJmIFBfEeeAb79RbYsirA" port="_-zKuQFBeEeeAb79RbYsirA"/>
+ </transition>
+ <transition xmi:type="uml:Transition" xmi:id="_jCEJYFBfEeeAb79RbYsirA" name="" kind="external" source="_dVBHAFBfEeeAb79RbYsirA" target="_bm8boFBfEeeAb79RbYsirA">
+ <trigger xmi:type="uml:Trigger" xmi:id="__G4fAFBfEeeAb79RbYsirA" event="_rdgEoFBfEeeAb79RbYsirA" port="_-zKuQFBeEeeAb79RbYsirA"/>
+ </transition>
+ <subvertex xmi:type="uml:State" xmi:id="_dVBHAFBfEeeAb79RbYsirA" name="State1"/>
+ <subvertex xmi:type="uml:State" xmi:id="_gOqNoFBfEeeAb79RbYsirA" name="State2"/>
+ </region>
+ </subvertex>
+ <subvertex xmi:type="uml:State" xmi:id="_DKWw8FBfEeeAb79RbYsirA" name="State2"/>
+ <subvertex xmi:type="uml:State" xmi:id="_Dj7ukFBfEeeAb79RbYsirA" name="State3"/>
+ <subvertex xmi:type="uml:State" xmi:id="_Zw1OkFBfEeeAb79RbYsirA" name="State4"/>
+ </region>
+ </ownedBehavior>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="__EsjIFBeEeeAb79RbYsirA" name="Protocol1">
+ <packagedElement xmi:type="uml:Collaboration" xmi:id="__EqG4FBeEeeAb79RbYsirA" name="Protocol1">
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="__Ez34FBeEeeAb79RbYsirA" client="__EqG4FBeEeeAb79RbYsirA" supplier="__Ew0kFBeEeeAb79RbYsirA" contract="__Ew0kFBeEeeAb79RbYsirA"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="__E8awFBeEeeAb79RbYsirA" client="__EqG4FBeEeeAb79RbYsirA" supplier="__E4wYVBeEeeAb79RbYsirA" contract="__E4wYVBeEeeAb79RbYsirA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="__Ew0kFBeEeeAb79RbYsirA" name="Protocol1">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_qYEGkFBfEeeAb79RbYsirA" name="m1"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_rdalEFBfEeeAb79RbYsirA" name="m2"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="__E1GAFBeEeeAb79RbYsirA" name="Protocol1~"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="__E4JUFBeEeeAb79RbYsirA" client="__EqG4FBeEeeAb79RbYsirA" supplier="__E1GAFBeEeeAb79RbYsirA"/>
+ <packagedElement xmi:type="uml:AnyReceiveEvent" xmi:id="__E4wYFBeEeeAb79RbYsirA" name="*"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="__E4wYVBeEeeAb79RbYsirA" name="Protocol1IO"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="__E9B0FBeEeeAb79RbYsirA" client="__EqG4FBeEeeAb79RbYsirA" supplier="__E4wYVBeEeeAb79RbYsirA"/>
+ <packagedElement xmi:type="uml:CallEvent" xmi:id="_qYJmIFBfEeeAb79RbYsirA" operation="_qYEGkFBfEeeAb79RbYsirA"/>
+ <packagedElement xmi:type="uml:CallEvent" xmi:id="_rdgEoFBfEeeAb79RbYsirA" operation="_rdalEFBfEeeAb79RbYsirA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Ai8CwFBfEeeAb79RbYsirA" name="Protocol2">
+ <packagedElement xmi:type="uml:Collaboration" xmi:id="_Ai5mgFBfEeeAb79RbYsirA" name="Protocol2">
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_AjBiUFBfEeeAb79RbYsirA" client="_Ai5mgFBfEeeAb79RbYsirA" supplier="_Ai-fAFBfEeeAb79RbYsirA" contract="_Ai-fAFBfEeeAb79RbYsirA"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_AjHo8FBfEeeAb79RbYsirA" client="_Ai5mgFBfEeeAb79RbYsirA" supplier="_AjFMsVBfEeeAb79RbYsirA" contract="_AjFMsVBfEeeAb79RbYsirA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_Ai-fAFBfEeeAb79RbYsirA" name="Protocol2">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_spIKQFBfEeeAb79RbYsirA" name="m1"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ulH84FBfEeeAb79RbYsirA" name="m2"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_AjCJYFBfEeeAb79RbYsirA" name="Protocol2~"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_AjEloFBfEeeAb79RbYsirA" client="_Ai5mgFBfEeeAb79RbYsirA" supplier="_AjCJYFBfEeeAb79RbYsirA"/>
+ <packagedElement xmi:type="uml:AnyReceiveEvent" xmi:id="_AjFMsFBfEeeAb79RbYsirA" name="*"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_AjFMsVBfEeeAb79RbYsirA" name="Protocol2IO"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_AjHo8VBfEeeAb79RbYsirA" client="_Ai5mgFBfEeeAb79RbYsirA" supplier="_AjFMsVBfEeeAb79RbYsirA"/>
+ <packagedElement xmi:type="uml:CallEvent" xmi:id="_spOQ4FBfEeeAb79RbYsirA" operation="_spIKQFBfEeeAb79RbYsirA"/>
+ <packagedElement xmi:type="uml:CallEvent" xmi:id="_ulNccFBfEeeAb79RbYsirA" operation="_ulH84FBfEeeAb79RbYsirA"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_60CmQ1BeEeeAb79RbYsirA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_60CmRFBeEeeAb79RbYsirA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_1h74oEeVEeO0lv5O1DTHOQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_60CmRVBeEeeAb79RbYsirA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_60CmRlBeEeeAb79RbYsirA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt/statemachine#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/UMLRealTimeSM-addendum.profile.uml#_KLcn0FDtEeOA4ecmvfqvaw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_60CmR1BeEeeAb79RbYsirA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_60CmSFBeEeeAb79RbYsirA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt/cppproperties#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UMLRT_CPP/RTCppProperties.profile.uml#_vl5LALs8EeSTjNEQkASznQ"/>
+ </profileApplication>
+ </uml:Model>
+ <UMLRealTime:Capsule xmi:id="_9OCjgFBeEeeAb79RbYsirA" base_Class="_9LLcwFBeEeeAb79RbYsirA"/>
+ <UMLRealTime:RTPort xmi:id="_-zOYoFBeEeeAb79RbYsirA" isPublish="false" isWired="true" base_Port="_-zKuQFBeEeeAb79RbYsirA"/>
+ <UMLRealTime:ProtocolContainer xmi:id="__EvmcFBeEeeAb79RbYsirA" base_Package="__EsjIFBeEeeAb79RbYsirA"/>
+ <UMLRealTime:RTMessageSet xmi:id="__EzQ0FBeEeeAb79RbYsirA" base_Interface="__Ew0kFBeEeeAb79RbYsirA"/>
+ <UMLRealTime:RTMessageSet xmi:id="__E27MFBeEeeAb79RbYsirA" base_Interface="__E1GAFBeEeeAb79RbYsirA" rtMsgKind="out"/>
+ <UMLRealTime:RTMessageSet xmi:id="__E7MoFBeEeeAb79RbYsirA" base_Interface="__E4wYVBeEeeAb79RbYsirA" rtMsgKind="inOut"/>
+ <UMLRealTime:Protocol xmi:id="__E9o4FBeEeeAb79RbYsirA" base_Collaboration="__EqG4FBeEeeAb79RbYsirA"/>
+ <UMLRealTime:RTPort xmi:id="_ATBXcFBfEeeAb79RbYsirA" isPublish="false" isWired="true" base_Port="_AS9tEFBfEeeAb79RbYsirA"/>
+ <UMLRealTime:ProtocolContainer xmi:id="_Ai938FBfEeeAb79RbYsirA" base_Package="_Ai8CwFBfEeeAb79RbYsirA"/>
+ <UMLRealTime:RTMessageSet xmi:id="_AjA7QFBfEeeAb79RbYsirA" base_Interface="_Ai-fAFBfEeeAb79RbYsirA"/>
+ <UMLRealTime:RTMessageSet xmi:id="_AjD-kFBfEeeAb79RbYsirA" base_Interface="_AjCJYFBfEeeAb79RbYsirA" rtMsgKind="out"/>
+ <UMLRealTime:RTMessageSet xmi:id="_AjGa0FBfEeeAb79RbYsirA" base_Interface="_AjFMsVBfEeeAb79RbYsirA" rtMsgKind="inOut"/>
+ <UMLRealTime:Protocol xmi:id="_AjIQAFBfEeeAb79RbYsirA" base_Collaboration="_Ai5mgFBfEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTPseudostate xmi:id="_Bled0FBfEeeAb79RbYsirA" base_Pseudostate="_BlcooFBfEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTState xmi:id="_BliIMFBfEeeAb79RbYsirA" base_State="_BlgTAFBfEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTRegion xmi:id="_Blj9YFBfEeeAb79RbYsirA" base_Region="_BlaMYFBfEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTStateMachine xmi:id="_BlnnwFBfEeeAb79RbYsirA" base_StateMachine="_BlUs0FBfEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTState xmi:id="_DKZNMFBfEeeAb79RbYsirA" base_State="_DKWw8FBfEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTState xmi:id="_Dj9jwFBfEeeAb79RbYsirA" base_State="_Dj7ukFBfEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTState xmi:id="_Zw3q0FBfEeeAb79RbYsirA" base_State="_Zw1OkFBfEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTRegion xmi:id="_bmskAFBfEeeAb79RbYsirA" base_Region="_bmnrgFBfEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTPseudostate xmi:id="_bmyqoFBfEeeAb79RbYsirA" base_Pseudostate="_bmw1cFBfEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTPseudostate xmi:id="_bm6mcFBfEeeAb79RbYsirA" base_Pseudostate="_bm4xQFBfEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTPseudostate xmi:id="_bm-Q0FBfEeeAb79RbYsirA" base_Pseudostate="_bm8boFBfEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTState xmi:id="_dVC8MFBfEeeAb79RbYsirA" base_State="_dVBHAFBfEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTState xmi:id="_gOsC0FBfEeeAb79RbYsirA" base_State="_gOqNoFBfEeeAb79RbYsirA"/>
+ <UMLRTStateMachines:RTPseudostate xmi:id="_18d94FBfEeeAb79RbYsirA" base_Pseudostate="_18bhoFBfEeeAb79RbYsirA"/>
+</xmi:XMI>
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/CMakeLists.txt b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/CMakeLists.txt
new file mode 100644
index 000000000..86087be59
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated 2017-06-13 15:16:02
+
+cmake_minimum_required(VERSION 2.8.7)
+set(TARGET TopMain)
+project(${TARGET})
+
+# require location of supporting RTS
+if (NOT UMLRTS_ROOT)
+ if (DEFINED ENV{UMLRTS_ROOT})
+ set(UMLRTS_ROOT $ENV{UMLRTS_ROOT})
+ else ()
+ set(UMLRTS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/umlrt.rts)
+ endif ()
+endif ()
+
+# setup primary envars - provides tooling config
+include(${UMLRTS_ROOT}/build/buildenv.cmake)
+
+# model sources
+set(SRCS TopMain.cc Protocol1.cc Top.cc TopControllers.cc Protocol2.cc )
+
+# specify target
+add_executable(${TARGET} ${SRCS})
+
+# setup lib dependency support after defining TARGET
+include(${UMLRTS_ROOT}/build/rtslib.cmake)
+
+# compiler parameters
+set_target_properties(${TARGET} PROPERTIES COMPILE_OPTIONS "${COPTS}")
+set_target_properties(${TARGET} PROPERTIES COMPILE_DEFINITIONS "${CDEFS}")
+include_directories(${INCS})
+
+# linker parameters
+set_target_properties(${TARGET} PROPERTIES CMAKE_EXE_LINKER_FLAGS "${LOPTS}")
+target_link_libraries(${TARGET} ${LIBS})
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Makefile b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Makefile
new file mode 100644
index 000000000..0bcbd2251
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Makefile
@@ -0,0 +1,11 @@
+##################################################
+# Default makefile
+# Redirect make to target makefile
+##################################################
+
+all:
+ make -f MakefileTop.mk all
+clean:
+ make -f MakefileTop.mk clean
+.PHONY:
+ make -f MakefileTop.mk all clean
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/MakefileTop.mk b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/MakefileTop.mk
new file mode 100644
index 000000000..6d30fd436
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/MakefileTop.mk
@@ -0,0 +1,49 @@
+# set default value for TARGETOS if is it not defined
+ifeq ($(TARGETOS), )
+$(warning warning: TARGETOS not defined. Choosing linux)
+TARGETOS=linux
+endif
+
+# set default value for BUILDTOOLS if is it not defined
+ifeq ($(BUILDTOOLS), )
+$(warning warning: BUILDTOOLS not defined. Choosing x86-gcc-4.6.3)
+BUILDTOOLS=x86-gcc-4.6.3
+endif
+
+# Location of RTS root.
+UMLRTS_ROOT ?= ./umlrt.rts
+
+CONFIG=$(TARGETOS).$(BUILDTOOLS)
+
+# Destination directory for the RTS services library.
+LIBDEST=$(UMLRTS_ROOT)/lib/$(CONFIG)
+
+include $(UMLRTS_ROOT)/build/host/host.mk
+include $(UMLRTS_ROOT)/build/buildtools/$(BUILDTOOLS)/buildtools.mk
+
+LD_PATHS=$(LIBDEST)
+CC_INCLUDES+=$(UMLRTS_ROOT)/include
+
+CC_DEFINES:=$(foreach d, $(CC_DEFINES), $(CC_DEF)$d)
+CC_INCLUDES:=$(foreach i, $(CC_INCLUDES), $(CC_INC)$i)
+LD_LIBS:=$(foreach i, $(LD_LIBS), $(LD_LIB)$i)
+LD_PATHS:=$(foreach i, $(LD_PATHS), $(LD_LIBPATH)$i)
+
+SRCS = TopMain.cc Protocol1.cc Top.cc TopControllers.cc Protocol2.cc
+OBJS = $(subst $(CC_EXT),$(OBJ_EXT),$(SRCS))
+
+MAIN = TopMain$(EXE_EXT)
+
+all: $(MAIN)
+
+$(MAIN): $(OBJS) $(UMLRTS_ROOT)/lib/$(CONFIG)/$(LIB_PRFX)rts$(LIB_EXT)
+ $(LD) $(LD_FLAGS) $(OBJS) $(LD_PATHS) $(LD_LIBS) $(LD_OUT)$@
+
+%$(OBJ_EXT) : %$(CC_EXT)
+ $(CC) $< $(CC_FLAGS) $(CC_DEFINES) $(CC_INCLUDES) $(CC_OUT)$@
+
+clean :
+ @echo $(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+ @$(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+
+.PHONY: all clean
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol1.cc b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol1.cc
new file mode 100644
index 000000000..e5ff89666
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol1.cc
@@ -0,0 +1,82 @@
+
+#include "Protocol1.hh"
+
+#include "umlrtobjectclass.hh"
+#include "umlrtoutsignal.hh"
+struct UMLRTCommsPort;
+
+static UMLRTObject_field fields_m1[] =
+{
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ }
+ #endif
+};
+
+static UMLRTObject payload_m1 =
+{
+ 0,
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ 1
+ #else
+ 0
+ #endif
+ ,
+ fields_m1
+};
+
+static UMLRTObject_field fields_m2[] =
+{
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ }
+ #endif
+};
+
+static UMLRTObject payload_m2 =
+{
+ 0,
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ 1
+ #else
+ 0
+ #endif
+ ,
+ fields_m2
+};
+
+Protocol1::Base::Base( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+Protocol1::Conj::Conj( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+UMLRTOutSignal Protocol1::Conj::m1() const
+{
+ UMLRTOutSignal signal;
+ signal.initialize( "m1", signal_m1, srcPort, &payload_m1 );
+ return signal;
+}
+
+UMLRTOutSignal Protocol1::Conj::m2() const
+{
+ UMLRTOutSignal signal;
+ signal.initialize( "m2", signal_m2, srcPort, &payload_m2 );
+ return signal;
+}
+
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol1.hh b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol1.hh
new file mode 100644
index 000000000..5786c0dd6
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol1.hh
@@ -0,0 +1,32 @@
+
+#ifndef PROTOCOL1_HH
+#define PROTOCOL1_HH
+
+#include "umlrtoutsignal.hh"
+#include "umlrtprotocol.hh"
+#include "umlrtsignal.hh"
+struct UMLRTCommsPort;
+
+namespace Protocol1
+{
+ class Base : public UMLRTProtocol
+ {
+ public:
+ Base( const UMLRTCommsPort * & srcPort );
+ };
+ class Conj : public UMLRTProtocol
+ {
+ public:
+ Conj( const UMLRTCommsPort * & srcPort );
+ UMLRTOutSignal m1() const;
+ UMLRTOutSignal m2() const;
+ };
+ enum SignalId
+ {
+ signal_m1 = UMLRTSignal::FIRST_PROTOCOL_SIGNAL_ID,
+ signal_m2
+ };
+};
+
+#endif
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol2.cc b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol2.cc
new file mode 100644
index 000000000..b493e5d3c
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol2.cc
@@ -0,0 +1,82 @@
+
+#include "Protocol2.hh"
+
+#include "umlrtobjectclass.hh"
+#include "umlrtoutsignal.hh"
+struct UMLRTCommsPort;
+
+static UMLRTObject_field fields_m1[] =
+{
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ }
+ #endif
+};
+
+static UMLRTObject payload_m1 =
+{
+ 0,
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ 1
+ #else
+ 0
+ #endif
+ ,
+ fields_m1
+};
+
+static UMLRTObject_field fields_m2[] =
+{
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0
+ }
+ #endif
+};
+
+static UMLRTObject payload_m2 =
+{
+ 0,
+ #ifdef NEED_NON_FLEXIBLE_ARRAY
+ 1
+ #else
+ 0
+ #endif
+ ,
+ fields_m2
+};
+
+Protocol2::Base::Base( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+Protocol2::Conj::Conj( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+UMLRTOutSignal Protocol2::Conj::m1() const
+{
+ UMLRTOutSignal signal;
+ signal.initialize( "m1", signal_m1, srcPort, &payload_m1 );
+ return signal;
+}
+
+UMLRTOutSignal Protocol2::Conj::m2() const
+{
+ UMLRTOutSignal signal;
+ signal.initialize( "m2", signal_m2, srcPort, &payload_m2 );
+ return signal;
+}
+
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol2.hh b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol2.hh
new file mode 100644
index 000000000..fbe762141
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Protocol2.hh
@@ -0,0 +1,32 @@
+
+#ifndef PROTOCOL2_HH
+#define PROTOCOL2_HH
+
+#include "umlrtoutsignal.hh"
+#include "umlrtprotocol.hh"
+#include "umlrtsignal.hh"
+struct UMLRTCommsPort;
+
+namespace Protocol2
+{
+ class Base : public UMLRTProtocol
+ {
+ public:
+ Base( const UMLRTCommsPort * & srcPort );
+ };
+ enum SignalId
+ {
+ signal_m1 = UMLRTSignal::FIRST_PROTOCOL_SIGNAL_ID,
+ signal_m2
+ };
+ class Conj : public UMLRTProtocol
+ {
+ public:
+ Conj( const UMLRTCommsPort * & srcPort );
+ UMLRTOutSignal m1() const;
+ UMLRTOutSignal m2() const;
+ };
+};
+
+#endif
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Top-connections.log b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Top-connections.log
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Top-connections.log
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Top.cc b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Top.cc
new file mode 100644
index 000000000..6ee439180
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Top.cc
@@ -0,0 +1,485 @@
+
+#include "Top.hh"
+
+#include "Protocol1.hh"
+#include "Protocol2.hh"
+#include "umlrtcommsportrole.hh"
+#include "umlrtmessage.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsuleclass.hh"
+#include "umlrtframeservice.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_Top::Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: UMLRTCapsule( NULL, cd, st, border, internal, isStat )
+, protocol1( borderPorts[borderport_protocol1] )
+, protocol2( borderPorts[borderport_protocol2] )
+, currentState( SPECIAL_INTERNAL_STATE_UNVISITED )
+{
+ stateNames[State1] = "State1";
+ stateNames[State1__State1] = "State1__State1";
+ stateNames[State1__State2] = "State1__State2";
+ stateNames[State1__boundary] = "State1__boundary";
+ stateNames[State2] = "State2";
+ stateNames[State3] = "State3";
+ stateNames[State4] = "State4";
+ stateNames[SPECIAL_INTERNAL_STATE_TOP] = "<top>";
+ stateNames[SPECIAL_INTERNAL_STATE_UNVISITED] = "<uninitialized>";
+ int i = 0;
+ while( i < 1 )
+ history[i++] = SPECIAL_INTERNAL_STATE_UNVISITED;
+}
+
+
+
+
+
+
+void Capsule_Top::bindPort( bool isBorder, int portId, int index )
+{
+ if( isBorder )
+ switch( portId )
+ {
+ case borderport_protocol1:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_protocol1, index, true );
+ break;
+ case borderport_protocol2:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_protocol2, index, true );
+ break;
+ }
+}
+
+void Capsule_Top::unbindPort( bool isBorder, int portId, int index )
+{
+ if( isBorder )
+ switch( portId )
+ {
+ case borderport_protocol1:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_protocol1, index, false );
+ UMLRTFrameService::disconnectPort( borderPorts[borderport_protocol1], index );
+ break;
+ case borderport_protocol2:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_protocol2, index, false );
+ UMLRTFrameService::disconnectPort( borderPorts[borderport_protocol2], index );
+ break;
+ }
+}
+
+void Capsule_Top::inject( const UMLRTMessage & message )
+{
+ msg = &message;
+ switch( currentState )
+ {
+ case State2:
+ currentState = state_____State2( &message );
+ break;
+ case State3:
+ currentState = state_____State3( &message );
+ break;
+ case State4:
+ currentState = state_____State4( &message );
+ break;
+ case State1__State1:
+ currentState = state_____State1__State1( &message );
+ break;
+ case State1__State2:
+ currentState = state_____State1__State2( &message );
+ break;
+ case State1__boundary:
+ currentState = state_____State1__boundary( &message );
+ break;
+ default:
+ break;
+ }
+}
+
+void Capsule_Top::initialize( const UMLRTMessage & message )
+{
+ msg = &message;
+ actionchain_____Initial( &message );
+ currentState = junction_____State1__connectionPoint0( &message );
+}
+
+const char * Capsule_Top::getCurrentStateString() const
+{
+ return stateNames[currentState];
+}
+
+
+
+
+
+void Capsule_Top::save_history( Capsule_Top::State compositeState, Capsule_Top::State subState )
+{
+ history[compositeState] = subState;
+}
+
+bool Capsule_Top::check_history( Capsule_Top::State compositeState, Capsule_Top::State subState )
+{
+ return history[compositeState] == subState;
+}
+
+void Capsule_Top::update_state( Capsule_Top::State newState )
+{
+ currentState = newState;
+}
+
+void Capsule_Top::actionchain_____Initial( const UMLRTMessage * msg )
+{
+ update_state( State1 );
+}
+
+void Capsule_Top::actionchain_____State1__new_transition_1( const UMLRTMessage * msg )
+{
+ update_state( State1__State1 );
+}
+
+void Capsule_Top::actionchain_____State1__new_transition_10( const UMLRTMessage * msg )
+{
+ update_state( State1 );
+ save_history( State1, State1__boundary );
+}
+
+void Capsule_Top::actionchain_____State1__new_transition_11( const UMLRTMessage * msg )
+{
+ update_state( State1 );
+ save_history( State1, State1__State1 );
+}
+
+void Capsule_Top::actionchain_____State1__new_transition_12( const UMLRTMessage * msg )
+{
+ update_state( State1 );
+ save_history( State1, State1__State2 );
+}
+
+void Capsule_Top::actionchain_____State1__new_transition_13( const UMLRTMessage * msg )
+{
+ update_state( State1 );
+ save_history( State1, State1__boundary );
+}
+
+void Capsule_Top::actionchain_____State1__new_transition_2( const UMLRTMessage * msg )
+{
+ update_state( State1__State2 );
+}
+
+void Capsule_Top::actionchain_____State1__new_transition_3_to_unvisited_boundary( const UMLRTMessage * msg )
+{
+ update_state( State1__boundary );
+}
+
+void Capsule_Top::actionchain_____State1__new_transition_4_to_visited_boundary( const UMLRTMessage * msg )
+{
+ update_state( State1__boundary );
+}
+
+void Capsule_Top::actionchain_____State1__new_transition_5( const UMLRTMessage * msg )
+{
+ update_state( State1 );
+ save_history( State1, State1__State1 );
+}
+
+void Capsule_Top::actionchain_____State1__new_transition_6( const UMLRTMessage * msg )
+{
+ update_state( State1 );
+ save_history( State1, State1__State2 );
+}
+
+void Capsule_Top::actionchain_____State1__new_transition_7( const UMLRTMessage * msg )
+{
+ update_state( State1 );
+ save_history( State1, State1__boundary );
+}
+
+void Capsule_Top::actionchain_____State1__new_transition_8( const UMLRTMessage * msg )
+{
+ update_state( State1 );
+ save_history( State1, State1__State1 );
+}
+
+void Capsule_Top::actionchain_____State1__new_transition_9( const UMLRTMessage * msg )
+{
+ update_state( State1 );
+ save_history( State1, State1__State2 );
+}
+
+void Capsule_Top::actionchain_____State1__transition0( const UMLRTMessage * msg )
+{
+ update_state( State1__State1 );
+}
+
+void Capsule_Top::actionchain_____State1__transition1( const UMLRTMessage * msg )
+{
+ update_state( State1 );
+ update_state( State1__State2 );
+}
+
+void Capsule_Top::actionchain_____State1__transition2( const UMLRTMessage * msg )
+{
+ update_state( State1 );
+}
+
+void Capsule_Top::actionchain_____transition1( const UMLRTMessage * msg )
+{
+ update_state( SPECIAL_INTERNAL_STATE_TOP );
+ update_state( State2 );
+}
+
+void Capsule_Top::actionchain_____transition2( const UMLRTMessage * msg )
+{
+ update_state( SPECIAL_INTERNAL_STATE_TOP );
+ update_state( State3 );
+}
+
+void Capsule_Top::actionchain_____transition3( const UMLRTMessage * msg )
+{
+ update_state( SPECIAL_INTERNAL_STATE_TOP );
+ update_state( State4 );
+}
+
+Capsule_Top::State Capsule_Top::junction_____State1__connectionPoint0( const UMLRTMessage * msg )
+{
+ actionchain_____State1__transition0( msg );
+ return State1__State1;
+}
+
+Capsule_Top::State Capsule_Top::junction_____State1__connectionPoint1( const UMLRTMessage * msg )
+{
+ actionchain_____transition1( msg );
+ return State2;
+}
+
+Capsule_Top::State Capsule_Top::junction_____State1__connectionPoint3( const UMLRTMessage * msg )
+{
+ actionchain_____transition3( msg );
+ return State4;
+}
+
+Capsule_Top::State Capsule_Top::junction_____State1__new_exitpoint_1( const UMLRTMessage * msg )
+{
+ actionchain_____transition2( msg );
+ return State3;
+}
+
+Capsule_Top::State Capsule_Top::choice_____State1__deephistory( const UMLRTMessage * msg )
+{
+ if( check_history( State1, State1__State1 ) )
+ {
+ actionchain_____State1__new_transition_1( msg );
+ return State1__State1;
+ }
+ else if( check_history( State1, State1__State2 ) )
+ {
+ actionchain_____State1__new_transition_2( msg );
+ return State1__State2;
+ }
+ else if( check_history( State1, SPECIAL_INTERNAL_STATE_UNVISITED ) )
+ {
+ actionchain_____State1__new_transition_3_to_unvisited_boundary( msg );
+ return State1__boundary;
+ }
+ else if( check_history( State1, State1__boundary ) )
+ {
+ actionchain_____State1__new_transition_4_to_visited_boundary( msg );
+ return State1__boundary;
+ }
+ return currentState;
+}
+
+Capsule_Top::State Capsule_Top::state_____State1__State1( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ case port_protocol1:
+ switch( msg->getSignalId() )
+ {
+ case Protocol1::signal_m1:
+ actionchain_____State1__transition1( msg );
+ return State1__State2;
+ case Protocol1::signal_m2:
+ actionchain_____State1__transition2( msg );
+ return choice_____State1__deephistory( msg );
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+ case port_protocol2:
+ switch( msg->getSignalId() )
+ {
+ case Protocol2::signal_m1:
+ actionchain_____State1__new_transition_8( msg );
+ return junction_____State1__connectionPoint3( msg );
+ case Protocol2::signal_m2:
+ actionchain_____State1__new_transition_11( msg );
+ return junction_____State1__new_exitpoint_1( msg );
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_Top::State Capsule_Top::state_____State1__State2( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ case port_protocol1:
+ switch( msg->getSignalId() )
+ {
+ case Protocol1::signal_m1:
+ actionchain_____State1__new_transition_6( msg );
+ return junction_____State1__connectionPoint1( msg );
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+ case port_protocol2:
+ switch( msg->getSignalId() )
+ {
+ case Protocol2::signal_m1:
+ actionchain_____State1__new_transition_9( msg );
+ return junction_____State1__connectionPoint3( msg );
+ case Protocol2::signal_m2:
+ actionchain_____State1__new_transition_12( msg );
+ return junction_____State1__new_exitpoint_1( msg );
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_Top::State Capsule_Top::state_____State1__boundary( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ case port_protocol1:
+ switch( msg->getSignalId() )
+ {
+ case Protocol1::signal_m1:
+ actionchain_____State1__new_transition_7( msg );
+ return junction_____State1__connectionPoint1( msg );
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+ case port_protocol2:
+ switch( msg->getSignalId() )
+ {
+ case Protocol2::signal_m1:
+ actionchain_____State1__new_transition_10( msg );
+ return junction_____State1__connectionPoint3( msg );
+ case Protocol2::signal_m2:
+ actionchain_____State1__new_transition_13( msg );
+ return junction_____State1__new_exitpoint_1( msg );
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_Top::State Capsule_Top::state_____State2( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_Top::State Capsule_Top::state_____State3( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_Top::State Capsule_Top::state_____State4( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+
+static const UMLRTCommsPortRole portroles_border[] =
+{
+ {
+ Capsule_Top::port_protocol1,
+ "Protocol1",
+ "protocol1",
+ "",
+ 1,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ },
+ {
+ Capsule_Top::port_protocol2,
+ "Protocol2",
+ "protocol2",
+ "",
+ 1,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ }
+};
+
+static void instantiate_Top( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+ slot->capsule = new Capsule_Top( &Top, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass Top =
+{
+ "Top",
+ NULL,
+ instantiate_Top,
+ 0,
+ NULL,
+ 2,
+ portroles_border,
+ 0,
+ NULL
+};
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Top.hh b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Top.hh
new file mode 100644
index 000000000..f47468a63
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/Top.hh
@@ -0,0 +1,95 @@
+
+#ifndef TOP_HH
+#define TOP_HH
+
+#include "Protocol1.hh"
+#include "Protocol2.hh"
+#include "umlrtcapsule.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_Top : public UMLRTCapsule
+{
+public:
+ Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+protected:
+ Protocol1::Base protocol1;
+public:
+ enum BorderPortId
+ {
+ borderport_protocol1,
+ borderport_protocol2
+ };
+protected:
+ Protocol2::Base protocol2;
+public:
+ enum PartId
+ {
+ };
+ enum PortId
+ {
+ port_protocol1,
+ port_protocol2
+ };
+ virtual void bindPort( bool isBorder, int portId, int index );
+ virtual void unbindPort( bool isBorder, int portId, int index );
+ virtual void inject( const UMLRTMessage & message );
+ virtual void initialize( const UMLRTMessage & message );
+ const char * getCurrentStateString() const;
+private:
+ enum State
+ {
+ State1,
+ State1__State1,
+ State1__State2,
+ State1__boundary,
+ State2,
+ State3,
+ State4,
+ SPECIAL_INTERNAL_STATE_TOP,
+ SPECIAL_INTERNAL_STATE_UNVISITED
+ };
+ const char * stateNames[9];
+ State currentState;
+ State history[1];
+ void save_history( State compositeState, State subState );
+ bool check_history( State compositeState, State subState );
+ void update_state( State newState );
+ void actionchain_____Initial( const UMLRTMessage * msg );
+ void actionchain_____State1__new_transition_1( const UMLRTMessage * msg );
+ void actionchain_____State1__new_transition_10( const UMLRTMessage * msg );
+ void actionchain_____State1__new_transition_11( const UMLRTMessage * msg );
+ void actionchain_____State1__new_transition_12( const UMLRTMessage * msg );
+ void actionchain_____State1__new_transition_13( const UMLRTMessage * msg );
+ void actionchain_____State1__new_transition_2( const UMLRTMessage * msg );
+ void actionchain_____State1__new_transition_3_to_unvisited_boundary( const UMLRTMessage * msg );
+ void actionchain_____State1__new_transition_4_to_visited_boundary( const UMLRTMessage * msg );
+ void actionchain_____State1__new_transition_5( const UMLRTMessage * msg );
+ void actionchain_____State1__new_transition_6( const UMLRTMessage * msg );
+ void actionchain_____State1__new_transition_7( const UMLRTMessage * msg );
+ void actionchain_____State1__new_transition_8( const UMLRTMessage * msg );
+ void actionchain_____State1__new_transition_9( const UMLRTMessage * msg );
+ void actionchain_____State1__transition0( const UMLRTMessage * msg );
+ void actionchain_____State1__transition1( const UMLRTMessage * msg );
+ void actionchain_____State1__transition2( const UMLRTMessage * msg );
+ void actionchain_____transition1( const UMLRTMessage * msg );
+ void actionchain_____transition2( const UMLRTMessage * msg );
+ void actionchain_____transition3( const UMLRTMessage * msg );
+ State junction_____State1__connectionPoint0( const UMLRTMessage * msg );
+ State junction_____State1__connectionPoint1( const UMLRTMessage * msg );
+ State junction_____State1__connectionPoint3( const UMLRTMessage * msg );
+ State junction_____State1__new_exitpoint_1( const UMLRTMessage * msg );
+ State choice_____State1__deephistory( const UMLRTMessage * msg );
+ State state_____State1__State1( const UMLRTMessage * msg );
+ State state_____State1__State2( const UMLRTMessage * msg );
+ State state_____State1__boundary( const UMLRTMessage * msg );
+ State state_____State2( const UMLRTMessage * msg );
+ State state_____State3( const UMLRTMessage * msg );
+ State state_____State4( const UMLRTMessage * msg );
+};
+extern const UMLRTCapsuleClass Top;
+
+#endif
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/TopControllers.cc b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/TopControllers.cc
new file mode 100644
index 000000000..b3ecea73a
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/TopControllers.cc
@@ -0,0 +1,102 @@
+
+#include "TopControllers.hh"
+
+#include "Top.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcommsport.hh"
+#include "umlrtcommsportfarend.hh"
+#include "umlrtcontroller.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+
+
+static UMLRTController DefaultController_( "DefaultController" );
+
+UMLRTController * DefaultController = &DefaultController_;
+
+static UMLRTCommsPortFarEnd borderfarEndList_Top[] =
+{
+ {
+ 0,
+ NULL
+ },
+ {
+ 0,
+ NULL
+ }
+};
+
+UMLRTCommsPort borderports_Top[] =
+{
+ {
+ &Top,
+ Capsule_Top::borderport_protocol1,
+ &Top_slots[InstId_Top],
+ 1,
+ borderfarEndList_Top,
+ NULL,
+ NULL,
+ "",
+ true,
+ true,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ },
+ {
+ &Top,
+ Capsule_Top::borderport_protocol2,
+ &Top_slots[InstId_Top],
+ 1,
+ &borderfarEndList_Top[1],
+ NULL,
+ NULL,
+ "",
+ true,
+ true,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ }
+};
+
+static const UMLRTCommsPort * borderports_Top_ptrs[] =
+{
+ &borderports_Top[0],
+ &borderports_Top[1]
+};
+
+static Capsule_Top top( &Top, &Top_slots[InstId_Top], borderports_Top_ptrs, NULL, true );
+
+UMLRTSlot Top_slots[] =
+{
+ {
+ "Top",
+ 0,
+ &Top,
+ NULL,
+ 0,
+ &top,
+ &DefaultController_,
+ 0,
+ NULL,
+ 2,
+ borderports_Top,
+ NULL,
+ true,
+ false
+ }
+};
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/TopControllers.hh b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/TopControllers.hh
new file mode 100644
index 000000000..0d5aac67e
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/TopControllers.hh
@@ -0,0 +1,18 @@
+
+#ifndef TOPCONTROLLERS_HH
+#define TOPCONTROLLERS_HH
+
+class UMLRTController;
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+enum CapsuleInstanceId
+{
+ InstId_Top
+};
+extern UMLRTController * DefaultController;
+extern UMLRTCommsPort borderports_Top[];
+extern UMLRTSlot Top_slots[];
+
+#endif
+
diff --git a/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/TopMain.cc b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/TopMain.cc
new file mode 100644
index 000000000..bf88ec44f
--- /dev/null
+++ b/models/tests/codepattern/statemachines/AmbiguousTransitions2/expected_src/TopMain.cc
@@ -0,0 +1,38 @@
+#include "umlrtmain.hh"
+
+#include "umlrtcontroller.hh"
+#include "TopControllers.hh"
+#include "umlrtcapsuletocontrollermap.hh"
+#include "umlrtmessagepool.hh"
+#include "umlrtsignalelementpool.hh"
+#include "umlrttimerpool.hh"
+#include "umlrtuserconfig.hh"
+#include <stdio.h>
+
+static UMLRTSignalElement signalElementBuffer[USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE];
+static UMLRTSignalElementPool signalElementPool( signalElementBuffer, USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE );
+
+static UMLRTMessage messageBuffer[USER_CONFIG_MESSAGE_POOL_SIZE];
+static UMLRTMessagePool messagePool( messageBuffer, USER_CONFIG_MESSAGE_POOL_SIZE );
+
+static UMLRTTimer timers[USER_CONFIG_TIMER_POOL_SIZE];
+static UMLRTTimerPool timerPool( timers, USER_CONFIG_TIMER_POOL_SIZE );
+
+int main( int argc, char * argv[] )
+{
+ UMLRTController::initializePools( &signalElementPool, &messagePool, &timerPool );
+ UMLRTMain::setArgs( argc, argv );
+ UMLRTCapsuleToControllerMap::setDefaultSlotList( Top_slots, 1 );
+
+ if( ! UMLRTMain::targetStartup() )
+ return EXIT_FAILURE;
+
+ DefaultController->spawn();
+
+ if( ! UMLRTMain::mainLoop() )
+ return UMLRTMain::targetShutdown( false );
+
+ DefaultController->join();
+
+ return UMLRTMain::targetShutdown( true );
+}
diff --git a/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/UMLPrettyPrinter.xtend b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/UMLPrettyPrinter.xtend
new file mode 100644
index 000000000..a1b0659cb
--- /dev/null
+++ b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/UMLPrettyPrinter.xtend
@@ -0,0 +1,80 @@
+/*****************************************************************************
+ * Copyright (c) 2017 Zeligsoft 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:
+ * Ernesto Posse - Initial API and implementation
+ *****************************************************************************/
+
+package org.eclipse.papyrusrt.codegen.cpp
+
+import org.eclipse.uml2.uml.CallEvent
+import org.eclipse.uml2.uml.NamedElement
+import org.eclipse.uml2.uml.Pseudostate
+import org.eclipse.uml2.uml.PseudostateKind
+import org.eclipse.uml2.uml.State
+import org.eclipse.uml2.uml.Transition
+import org.eclipse.uml2.uml.Trigger
+import static extension org.eclipse.papyrusrt.xtumlrt.util.NamesUtil.*
+import static extension org.eclipse.papyrusrt.xtumlrt.external.predefined.UMLRTStateMachProfileUtil.*
+
+/**
+ * @author epp
+ */
+class UMLPrettyPrinter {
+
+ dispatch def String text(NamedElement element)
+ '''«element.name»'''
+
+ dispatch def String text(State state)
+ '''
+ state «state.effectiveQualifiedName»
+ '''
+
+ dispatch def String text(Pseudostate pseudostate)
+ '''
+ «pseudostate.pseudoStateKindText» «pseudostate.effectiveQualifiedName»
+ '''
+
+ private def pseudoStateKindText(Pseudostate pseudostate) {
+ switch pseudostate.kind {
+ case PseudostateKind.CHOICE_LITERAL: "choice point"
+ case PseudostateKind.JUNCTION_LITERAL: "junction point"
+ case PseudostateKind.ENTRY_POINT_LITERAL: "entry point"
+ case PseudostateKind.EXIT_POINT_LITERAL: "exit point"
+ case PseudostateKind.INITIAL_LITERAL: "initial point"
+ case PseudostateKind.DEEP_HISTORY_LITERAL: "deep history point"
+ case PseudostateKind.TERMINATE_LITERAL: "terminate point"
+ default: "pseudostate"
+ }
+ }
+
+ dispatch def String text(Transition transition)
+ '''
+ transition «transition.name»
+ with triggers «FOR t : getTriggers( transition ) BEFORE '[' SEPARATOR ';' AFTER ']'»«t.text»«ENDFOR»
+ from «transition.source.text»
+ to «transition.target.text»
+ '''
+
+ dispatch def String text(Trigger trigger)
+ '''«trigger.event.text» on «FOR p : trigger.ports BEFORE '[' SEPARATOR ';' AFTER ']'»«p.name»«ENDFOR»'''
+
+ dispatch def String text(CallEvent event)
+ '''«event.operation.name»'''
+
+ def String oneLineListText(Iterable<? extends NamedElement> list)
+ '''«FOR element : list BEFORE '[' SEPARATOR ';' AFTER ']'»«element.text»«ENDFOR»'''
+
+ def String multiLineListText(Iterable<? extends NamedElement> list)
+ '''
+ «FOR element : list BEFORE '[\n' AFTER ']'»
+ «element.text»;
+ «ENDFOR»
+ '''
+
+} \ No newline at end of file
diff --git a/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/validation/PreUML2xtumlrtValidator.xtend b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/validation/PreUML2xtumlrtValidator.xtend
index 5b58af230..fc1342d1f 100644
--- a/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/validation/PreUML2xtumlrtValidator.xtend
+++ b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/validation/PreUML2xtumlrtValidator.xtend
@@ -22,14 +22,22 @@ import org.eclipse.papyrusrt.xtumlrt.util.DetailedException
import org.eclipse.uml2.uml.Constraint
import org.eclipse.uml2.uml.MultiplicityElement
import org.eclipse.uml2.uml.NamedElement
+import org.eclipse.uml2.uml.State
+import org.eclipse.uml2.uml.StateMachine
+import org.eclipse.uml2.uml.Transition
+import org.eclipse.uml2.uml.Trigger
+import org.eclipse.papyrusrt.codegen.cpp.UMLPrettyPrinter
+import static extension org.eclipse.papyrusrt.xtumlrt.util.ContainmentUtils.*
+import static extension org.eclipse.papyrusrt.xtumlrt.external.predefined.UMLRTStateMachProfileUtil.*
/**
* Pre UML2xtumlrt validation
* @author ysroh
- *
*/
class PreUML2xtumlrtValidator implements TransformValidator<List<EObject>> {
+ extension UMLPrettyPrinter prettyPrinter = new UMLPrettyPrinter
+
override MultiStatus validate(List<EObject> context) {
val status = new MultiStatus(CodeGenPlugin.ID, IStatus.INFO, "UML-RT Code Generator Invoked", null)
for (e : context) {
@@ -46,7 +54,7 @@ class PreUML2xtumlrtValidator implements TransformValidator<List<EObject>> {
val unique = element.namespace.ownedMembers.filter[e | e !== element && e.eClass === element.eClass && e.name == element.name].empty
if(!unique){
// should not allow two capsules with same name
- val status = createStatus("More than one element named " + element.qualifiedName
+ val status = createWarningStatus("More than one element named " + element.qualifiedName
+ " exist in the same namespace")
result.add(status)
}
@@ -59,7 +67,7 @@ class PreUML2xtumlrtValidator implements TransformValidator<List<EObject>> {
val guard = UMLRTGuard.getInstance(o)
if (guard !== null && !guard.bodies.containsKey(CppCodeGenPlugin.LANGUAGE)) {
var qualifiedName = o.validQualifiedName
- val status = createStatus("Guard " + qualifiedName + " must have C++ specification")
+ val status = createErrorStatus("Guard " + qualifiedName + " must have C++ specification")
result.add(status)
}
}
@@ -75,12 +83,97 @@ class PreUML2xtumlrtValidator implements TransformValidator<List<EObject>> {
}
}
- protected def Status createStatus(String msg) {
+ /**
+ * Validates a state.
+ *
+ * <p>Checks whether there are conflicting outgoing transitions from the state.
+ *
+ * @param state - A {@link State}.
+ * @param result - A {@link MultiStatus}.
+ */
+ protected dispatch def void validateElement(State state, MultiStatus result) {
+ val containingStates =
+ state.getAllOwningElementsUptoType(StateMachine)
+ .filter[it instanceof State]
+ .map[it as State]
+ val allOutgoingTransitionsHierarchy = containingStates.map[allOutgoingTransitions].flatten
+ for (transition : state.allOutgoingTransitions) {
+ val otherEquivalentTransitions = allOutgoingTransitionsHierarchy.filter[conflict(it, transition)]
+ if (!otherEquivalentTransitions.empty) {
+ val qualifiedName = state.validQualifiedName
+ val conflictingTransitions = otherEquivalentTransitions.multiLineListText
+ val status = createWarningStatus("State " + qualifiedName
+ + " has at least two conflicting (ambiguous) outgoing transitions with the same trigger and guard. \n"
+ + "Transition " + transition.text + "conflicts with the following:\n"
+ + conflictingTransitions + "\n"
+ + "The transition with the deepest source will be selected and the others ignored.\n"
+ + "If there is more than one such transitions any one of them will be selected and others will be ignored.\n"
+ + "Note that the transitions may have a different source, namely a composite state that contains " + qualifiedName + ".\n"
+ )
+ result.add(status)
+ return
+ }
+ }
+ }
+
+ /**
+ * @param transition1 - A {@link Transition}.
+ * @param transition2 - A {@link Transition}.
+ * @return {@code true} iff the two transition conflict, i.e. if they are not the same but
+ * they have a common trigger (cf. {@link #commonTrigger}) and the same guard (cf. {@link #sameGuard}).
+ * Note that this method already assumes that the source of one of the transitions is the same as or is
+ * contained in the source of the other transition.
+ */
+ private def conflict(Transition transition1, Transition transition2) {
+ transition1 !== transition2
+ && commonTrigger(transition1, transition2)
+ && sameGuard(transition1, transition2)
+ }
+
+ /**
+ * @param transition1 - A {@link Transition}.
+ * @param transition2 - A {@link Transition}.
+ * @return {@code true} iff the two transition have equal guards or at least guards with equal specification.
+ */
+ private def sameGuard(Transition transition1, Transition transition2) {
+ transition1.guard == transition2.guard
+ || transition1.guard?.specification == transition2.guard?.specification
+ }
+
+ /**
+ * @param transition1 - A {@link Transition}.
+ * @param transition2 - A {@link Transition}.
+ * @return {@code true} iff the two transition have at least one equivalent trigger (cf. {@link #equivalentTrigger})
+ */
+ private def commonTrigger(Transition transition1, Transition transition2)
+ {
+ transition1.triggers.exists[t1 | transition2.triggers.exists[t2 | equivalentTrigger(t1, t2)]]
+ }
+
+ /**
+ * @param trigger1 - A {@link Trigger}.
+ * @param trigger2 - A {@link Trigger}.
+ * @return {@code true} iff the two triggers are eequivalent, i.e., iff they are equal or
+ * the have the same event and at least one port in common.
+ */
+ private def equivalentTrigger(Trigger trigger1, Trigger trigger2) {
+ trigger1 == trigger2
+ || trigger1.event == trigger2.event
+ && trigger1.ports.exists[trigger2.ports.contains(it)]
+ }
+
+ protected def Status createErrorStatus(String msg) {
val exception = new DetailedException(msg)
val status = new Status(IStatus.ERROR, CodeGenPlugin.ID, exception.message, exception)
status
}
+ protected def Status createWarningStatus(String msg) {
+ val exception = new DetailedException(msg)
+ val status = new Status(IStatus.WARNING, CodeGenPlugin.ID, exception.message, exception)
+ status
+ }
+
protected def String getValidQualifiedName(EObject context) {
var qualifiedName = ""
var container = context
diff --git a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.edit/.classpath b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.edit/.classpath
index 0cef8851a..50aae142c 100644
--- a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.edit/.classpath
+++ b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.edit/.classpath
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src-gen"/>
<classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.edit/META-INF/MANIFEST.MF b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.edit/META-INF/MANIFEST.MF
index 82944ab8e..b6fd986aa 100644
--- a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.edit/META-INF/MANIFEST.MF
+++ b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.edit/META-INF/MANIFEST.MF
@@ -7,7 +7,7 @@ Bundle-ClassPath: .
Bundle-Activator: org.eclipse.papyrusrt.umlrt.tooling.compare.umlrt.internal.provider.UMLRTEditPlugin$Implementation
Bundle-Vendor: %providerName
Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: org.eclipse.papyrusrt.umlrt.tooling.compare.umlrt.internal.accessor;x-internal:=true,
org.eclipse.papyrusrt.umlrt.tooling.compare.umlrt.internal.provider;x-internal:=true,
org.eclipse.papyrusrt.umlrt.tooling.compare.umlrt.internal.provider.custom;x-internal:=true,
diff --git a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare/.classpath b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare/.classpath
index 6a42377b5..f0c554985 100644
--- a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare/.classpath
+++ b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="src-gen"/>
diff --git a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare/META-INF/MANIFEST.MF b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare/META-INF/MANIFEST.MF
index 4cbdb1f49..d487631d1 100644
--- a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare/META-INF/MANIFEST.MF
+++ b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare/META-INF/MANIFEST.MF
@@ -19,7 +19,7 @@ Require-Bundle: org.eclipse.ui;bundle-version="[3.109.0,4.0.0)",
org.eclipse.emf.compare.diagram;bundle-version="[2.5.0,3.0.0)",
org.eclipse.gmf.runtime.notation;bundle-version="[1.8.0,2.0.0)",
org.eclipse.emf.compare.rcp;bundle-version="[2.5.0,3.0.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: org.eclipse.papyrusrt.umlrt.tooling.compare,
org.eclipse.papyrusrt.umlrt.tooling.compare.internal;x-friends:="org.eclipse.papyrusrt.umlrt.tooling.compare.edit,
org.eclipse.papyrusrt.umlrt.tooling.compare.tests,
diff --git a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/src/org/eclipse/papyrusrt/umlrt/tooling/diagram/statemachine/internal/editpolicies/Messages.java b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/src/org/eclipse/papyrusrt/umlrt/tooling/diagram/statemachine/internal/editpolicies/Messages.java
new file mode 100644
index 000000000..c75dc80af
--- /dev/null
+++ b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/src/org/eclipse/papyrusrt/umlrt/tooling/diagram/statemachine/internal/editpolicies/Messages.java
@@ -0,0 +1,46 @@
+/*****************************************************************************
+ * Copyright (c) 2017 Christian W. Damus 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:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine.internal.editpolicies;
+
+import org.eclipse.osgi.util.NLS;
+
+/**
+ * Localized messages for the package.
+ */
+class Messages extends NLS {
+
+ private static final String BUNDLE_NAME = "org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine.internal.editpolicies.messages"; //$NON-NLS-1$
+
+ public static String RTCustomStateNavigationEditPolicy_0;
+ public static String RTCustomStateNavigationEditPolicy_1;
+ public static String RTCustomStateNavigationEditPolicy_10;
+ public static String RTCustomStateNavigationEditPolicy_11;
+ public static String RTCustomStateNavigationEditPolicy_2;
+ public static String RTCustomStateNavigationEditPolicy_3;
+ public static String RTCustomStateNavigationEditPolicy_4;
+ public static String RTCustomStateNavigationEditPolicy_5;
+ public static String RTCustomStateNavigationEditPolicy_6;
+ public static String RTCustomStateNavigationEditPolicy_7;
+ public static String RTCustomStateNavigationEditPolicy_8;
+ public static String RTCustomStateNavigationEditPolicy_9;
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ super();
+ }
+}
diff --git a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/src/org/eclipse/papyrusrt/umlrt/tooling/diagram/statemachine/internal/editpolicies/RTCustomStateNavigationEditPolicy.java b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/src/org/eclipse/papyrusrt/umlrt/tooling/diagram/statemachine/internal/editpolicies/RTCustomStateNavigationEditPolicy.java
index cc580ee97..8e2e95460 100644
--- a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/src/org/eclipse/papyrusrt/umlrt/tooling/diagram/statemachine/internal/editpolicies/RTCustomStateNavigationEditPolicy.java
+++ b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/src/org/eclipse/papyrusrt/umlrt/tooling/diagram/statemachine/internal/editpolicies/RTCustomStateNavigationEditPolicy.java
@@ -16,6 +16,7 @@ package org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine.internal.editpo
import static org.eclipse.papyrusrt.umlrt.tooling.diagram.common.utils.UMLRTStateMachineDiagramUtils.getStateMachineDiagram;
import java.util.List;
+import java.util.Optional;
import java.util.function.Supplier;
import org.eclipse.core.commands.ExecutionException;
@@ -201,19 +202,37 @@ public class RTCustomStateNavigationEditPolicy extends NavigationEditPolicy {
int promptToCreateNestedDiagram() {
Shell parentShell = getHost().getViewer().getControl().getShell();
- boolean isInheritedCompositeState = getState().isComposite()
+ boolean isCompositeState = getState().isComposite();
+ boolean isInheritedCompositeState = isCompositeState
&& UMLRTExtensionUtil.isVirtualElement(getState());
+ boolean isRedefinitionOfCompositeState = Optional.of(getState())
+ .map(UMLRTExtensionUtil::getRedefinedElement)
+ .map(State::isComposite)
+ .orElse(false);
- return (isInheritedCompositeState)
+ return isInheritedCompositeState
? DialogPreferences.custom(MessageDialog.QUESTION_WITH_CANCEL, parentShell,
- "Redefine Composite State",
- "This composite state is inherited. Redefine the state to create a diagram for it or open the parent diagram?",
+ Messages.RTCustomStateNavigationEditPolicy_0,
+ Messages.RTCustomStateNavigationEditPolicy_1,
null, SWT.SHEET,
- "Redefine", "Open Parent")
- : DialogPreferences.yesNoCancel(parentShell,
- "Convert to Composite State",
- "Convert the state to a composite state and open a new diagram on its contents?",
- CONFIRMATION_DIALOG_ID);
+ Messages.RTCustomStateNavigationEditPolicy_2,
+ Messages.RTCustomStateNavigationEditPolicy_3)
+ : isCompositeState
+ ? isRedefinitionOfCompositeState
+ ? DialogPreferences.custom(MessageDialog.QUESTION_WITH_CANCEL, parentShell,
+ Messages.RTCustomStateNavigationEditPolicy_4,
+ Messages.RTCustomStateNavigationEditPolicy_5,
+ null, SWT.SHEET,
+ Messages.RTCustomStateNavigationEditPolicy_6,
+ Messages.RTCustomStateNavigationEditPolicy_3)
+ : DialogPreferences.yesNoCancel(parentShell,
+ Messages.RTCustomStateNavigationEditPolicy_4,
+ Messages.RTCustomStateNavigationEditPolicy_7,
+ CONFIRMATION_DIALOG_ID)
+ : DialogPreferences.yesNoCancel(parentShell,
+ Messages.RTCustomStateNavigationEditPolicy_8,
+ Messages.RTCustomStateNavigationEditPolicy_9,
+ CONFIRMATION_DIALOG_ID);
}
IGraphicalEditPart getGraphicalHost() {
@@ -229,7 +248,7 @@ public class RTCustomStateNavigationEditPolicy extends NavigationEditPolicy {
}
private ICommand getConnectionPointMatchingCommand(Supplier<? extends Diagram> newDiagram) {
- return new AbstractTransactionalCommand(getEditingDomain(), "Arrange Connection Points", null) {
+ return new AbstractTransactionalCommand(getEditingDomain(), Messages.RTCustomStateNavigationEditPolicy_10, null) {
@Override
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
@@ -321,7 +340,7 @@ public class RTCustomStateNavigationEditPolicy extends NavigationEditPolicy {
* the diagram
*/
public OpenDiagramCommand(TransactionalEditingDomain domain, Diagram diagram) {
- super(domain, "Open Diagram", null);
+ super(domain, Messages.RTCustomStateNavigationEditPolicy_11, null);
diagramToOpen = diagram;
}
@@ -336,7 +355,7 @@ public class RTCustomStateNavigationEditPolicy extends NavigationEditPolicy {
}
return CommandResult.newOKCommandResult();
} catch (Exception e) {
- throw new ExecutionException("Can't open diagram", e);
+ throw new ExecutionException("Can't open diagram", e); //$NON-NLS-1$
}
}
}
diff --git a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/src/org/eclipse/papyrusrt/umlrt/tooling/diagram/statemachine/internal/editpolicies/messages.properties b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/src/org/eclipse/papyrusrt/umlrt/tooling/diagram/statemachine/internal/editpolicies/messages.properties
new file mode 100644
index 000000000..f2a077ca4
--- /dev/null
+++ b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/src/org/eclipse/papyrusrt/umlrt/tooling/diagram/statemachine/internal/editpolicies/messages.properties
@@ -0,0 +1,24 @@
+#
+# Copyright (c) 2017 Christian W. Damus 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:
+# Christian W. Damus - Initial API and implementation
+#
+
+RTCustomStateNavigationEditPolicy_0=Redefine Composite State
+RTCustomStateNavigationEditPolicy_1=This composite state is inherited. Redefine the state to create a diagram for it or open the parent diagram?
+RTCustomStateNavigationEditPolicy_10=Arrange Connection Points
+RTCustomStateNavigationEditPolicy_11=Open Diagram
+RTCustomStateNavigationEditPolicy_2=Redefine
+RTCustomStateNavigationEditPolicy_3=Open Parent
+RTCustomStateNavigationEditPolicy_4=Create Composite State Diagram
+RTCustomStateNavigationEditPolicy_5=This composite state redefines an inherited composite state. Create a diagram for it or open the parent diagram?
+RTCustomStateNavigationEditPolicy_6=Create Diagram
+RTCustomStateNavigationEditPolicy_7=This composite state redefines an inherited state. Create a diagram for it?
+RTCustomStateNavigationEditPolicy_8=Convert to Composite State
+RTCustomStateNavigationEditPolicy_9=Convert the state to a composite state and open a new diagram on its contents?
diff --git a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/META-INF/MANIFEST.MF b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/META-INF/MANIFEST.MF
index b6e89db2d..dcbc85e0b 100644
--- a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/META-INF/MANIFEST.MF
+++ b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/META-INF/MANIFEST.MF
@@ -40,7 +40,9 @@ Require-Bundle: org.eclipse.ui;bundle-version="[3.109.0,4.0.0)",
org.eclipse.papyrus.infra.ui.emf;bundle-version="[2.0.0,3.0.0)",
org.eclipse.papyrusrt.umlrt.tooling.ui;bundle-version="[0.9.0,1.0.0)",
org.eclipse.papyrus.views.modelexplorer.newchild;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.papyrusrt.umlrt.uml;bundle-version="[0.9.0,1.0.0)"
+ org.eclipse.papyrusrt.umlrt.uml;bundle-version="[0.9.0,1.0.0)",
+ org.eclipse.papyrus.uml.textedit.property.xtext.ui;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.papyrus.uml.textedit.parameter.xtext.ui;bundle-version="[2.0.0,3.0.0)"
Bundle-ManifestVersion: 2
Bundle-Activator: org.eclipse.papyrusrt.umlrt.tooling.modelexplorer.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/plugin.xml b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/plugin.xml
index 54285a3fe..d1995dfc6 100644
--- a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/plugin.xml
+++ b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/plugin.xml
@@ -90,6 +90,26 @@
editorConfiguration="org.eclipse.papyrusrt.umlrt.tooling.modelexplorer.preferences.RTPortDirectEditorConfiguration">
</simpleeditor>
</DirectEditor>
+ <DirectEditor
+ language="UML RT"
+ objectToEdit="org.eclipse.uml2.uml.Property">
+ <Priority
+ name="Highest">
+ </Priority>
+ <simpleeditor
+ editorConfiguration="org.eclipse.papyrusrt.umlrt.tooling.modelexplorer.preferences.CapsulePartDirectEditorConfiguration">
+ </simpleeditor>
+ </DirectEditor>
+ <DirectEditor
+ language="UML RT"
+ objectToEdit="org.eclipse.uml2.uml.Parameter">
+ <Priority
+ name="Highest">
+ </Priority>
+ <simpleeditor
+ editorConfiguration="org.eclipse.papyrusrt.umlrt.tooling.modelexplorer.preferences.RTParameterDirectEditorConfiguration">
+ </simpleeditor>
+ </DirectEditor>
</extension>
<extension
point="org.eclipse.papyrus.infra.architecture.models">
diff --git a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/src/org/eclipse/papyrusrt/umlrt/tooling/modelexplorer/preferences/CapsulePartDirectEditorConfiguration.java b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/src/org/eclipse/papyrusrt/umlrt/tooling/modelexplorer/preferences/CapsulePartDirectEditorConfiguration.java
new file mode 100644
index 000000000..4bce27a37
--- /dev/null
+++ b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/src/org/eclipse/papyrusrt/umlrt/tooling/modelexplorer/preferences/CapsulePartDirectEditorConfiguration.java
@@ -0,0 +1,52 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST 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:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrusrt.umlrt.tooling.modelexplorer.preferences;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.papyrus.uml.textedit.property.xtext.ui.contributions.PropertyXtextDirectEditorConfiguration;
+import org.eclipse.papyrusrt.umlrt.core.utils.CapsulePartUtils;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * Specific editor for UML-RT Port. By default, this is a simple direct editor.
+ */
+public class CapsulePartDirectEditorConfiguration extends PropertyXtextDirectEditorConfiguration {
+
+
+ @Override
+ public String getTextToEdit(final Object objectToEdit) {
+
+
+ if (CapsulePartUtils.isCapsulePart((Property) objectToEdit)) {
+ return ((Property) objectToEdit).getName();
+ } else {
+ return super.getTextToEdit(objectToEdit);
+ }
+ }
+
+ @Override
+ public IParser createParser(final EObject semanticObject) {
+ if (CapsulePartUtils.isCapsulePart((Property) semanticObject)) {
+ return new UMLRTElementDirectEditorParser(getTextToEdit(objectToEdit));
+ } else {
+ return super.createParser(semanticObject);
+ }
+
+ }
+
+
+
+
+}
diff --git a/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/src/org/eclipse/papyrusrt/umlrt/tooling/modelexplorer/preferences/RTParameterDirectEditorConfiguration.java b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/src/org/eclipse/papyrusrt/umlrt/tooling/modelexplorer/preferences/RTParameterDirectEditorConfiguration.java
new file mode 100644
index 000000000..033eb12ce
--- /dev/null
+++ b/plugins/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.modelexplorer/src/org/eclipse/papyrusrt/umlrt/tooling/modelexplorer/preferences/RTParameterDirectEditorConfiguration.java
@@ -0,0 +1,52 @@
+/*****************************************************************************
+ * Copyright (c) 2017 CEA LIST 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:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrusrt.umlrt.tooling.modelexplorer.preferences;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.runtime.common.ui.services.parser.IParser;
+import org.eclipse.papyrus.uml.textedit.parameter.xtext.ui.contributions.ParameterXtextDirectEditorConfiguration;
+import org.eclipse.papyrusrt.umlrt.core.utils.RTMessageUtils;
+import org.eclipse.uml2.uml.Parameter;
+
+/**
+ * Specific editor for UML-RT Port. By default, this is a simple direct editor.
+ */
+public class RTParameterDirectEditorConfiguration extends ParameterXtextDirectEditorConfiguration {
+
+
+ @Override
+ public String getTextToEdit(final Object objectToEdit) {
+
+
+ if (RTMessageUtils.isRTMessageParameter((EObject) objectToEdit)) {
+ return ((Parameter) objectToEdit).getName();
+ } else {
+ return super.getTextToEdit(objectToEdit);
+ }
+ }
+
+ @Override
+ public IParser createParser(final EObject semanticObject) {
+ if (RTMessageUtils.isRTMessageParameter(semanticObject)) {
+ return new UMLRTElementDirectEditorParser(getTextToEdit(objectToEdit));
+ } else {
+ return super.createParser(semanticObject);
+ }
+
+ }
+
+
+
+
+}
diff --git a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTStateMachProfileUtil.xtend b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTStateMachProfileUtil.xtend
index 9d2891170..703f1b8a8 100644
--- a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTStateMachProfileUtil.xtend
+++ b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTStateMachProfileUtil.xtend
@@ -27,6 +27,7 @@ import org.eclipse.papyrusrt.umlrt.profile.statemachine.UMLRTStateMachines.RTSta
import org.eclipse.papyrusrt.umlrt.profile.statemachine.UMLRTStateMachines.RTRegion
import static extension org.eclipse.papyrusrt.umlrt.uml.util.UMLRTExtensionUtil.*
+import org.eclipse.uml2.uml.Vertex
class UMLRTStateMachProfileUtil
{
@@ -177,6 +178,26 @@ class UMLRTStateMachProfileUtil
getTransitions( stateMachine?.ownedRegion )
}
+ static def Iterable<Transition> getAllIncomingTransitions( State state )
+ {
+ state.incomings.filter[!excluded] + getIndirectIncomingTransitions( state )
+ }
+
+ static def Iterable<Transition> getAllOutgoingTransitions( State state )
+ {
+ state.outgoings.filter[!excluded] + getIndirectOutgoingTransitions( state )
+ }
+
+ static def Iterable<Transition> getIndirectIncomingTransitions( State state )
+ {
+ getEntryPoints( state ).map[incomings].flatten.filter[!excluded]
+ }
+
+ static def Iterable<Transition> getIndirectOutgoingTransitions( State state )
+ {
+ getExitPoints( state ).map[outgoings].flatten.filter[!excluded]
+ }
+
static def Behavior getEffect( Transition transition )
{
val behaviours = transition?.getUMLRTContents(UMLPackage.Literals.TRANSITION__EFFECT).filter( Behavior ).filter[!excluded]
diff --git a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/ContainmentUtils.xtend b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/ContainmentUtils.xtend
index 94002de76..003ed43da 100644
--- a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/ContainmentUtils.xtend
+++ b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/ContainmentUtils.xtend
@@ -54,4 +54,15 @@ class ContainmentUtils {
}
}
+ static def Iterable<org.eclipse.uml2.uml.Element> getAllOwningElementsUptoType(org.eclipse.uml2.uml.Element element, Class<?> type) {
+ if (element.owner === null || type !== null && type.isInstance(element)) {
+ #[element]
+ } else {
+ getAllOwningElementsUptoType(element.owner, type) + #[element]
+ }
+ }
+
+ static def Iterable<org.eclipse.uml2.uml.Element> getAllOwningElements(org.eclipse.uml2.uml.Element element) {
+ getAllOwningElementsUptoType(element, null)
+ }
}
diff --git a/tests/junit/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp.test/models/models_to_skip.txt b/tests/junit/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp.test/models/models_to_skip.txt
index beb8d0e43..2e5579932 100644
--- a/tests/junit/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp.test/models/models_to_skip.txt
+++ b/tests/junit/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp.test/models/models_to_skip.txt
@@ -1,3 +1,4 @@
+**AmbiguousTransitions*
**Symbolic*
**EffectiveNames*
**ExclusionsCompositeStates*
diff --git a/tests/junit/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.tests/.classpath b/tests/junit/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.tests/.classpath
index 098194ca4..eca7bdba8 100644
--- a/tests/junit/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.tests/.classpath
+++ b/tests/junit/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.tests/.classpath
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
diff --git a/tests/junit/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.tests/META-INF/MANIFEST.MF b/tests/junit/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.tests/META-INF/MANIFEST.MF
index be6f0442c..b7433ed6f 100644
--- a/tests/junit/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.tests/META-INF/MANIFEST.MF
+++ b/tests/junit/umlrt/tooling/org.eclipse.papyrusrt.umlrt.tooling.compare.tests/META-INF/MANIFEST.MF
@@ -4,7 +4,7 @@ Bundle-Name: Papyrus-RT Tests for Compare Plugin
Bundle-SymbolicName: org.eclipse.papyrusrt.umlrt.tooling.compare.tests
Bundle-Version: 0.9.0.qualifier
Bundle-Vendor: Eclipse Modeling Project
-Bundle-RequiredExecutionEnvironment: JavaSE-1.7
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ActivationPolicy: lazy
Require-Bundle: org.junit;bundle-version="[4.12.0,5.0.0)",
org.eclipse.papyrusrt.umlrt.tooling.compare;bundle-version="[0.9.0,1.0.0)",

Back to the top