diff options
author | Remi Schnekenburger | 2017-03-03 16:06:21 +0000 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org | 2017-03-06 09:50:13 +0000 |
commit | 6f52c4c920bfec9e4984d471e0e3ca4c9d601080 (patch) | |
tree | b04383a9a786d6696d20e8af7de9b2abd3cdccf8 /tests/junit/umlrt/core | |
parent | fdb01cf1128261822d80c814ccc2215dd5118911 (diff) | |
download | org.eclipse.papyrus-rt-6f52c4c920bfec9e4984d471e0e3ca4c9d601080.tar.gz org.eclipse.papyrus-rt-6f52c4c920bfec9e4984d471e0e3ca4c9d601080.tar.xz org.eclipse.papyrus-rt-6f52c4c920bfec9e4984d471e0e3ca4c9d601080.zip |
Bug 494284: [Tooling] Create a UML-RT Transition using the tool palette
in a state machine diagram
https://bugs.eclipse.org/bugs/show_bug.cgi?id=494284
- Delete entry/exit pseudo states that do not have any
outgoings/incomings when the last transition is deleted
- adding JUnit tests
Change-Id: Ied4f42464fe5e610bae4893bc69843be1c68a230
Signed-off-by: Remi Schnekenburger <rschnekenburger@eclipsesource.com>
Diffstat (limited to 'tests/junit/umlrt/core')
5 files changed, 1339 insertions, 108 deletions
diff --git a/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/resource/TestModel.notation b/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/resource/TestModel.notation index 426f92b76..61492be72 100644 --- a/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/resource/TestModel.notation +++ b/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/resource/TestModel.notation @@ -215,7 +215,7 @@ <notation:Diagram xmi:id="_qWQz8LGnEeaAyq05NkOz7g" type="PapyrusUMLStateMachineDiagram" measurementUnit="Pixel"> <children xmi:type="notation:Shape" xmi:id="_qWQz8bGnEeaAyq05NkOz7g" type="StateMachine_Shape"> <children xmi:type="notation:DecorationNode" xmi:id="_qWQz8rGnEeaAyq05NkOz7g" type="StateMachine_NameLabel"> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qWQz87GnEeaAyq05NkOz7g" width="700" height="20"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qWQz87GnEeaAyq05NkOz7g" width="700" height="23"/> </children> <children xmi:type="notation:BasicCompartment" xmi:id="_qWQz9LGnEeaAyq05NkOz7g" type="StateMachine_RegionCompartment"> <children xmi:type="notation:Shape" xmi:id="_qWQz9bGnEeaAyq05NkOz7g" type="Region_Shape"> @@ -286,7 +286,7 @@ <layoutConstraint xmi:type="notation:Location" xmi:id="_r8w3trGnEeaAyq05NkOz7g" x="25" y="-10"/> </children> <element xmi:type="uml:Pseudostate" href="TestModel.uml#_r8vpkLGnEeaAyq05NkOz7g"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r8w3srGnEeaAyq05NkOz7g" x="3" y="-5" width="10" height="10"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r8w3srGnEeaAyq05NkOz7g" x="51" y="-5" width="10" height="10"/> </children> <children xmi:type="notation:Shape" xmi:id="_s9J9sLGnEeaAyq05NkOz7g" type="Pseudostate_ExitPointShape"> <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s99O8LGnEeaAyq05NkOz7g" source="PapyrusCSSForceValue"> @@ -299,8 +299,9 @@ <layoutConstraint xmi:type="notation:Location" xmi:id="_s9J9tbGnEeaAyq05NkOz7g" x="25" y="-10"/> </children> <element xmi:type="uml:Pseudostate" href="TestModel.uml#_s8f2YLGnEeaAyq05NkOz7g"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s9J9sbGnEeaAyq05NkOz7g" x="-5" y="-5" width="10" height="10"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s9J9sbGnEeaAyq05NkOz7g" x="-5" y="40" width="10" height="10"/> </children> + <children xmi:type="notation:Compartment" xmi:id="_69cHYP9gEeaYl-9HO68L4Q" type="InternalTransitions"/> <element xmi:type="uml:State" href="TestModel.uml#_qVpI5LGnEeaAyq05NkOz7g"/> <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q_pvZbGnEeaAyq05NkOz7g" x="164" y="65" width="244" height="121"/> </children> @@ -349,7 +350,7 @@ <element xsi:nil="true"/> <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q_pvTrGnEeaAyq05NkOz7g" x="200"/> </children> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qWQz-7GnEeaAyq05NkOz7g" y="20" width="700" height="280"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qWQz-7GnEeaAyq05NkOz7g" y="23" width="700" height="277"/> </children> <element xmi:type="uml:StateMachine" href="TestModel.uml#_qVpI4LGnEeaAyq05NkOz7g"/> <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qWQz_LGnEeaAyq05NkOz7g" x="30" y="30" width="700" height="300"/> @@ -415,7 +416,7 @@ </eAnnotations> <children xmi:type="notation:DecorationNode" xmi:id="_rEE8M7GnEeaAyq05NkOz7g" type="Transition_NameLabel"> <styles xmi:type="notation:BooleanValueStyle" xmi:id="_rXr0sLGnEeaAyq05NkOz7g" name="IS_UPDATED_POSITION" booleanValue="true"/> - <layoutConstraint xmi:type="notation:Location" xmi:id="_rEE8NLGnEeaAyq05NkOz7g"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_rEE8NLGnEeaAyq05NkOz7g" x="15" y="-8"/> </children> <children xmi:type="notation:DecorationNode" xmi:id="_rEE8NbGnEeaAyq05NkOz7g" type="Transition_GuardLabel"> <styles xmi:type="notation:BooleanValueStyle" xmi:id="_rX1lsLGnEeaAyq05NkOz7g" name="IS_UPDATED_POSITION" booleanValue="true"/> @@ -455,7 +456,7 @@ <notation:Diagram xmi:id="_r8t0YLGnEeaAyq05NkOz7g" type="PapyrusUMLStateMachineDiagram" measurementUnit="Pixel"> <children xmi:type="notation:Shape" xmi:id="_r8t0YbGnEeaAyq05NkOz7g" type="State_Shape_TN"> <children xmi:type="notation:DecorationNode" xmi:id="_r8t0YrGnEeaAyq05NkOz7g" type="State_NameLabel_TN"> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r8t0Y7GnEeaAyq05NkOz7g" width="700" height="20"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r8t0Y7GnEeaAyq05NkOz7g" width="700" height="23"/> </children> <children xmi:type="notation:BasicCompartment" xmi:id="_r8t0ZLGnEeaAyq05NkOz7g" type="State_RegionCompartment_TN"> <children xmi:type="notation:Shape" xmi:id="_r8t0ZbGnEeaAyq05NkOz7g" type="Region_Shape"> @@ -484,7 +485,7 @@ </children> <children xmi:type="notation:Compartment" xmi:id="_6_HgwPOLEeaLjeWEv6597A" type="InternalTransitions"/> <element xmi:type="uml:State" href="TestModel.uml#_tZIvELGnEeaAyq05NkOz7g"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tZSgEbGnEeaAyq05NkOz7g" x="170" y="113"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tZSgEbGnEeaAyq05NkOz7g" x="164" y="32"/> </children> <children xmi:type="notation:Shape" xmi:id="_tZSgIbGnEeaAyq05NkOz7g" type="StereotypeComment"> <styles xmi:type="notation:TitleStyle" xmi:id="_tZSgIrGnEeaAyq05NkOz7g"/> @@ -515,7 +516,7 @@ </children> <children xmi:type="notation:Compartment" xmi:id="_6_Z0oPOLEeaLjeWEv6597A" type="InternalTransitions"/> <element xmi:type="uml:State" href="TestModel.uml#_v4HS8LGnEeaAyq05NkOz7g"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v4aN4bGnEeaAyq05NkOz7g" x="381" y="115"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v4aN4bGnEeaAyq05NkOz7g" x="375" y="34"/> </children> <children xmi:type="notation:Shape" xmi:id="_v4j-6rGnEeaAyq05NkOz7g" type="StereotypeComment"> <styles xmi:type="notation:TitleStyle" xmi:id="_v4j-67GnEeaAyq05NkOz7g"/> @@ -525,6 +526,250 @@ <element xsi:nil="true"/> <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v4j-7LGnEeaAyq05NkOz7g" x="200"/> </children> + <children xmi:type="notation:Shape" xmi:id="_CyZRcP9hEeaYl-9HO68L4Q" type="State_Shape"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vi3t4P9hEeaYl-9HO68L4Q" source="PapyrusHyperLink_Page" references="_Vit84P9hEeaYl-9HO68L4Q"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vi3t4f9hEeaYl-9HO68L4Q" key="tooltip_text" value="CapsuleWithCompositeState..composite1"/> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vi3t4v9hEeaYl-9HO68L4Q" key="pageName" value="CapsuleWithCompositeState..composite1"/> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vi3t4_9hEeaYl-9HO68L4Q" key="is_default_navigation" value="true"/> + </eAnnotations> + <children xmi:type="notation:DecorationNode" xmi:id="_C1Mt0P9hEeaYl-9HO68L4Q" type="State_NameLabel"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OBfnIP9hEeaYl-9HO68L4Q" width="121"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_C1Mt0f9hEeaYl-9HO68L4Q" type="State_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_C1Mt0v9hEeaYl-9HO68L4Q" x="40"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_C1Mt0_9hEeaYl-9HO68L4Q" type="State_RegionCompartment"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C1Mt1P9hEeaYl-9HO68L4Q" y="-1" width="121"/> + </children> + <children xmi:type="notation:Compartment" xmi:id="_C1Mt1f9hEeaYl-9HO68L4Q" type="InternalTransitions"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C1Mt1v9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_C1Xs8P9hEeaYl-9HO68L4Q" type="StereotypeLabel"> + <styles xmi:type="notation:StringValueStyle" xmi:id="_C1Xs8f9hEeaYl-9HO68L4Q" 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="_C1Xs8v9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_C1YUAP9hEeaYl-9HO68L4Q" type="StereotypeBrace"> + <styles xmi:type="notation:TitleStyle" xmi:id="_C1YUAf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:StringValueStyle" xmi:id="_C1YUAv9hEeaYl-9HO68L4Q" 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="_C1YUA_9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_C1Y7EP9hEeaYl-9HO68L4Q" type="compartment_shape_display"> + <styles xmi:type="notation:TitleStyle" xmi:id="_C1Y7Ef9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C1Y7Ev9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_C1iFAP9hEeaYl-9HO68L4Q" type="StereotypeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_C1iFAf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:StringValueStyle" xmi:id="_C1iFAv9hEeaYl-9HO68L4Q" 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="_C1iFA_9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_VjNsIP9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_VjOTMP9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VjOTMf9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_VjOTMv9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VjOTM_9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_Vi8mYP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VjNsIf9hEeaYl-9HO68L4Q" x="116" y="18" width="10" height="10"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_VjYEMP9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_VjYrQP9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VjYrQf9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_VjYrQv9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VjYrQ_9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_VjR9kP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VjYEMf9hEeaYl-9HO68L4Q" x="116" y="57" width="10" height="10"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_VjgnEP9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_VjgnEv9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VjgnE_9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_VjgnFP9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VjgnFf9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_VjbukP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VjgnEf9hEeaYl-9HO68L4Q" x="116" y="37" width="10" height="10"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_Vjs0UP9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_VjtbYP9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VjtbYf9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_VjtbYv9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_VjtbY_9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_Vjk4gP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vjs0Uf9hEeaYl-9HO68L4Q" x="116" y="76" width="10" height="10"/> + </children> + <element xmi:type="uml:State" href="TestModel.uml#_CsNJ4P9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CyZRcf9hEeaYl-9HO68L4Q" x="135" y="142" width="121" height="96"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_C1awQP9hEeaYl-9HO68L4Q" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_C1awQf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_C1b-YP9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:State" href="TestModel.uml#_CsNJ4P9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C1awQv9hEeaYl-9HO68L4Q" x="200"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_Ew17IP9hEeaYl-9HO68L4Q" type="State_Shape"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l_nNIP9hEeaYl-9HO68L4Q" source="PapyrusHyperLink_Page" references="_l_kw4P9hEeaYl-9HO68L4Q"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l_nNIf9hEeaYl-9HO68L4Q" key="tooltip_text" value="CapsuleWithCompositeState..composite2"/> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l_nNIv9hEeaYl-9HO68L4Q" key="pageName" value="CapsuleWithCompositeState..composite2"/> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l_nNI_9hEeaYl-9HO68L4Q" key="is_default_navigation" value="true"/> + </eAnnotations> + <children xmi:type="notation:DecorationNode" xmi:id="_Ew2iMP9hEeaYl-9HO68L4Q" type="State_NameLabel"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OSIrMP9hEeaYl-9HO68L4Q" width="121"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Ew2iMf9hEeaYl-9HO68L4Q" type="State_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Ew2iMv9hEeaYl-9HO68L4Q" x="40"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_Ew3JQP9hEeaYl-9HO68L4Q" type="State_RegionCompartment"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ew3JQf9hEeaYl-9HO68L4Q" y="-1" width="121"/> + </children> + <children xmi:type="notation:Compartment" xmi:id="_Ew3JQv9hEeaYl-9HO68L4Q" type="InternalTransitions"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ew3JQ_9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_ExBhUP9hEeaYl-9HO68L4Q" type="StereotypeLabel"> + <styles xmi:type="notation:StringValueStyle" xmi:id="_ExBhUf9hEeaYl-9HO68L4Q" 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="_ExBhUv9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_ExCIYP9hEeaYl-9HO68L4Q" type="StereotypeBrace"> + <styles xmi:type="notation:TitleStyle" xmi:id="_ExCIYf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:StringValueStyle" xmi:id="_ExCIYv9hEeaYl-9HO68L4Q" 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="_ExCIY_9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_ExCvcP9hEeaYl-9HO68L4Q" type="compartment_shape_display"> + <styles xmi:type="notation:TitleStyle" xmi:id="_ExCvcf9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ExCvcv9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_ExEkoP9hEeaYl-9HO68L4Q" type="StereotypeCompartment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_ExEkof9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:StringValueStyle" xmi:id="_ExEkov9hEeaYl-9HO68L4Q" 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="_ExEko_9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_l_tTwP9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_l_tTwv9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_l_t60P9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_l_t60f9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_l_t60v9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_l_obQP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_tTwf9hEeaYl-9HO68L4Q" x="-5" y="18" width="10" height="10"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_l_0BcP9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_l_0ogP9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_l_0ogf9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_l_0ogv9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_l_0og_9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_l_vwAP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_0Bcf9hEeaYl-9HO68L4Q" x="-5" y="57" width="10" height="10"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_l_5hAP9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_l_5hAv9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_l_6IEP9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_l_6IEf9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_l_6IEv9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_l_12oP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_5hAf9hEeaYl-9HO68L4Q" x="-5" y="37" width="10" height="10"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_mACD4P9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_mACD4v9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_mACD4_9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_mACD5P9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_mACD5f9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_l_9LYP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mACD4f9hEeaYl-9HO68L4Q" x="-5" y="76" width="10" height="10"/> + </children> + <element xmi:type="uml:State" href="TestModel.uml#_EwShgP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ew17If9hEeaYl-9HO68L4Q" x="410" y="142" width="121" height="96"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_ExDWgP9hEeaYl-9HO68L4Q" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_ExDWgf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ExDWg_9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:State" href="TestModel.uml#_EwShgP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ExDWgv9hEeaYl-9HO68L4Q" x="200"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_VnjZk_9hEeaYl-9HO68L4Q" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_VnjZlP9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_VnjZlv9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_Vi8mYP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VnjZlf9hEeaYl-9HO68L4Q" x="316" y="18"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_Vnr8cP9hEeaYl-9HO68L4Q" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_Vnr8cf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Vnr8c_9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_VjR9kP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vnr8cv9hEeaYl-9HO68L4Q" x="316" y="57"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_Vnz4QP9hEeaYl-9HO68L4Q" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_Vnz4Qf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Vnz4Q_9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_VjbukP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vnz4Qv9hEeaYl-9HO68L4Q" x="316" y="37"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_Vn70EP9hEeaYl-9HO68L4Q" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_Vn70Ef9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Vn70E_9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_Vjk4gP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vn70Ev9hEeaYl-9HO68L4Q" x="316" y="76"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_mEOnYP9hEeaYl-9HO68L4Q" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_mEOnYf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_mEOnY_9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_obQP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mEOnYv9hEeaYl-9HO68L4Q" x="195" y="18"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_mEV8I_9hEeaYl-9HO68L4Q" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_mEV8JP9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_mEV8Jv9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_vwAP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mEV8Jf9hEeaYl-9HO68L4Q" x="195" y="57"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_mEdQ4_9hEeaYl-9HO68L4Q" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_mEdQ5P9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_mEd38P9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_12oP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mEdQ5f9hEeaYl-9HO68L4Q" x="195" y="37"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_mEiwcP9hEeaYl-9HO68L4Q" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_mEiwcf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_mEiwc_9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_9LYP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mEiwcv9hEeaYl-9HO68L4Q" x="195" y="76"/> + </children> <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r8t0abGnEeaAyq05NkOz7g"/> </children> <element xmi:type="uml:Region" href="TestModel.uml#_r8tNULGnEeaAyq05NkOz7g"/> @@ -538,7 +783,7 @@ <element xsi:nil="true"/> <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r9WtsbGnEeaAyq05NkOz7g" x="200"/> </children> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r8t0a7GnEeaAyq05NkOz7g" y="20" width="700" height="287"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r8t0a7GnEeaAyq05NkOz7g" y="23" width="700" height="287"/> </children> <children xmi:type="notation:Shape" xmi:id="_r8w3t7GnEeaAyq05NkOz7g" type="Pseudostate_EntryPointShape"> <children xmi:type="notation:DecorationNode" xmi:id="_r8w3ubGnEeaAyq05NkOz7g" type="Pseudostate_EntryPointFloatingNameLabel"> @@ -581,8 +826,11 @@ <element xmi:type="uml:Pseudostate" href="TestModel.uml#_s8f2YLGnEeaAyq05NkOz7g"/> <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s82bsbGnEeaAyq05NkOz7g" x="-10" y="200" width="20" height="20"/> </children> + <children xmi:type="notation:Compartment" xmi:id="_3jVYAP9gEeaYl-9HO68L4Q" type="InternalTransitions"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3sJ80P9gEeaYl-9HO68L4Q"/> + </children> <element xmi:type="uml:State" href="TestModel.uml#_qVpI5LGnEeaAyq05NkOz7g"/> - <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r8t0bLGnEeaAyq05NkOz7g" x="30" y="30" width="700" height="307"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r8t0bLGnEeaAyq05NkOz7g" x="30" y="30" width="700" height="310"/> </children> <children xmi:type="notation:Shape" xmi:id="_r9WtmrGnEeaAyq05NkOz7g" type="StereotypeComment"> <styles xmi:type="notation:TitleStyle" xmi:id="_r9Wtm7GnEeaAyq05NkOz7g"/> @@ -677,19 +925,671 @@ </edges> <edges xmi:type="notation:Connector" xmi:id="_8FLJ4POLEeaLjeWEv6597A" type="Transition_Edge" source="_tZSgELGnEeaAyq05NkOz7g" target="_v4aN4LGnEeaAyq05NkOz7g"> <children xmi:type="notation:DecorationNode" xmi:id="_8FNmIPOLEeaLjeWEv6597A" type="Transition_NameLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_BGOqkP9hEeaYl-9HO68L4Q" name="IS_UPDATED_POSITION" booleanValue="true"/> <layoutConstraint xmi:type="notation:Location" xmi:id="_8FNmIfOLEeaLjeWEv6597A"/> </children> <children xmi:type="notation:DecorationNode" xmi:id="_8FONMPOLEeaLjeWEv6597A" type="Transition_GuardLabel"> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_BGmeAP9hEeaYl-9HO68L4Q" name="IS_UPDATED_POSITION" booleanValue="true"/> <layoutConstraint xmi:type="notation:Location" xmi:id="_8FONMfOLEeaLjeWEv6597A"/> </children> <children xmi:type="notation:DecorationNode" xmi:id="_8FONMvOLEeaLjeWEv6597A" type="Transition_StereotypeLabel"> - <layoutConstraint xmi:type="notation:Location" xmi:id="_8FONM_OLEeaLjeWEv6597A" y="60"/> + <styles xmi:type="notation:BooleanValueStyle" xmi:id="_BG28sP9hEeaYl-9HO68L4Q" name="IS_UPDATED_POSITION" booleanValue="true"/> + <layoutConstraint xmi:type="notation:Location" xmi:id="_8FONM_OLEeaLjeWEv6597A" y="59"/> </children> <styles xmi:type="notation:FontStyle" xmi:id="_8FLJ4fOLEeaLjeWEv6597A"/> <element xmi:type="uml:Transition" href="TestModel.uml#_74zh0POLEeaLjeWEv6597A"/> - <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8FLJ4vOLEeaLjeWEv6597A" points="[256, 186, -643984, -643984]$[412, 181, -643984, -643984]"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8FLJ4vOLEeaLjeWEv6597A"/> <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8wA2oPOLEeaLjeWEv6597A" id="(1.0,0.575)"/> - <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8wBdsPOLEeaLjeWEv6597A" id="(0.0,0.4)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8wBdsPOLEeaLjeWEv6597A" id="(0.0,0.525)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_C1clcP9hEeaYl-9HO68L4Q" type="StereotypeCommentLink" source="_CyZRcP9hEeaYl-9HO68L4Q" target="_C1awQP9hEeaYl-9HO68L4Q"> + <styles xmi:type="notation:FontStyle" xmi:id="_C1clcf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_C1fowP9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:State" href="TestModel.uml#_CsNJ4P9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_C1clcv9hEeaYl-9HO68L4Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_C1dMgP9hEeaYl-9HO68L4Q"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_C1dMgf9hEeaYl-9HO68L4Q"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_ExDWhP9hEeaYl-9HO68L4Q" type="StereotypeCommentLink" source="_Ew17IP9hEeaYl-9HO68L4Q" target="_ExDWgP9hEeaYl-9HO68L4Q"> + <styles xmi:type="notation:FontStyle" xmi:id="_ExDWhf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ExDWif9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:State" href="TestModel.uml#_EwShgP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ExDWhv9hEeaYl-9HO68L4Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ExDWh_9hEeaYl-9HO68L4Q"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ExDWiP9hEeaYl-9HO68L4Q"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_GWzMUP9hEeaYl-9HO68L4Q" type="Transition_Edge" source="_VjNsIP9hEeaYl-9HO68L4Q" target="_l_tTwP9hEeaYl-9HO68L4Q"> + <children xmi:type="notation:DecorationNode" xmi:id="_GWzzYP9hEeaYl-9HO68L4Q" type="Transition_NameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_GWzzYf9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_GWzzYv9hEeaYl-9HO68L4Q" type="Transition_GuardLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_GWzzY_9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_GWzzZP9hEeaYl-9HO68L4Q" type="Transition_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_GWzzZf9hEeaYl-9HO68L4Q" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_GWzMUf9hEeaYl-9HO68L4Q"/> + <element xmi:type="uml:Transition" href="TestModel.uml#_GUTR8P9hEeaYl-9HO68L4Q"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GWzMUv9hEeaYl-9HO68L4Q"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GXz48P9hEeaYl-9HO68L4Q" id="(1.0,0.1875)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GXz48f9hEeaYl-9HO68L4Q" id="(0.0,0.1875)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_IVXKwP9hEeaYl-9HO68L4Q" type="Transition_Edge" source="_VjYEMP9hEeaYl-9HO68L4Q" target="_l_0BcP9hEeaYl-9HO68L4Q"> + <children xmi:type="notation:DecorationNode" xmi:id="_IVXx0P9hEeaYl-9HO68L4Q" type="Transition_NameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IVXx0f9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_IVXx0v9hEeaYl-9HO68L4Q" type="Transition_GuardLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IVXx0_9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_IVXx1P9hEeaYl-9HO68L4Q" type="Transition_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_IVXx1f9hEeaYl-9HO68L4Q" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_IVXKwf9hEeaYl-9HO68L4Q"/> + <element xmi:type="uml:Transition" href="TestModel.uml#_IU53wP9hEeaYl-9HO68L4Q"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IVXKwv9hEeaYl-9HO68L4Q"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IWRwwP9hEeaYl-9HO68L4Q" id="(1.0,0.59375)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IWSX0P9hEeaYl-9HO68L4Q" id="(0.0,0.59375)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_Mg7zUP9hEeaYl-9HO68L4Q" type="Transition_Edge" source="_VjgnEP9hEeaYl-9HO68L4Q" target="_l_5hAP9hEeaYl-9HO68L4Q"> + <children xmi:type="notation:DecorationNode" xmi:id="_Mg7zU_9hEeaYl-9HO68L4Q" type="Transition_NameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Mg7zVP9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Mg7zVf9hEeaYl-9HO68L4Q" type="Transition_GuardLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Mg8aYP9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Mg8aYf9hEeaYl-9HO68L4Q" type="Transition_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Mg8aYv9hEeaYl-9HO68L4Q" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_Mg7zUf9hEeaYl-9HO68L4Q"/> + <element xmi:type="uml:Transition" href="TestModel.uml#_MgegUP9hEeaYl-9HO68L4Q"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Mg7zUv9hEeaYl-9HO68L4Q"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MhvEkP9hEeaYl-9HO68L4Q" id="(1.0,0.3854166666666667)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MhvEkf9hEeaYl-9HO68L4Q" id="(0.0,0.3854166666666667)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_OuCkEP9hEeaYl-9HO68L4Q" type="Transition_Edge" source="_Vjs0UP9hEeaYl-9HO68L4Q" target="_mACD4P9hEeaYl-9HO68L4Q"> + <children xmi:type="notation:DecorationNode" xmi:id="_OuDLIP9hEeaYl-9HO68L4Q" type="Transition_NameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_OuDLIf9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_OuDLIv9hEeaYl-9HO68L4Q" type="Transition_GuardLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_OuDLI_9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_OuDLJP9hEeaYl-9HO68L4Q" type="Transition_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_OuDLJf9hEeaYl-9HO68L4Q" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_OuCkEf9hEeaYl-9HO68L4Q"/> + <element xmi:type="uml:Transition" href="TestModel.uml#_OtdVQP9hEeaYl-9HO68L4Q"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OuCkEv9hEeaYl-9HO68L4Q"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ou778P9hEeaYl-9HO68L4Q" id="(1.0,0.7916666666666666)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ou778f9hEeaYl-9HO68L4Q" id="(0.0,0.7916666666666666)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_VnkAoP9hEeaYl-9HO68L4Q" type="StereotypeCommentLink" source="_VjNsIP9hEeaYl-9HO68L4Q" target="_VnjZk_9hEeaYl-9HO68L4Q"> + <styles xmi:type="notation:FontStyle" xmi:id="_VnkAof9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_VnkApf9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_Vi8mYP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VnkAov9hEeaYl-9HO68L4Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VnkAo_9hEeaYl-9HO68L4Q"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VnkApP9hEeaYl-9HO68L4Q"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_Vnr8dP9hEeaYl-9HO68L4Q" type="StereotypeCommentLink" source="_VjYEMP9hEeaYl-9HO68L4Q" target="_Vnr8cP9hEeaYl-9HO68L4Q"> + <styles xmi:type="notation:FontStyle" xmi:id="_Vnr8df9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Vnr8ef9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_VjR9kP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Vnr8dv9hEeaYl-9HO68L4Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Vnr8d_9hEeaYl-9HO68L4Q"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Vnr8eP9hEeaYl-9HO68L4Q"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_Vnz4RP9hEeaYl-9HO68L4Q" type="StereotypeCommentLink" source="_VjgnEP9hEeaYl-9HO68L4Q" target="_Vnz4QP9hEeaYl-9HO68L4Q"> + <styles xmi:type="notation:FontStyle" xmi:id="_Vnz4Rf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Vn0fUf9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_VjbukP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Vnz4Rv9hEeaYl-9HO68L4Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Vnz4R_9hEeaYl-9HO68L4Q"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Vn0fUP9hEeaYl-9HO68L4Q"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_Vn8bIP9hEeaYl-9HO68L4Q" type="StereotypeCommentLink" source="_Vjs0UP9hEeaYl-9HO68L4Q" target="_Vn70EP9hEeaYl-9HO68L4Q"> + <styles xmi:type="notation:FontStyle" xmi:id="_Vn8bIf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Vn8bJf9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_Vjk4gP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Vn8bIv9hEeaYl-9HO68L4Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Vn8bI_9hEeaYl-9HO68L4Q"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Vn8bJP9hEeaYl-9HO68L4Q"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_mEOnZP9hEeaYl-9HO68L4Q" type="StereotypeCommentLink" source="_l_tTwP9hEeaYl-9HO68L4Q" target="_mEOnYP9hEeaYl-9HO68L4Q"> + <styles xmi:type="notation:FontStyle" xmi:id="_mEOnZf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_mEOnaf9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_obQP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mEOnZv9hEeaYl-9HO68L4Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mEOnZ_9hEeaYl-9HO68L4Q"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mEOnaP9hEeaYl-9HO68L4Q"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_mEWjMP9hEeaYl-9HO68L4Q" type="StereotypeCommentLink" source="_l_0BcP9hEeaYl-9HO68L4Q" target="_mEV8I_9hEeaYl-9HO68L4Q"> + <styles xmi:type="notation:FontStyle" xmi:id="_mEWjMf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_mEWjNf9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_vwAP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mEWjMv9hEeaYl-9HO68L4Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mEWjM_9hEeaYl-9HO68L4Q"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mEWjNP9hEeaYl-9HO68L4Q"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_mEd38f9hEeaYl-9HO68L4Q" type="StereotypeCommentLink" source="_l_5hAP9hEeaYl-9HO68L4Q" target="_mEdQ4_9hEeaYl-9HO68L4Q"> + <styles xmi:type="notation:FontStyle" xmi:id="_mEd38v9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_mEd39v9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_12oP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mEd38_9hEeaYl-9HO68L4Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mEd39P9hEeaYl-9HO68L4Q"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mEd39f9hEeaYl-9HO68L4Q"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_mEiwdP9hEeaYl-9HO68L4Q" type="StereotypeCommentLink" source="_mACD4P9hEeaYl-9HO68L4Q" target="_mEiwcP9hEeaYl-9HO68L4Q"> + <styles xmi:type="notation:FontStyle" xmi:id="_mEiwdf9hEeaYl-9HO68L4Q"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_mEiwef9hEeaYl-9HO68L4Q" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_9LYP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mEiwdv9hEeaYl-9HO68L4Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mEiwd_9hEeaYl-9HO68L4Q"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mEiweP9hEeaYl-9HO68L4Q"/> + </edges> + </notation:Diagram> + <notation:Diagram xmi:id="_Vit84P9hEeaYl-9HO68L4Q" type="PapyrusUMLStateMachineDiagram" measurementUnit="Pixel"> + <children xmi:type="notation:Shape" xmi:id="_Vit84f9hEeaYl-9HO68L4Q" type="State_Shape_TN"> + <children xmi:type="notation:DecorationNode" xmi:id="_Vit84v9hEeaYl-9HO68L4Q" type="State_NameLabel_TN"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vit84_9hEeaYl-9HO68L4Q" width="700" height="23"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_Vit85P9hEeaYl-9HO68L4Q" type="State_RegionCompartment_TN"> + <children xmi:type="notation:Shape" xmi:id="_Vit85f9hEeaYl-9HO68L4Q" type="Region_Shape"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vit85v9hEeaYl-9HO68L4Q" source="RegionAnnotationKey"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vit85_9hEeaYl-9HO68L4Q" key="RegionZoneKey" value=""/> + </eAnnotations> + <children xmi:type="notation:BasicCompartment" xmi:id="_Vit86P9hEeaYl-9HO68L4Q" type="Region_SubvertexCompartment"> + <children xmi:type="notation:Shape" xmi:id="_I69q0P9kEeal8sRL6fi9EA" type="State_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_I6_gAP9kEeal8sRL6fi9EA" type="State_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_I6_gAf9kEeal8sRL6fi9EA" type="State_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_I7AHEP9kEeal8sRL6fi9EA" x="40"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_I7AHEf9kEeal8sRL6fi9EA" type="State_RegionCompartment"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I7AHEv9kEeal8sRL6fi9EA"/> + </children> + <children xmi:type="notation:Compartment" xmi:id="_I7AHE_9kEeal8sRL6fi9EA" type="InternalTransitions"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I7AHFP9kEeal8sRL6fi9EA"/> + </children> + <element xmi:type="uml:State" href="TestModel.uml#_I0sqwP9kEeal8sRL6fi9EA"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I69q0f9kEeal8sRL6fi9EA" x="373" y="80" width="90" height="61"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_I7P-sP9kEeal8sRL6fi9EA" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_I7P-sf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_I7P-s_9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:State" href="TestModel.uml#_I0sqwP9kEeal8sRL6fi9EA"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I7P-sv9kEeal8sRL6fi9EA" x="200"/> + </children> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vit86f9hEeaYl-9HO68L4Q"/> + </children> + <element xmi:type="uml:Region" href="TestModel.uml#_Viq5kP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vit86v9hEeaYl-9HO68L4Q" width="700" height="287"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_HfhnkP9kEeal8sRL6fi9EA" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_Hfhnkf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_HfiOoP9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Region" href="TestModel.uml#_Viq5kP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hfhnkv9kEeal8sRL6fi9EA" x="200"/> + </children> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vit86_9hEeaYl-9HO68L4Q" y="23" width="700" height="287"/> + </children> + <children xmi:type="notation:Compartment" xmi:id="_Vit87P9hEeaYl-9HO68L4Q" type="InternalTransitions"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vit87f9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_Vj0JEP9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_Vj0JEv9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Vj0JE_9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Vj0JFP9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Vj0JFf9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_Vi8mYP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj0JEf9hEeaYl-9HO68L4Q" x="695" y="67"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_Vj0wIP9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_Vj0wIv9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Vj0wI_9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Vj0wJP9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Vj0wJf9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_VjR9kP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj0wIf9hEeaYl-9HO68L4Q" x="695" y="190"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_Vj0wJv9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_Vj0wKP9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Vj0wKf9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Vj0wKv9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Vj0wK_9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_VjbukP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj0wJ_9hEeaYl-9HO68L4Q" x="695" y="127"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_Vj1XMP9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_Vj1XMv9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Vj1XM_9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Vj1XNP9hEeaYl-9HO68L4Q" type="Pseudostate_ExitPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Vj1XNf9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_Vjk4gP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj1XMf9hEeaYl-9HO68L4Q" x="695" y="247"/> + </children> + <element xmi:type="uml:State" href="TestModel.uml#_CsNJ4P9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vit87v9hEeaYl-9HO68L4Q" x="30" y="30" width="700" height="310"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_HfPTsP9kEeal8sRL6fi9EA" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_HfPTsf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_HfRI4P9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:State" href="TestModel.uml#_CsNJ4P9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HfPTsv9kEeal8sRL6fi9EA" x="230" y="30"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_HftNwP9kEeal8sRL6fi9EA" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_HftNwf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_HftNw_9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_Vi8mYP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HftNwv9kEeal8sRL6fi9EA" x="895" y="67"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_HfzUYP9kEeal8sRL6fi9EA" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_HfzUYf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Hfz7cP9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_VjR9kP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HfzUYv9kEeal8sRL6fi9EA" x="895" y="190"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_Hf5bAP9kEeal8sRL6fi9EA" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_Hf5bAf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Hf5bA_9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_VjbukP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hf5bAv9kEeal8sRL6fi9EA" x="895" y="127"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_Hf-6kP9kEeal8sRL6fi9EA" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_Hf-6kf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Hf_hoP9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_Vjk4gP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hf-6kv9kEeal8sRL6fi9EA" x="895" y="247"/> + </children> + <styles xmi:type="notation:StringValueStyle" xmi:id="_Vit87_9hEeaYl-9HO68L4Q" name="diagram_compatibility_version" stringValue="1.2.0"/> + <styles xmi:type="notation:DiagramStyle" xmi:id="_Vit88P9hEeaYl-9HO68L4Q"/> + <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Vit88f9hEeaYl-9HO68L4Q"> + <owner xmi:type="uml:State" href="TestModel.uml#_CsNJ4P9hEeaYl-9HO68L4Q"/> + <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/configuration/RTStateMachine.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/> + </styles> + <element xmi:type="uml:State" href="TestModel.uml#_CsNJ4P9hEeaYl-9HO68L4Q"/> + <edges xmi:type="notation:Connector" xmi:id="_HfTlIP9kEeal8sRL6fi9EA" type="StereotypeCommentLink" source="_Vit84f9hEeaYl-9HO68L4Q" target="_HfPTsP9kEeal8sRL6fi9EA"> + <styles xmi:type="notation:FontStyle" xmi:id="_HfTlIf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_HfVaUf9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:State" href="TestModel.uml#_CsNJ4P9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HfTlIv9kEeal8sRL6fi9EA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HfUMMP9kEeal8sRL6fi9EA"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HfVaUP9kEeal8sRL6fi9EA"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_HfiOof9kEeal8sRL6fi9EA" type="StereotypeCommentLink" source="_Vit85f9hEeaYl-9HO68L4Q" target="_HfhnkP9kEeal8sRL6fi9EA"> + <styles xmi:type="notation:FontStyle" xmi:id="_HfiOov9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_HfiOpv9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Region" href="TestModel.uml#_Viq5kP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HfiOo_9kEeal8sRL6fi9EA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HfiOpP9kEeal8sRL6fi9EA"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HfiOpf9kEeal8sRL6fi9EA"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_HftNxP9kEeal8sRL6fi9EA" type="StereotypeCommentLink" source="_Vj0JEP9hEeaYl-9HO68L4Q" target="_HftNwP9kEeal8sRL6fi9EA"> + <styles xmi:type="notation:FontStyle" xmi:id="_HftNxf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_HftNyf9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_Vi8mYP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HftNxv9kEeal8sRL6fi9EA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HftNx_9kEeal8sRL6fi9EA"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HftNyP9kEeal8sRL6fi9EA"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_Hfz7cf9kEeal8sRL6fi9EA" type="StereotypeCommentLink" source="_Vj0wIP9hEeaYl-9HO68L4Q" target="_HfzUYP9kEeal8sRL6fi9EA"> + <styles xmi:type="notation:FontStyle" xmi:id="_Hfz7cv9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Hfz7dv9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_VjR9kP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hfz7c_9kEeal8sRL6fi9EA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hfz7dP9kEeal8sRL6fi9EA"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hfz7df9kEeal8sRL6fi9EA"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_Hf5bBP9kEeal8sRL6fi9EA" type="StereotypeCommentLink" source="_Vj0wJv9hEeaYl-9HO68L4Q" target="_Hf5bAP9kEeal8sRL6fi9EA"> + <styles xmi:type="notation:FontStyle" xmi:id="_Hf5bBf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Hf5bCf9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_VjbukP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hf5bBv9kEeal8sRL6fi9EA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hf5bB_9kEeal8sRL6fi9EA"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hf5bCP9kEeal8sRL6fi9EA"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_Hf_hof9kEeal8sRL6fi9EA" type="StereotypeCommentLink" source="_Vj1XMP9hEeaYl-9HO68L4Q" target="_Hf-6kP9kEeal8sRL6fi9EA"> + <styles xmi:type="notation:FontStyle" xmi:id="_Hf_hov9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Hf_hpv9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_Vjk4gP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hf_ho_9kEeal8sRL6fi9EA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hf_hpP9kEeal8sRL6fi9EA"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hf_hpf9kEeal8sRL6fi9EA"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_I7QlwP9kEeal8sRL6fi9EA" type="StereotypeCommentLink" source="_I69q0P9kEeal8sRL6fi9EA" target="_I7P-sP9kEeal8sRL6fi9EA"> + <styles xmi:type="notation:FontStyle" xmi:id="_I7Qlwf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_I7Qlxf9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:State" href="TestModel.uml#_I0sqwP9kEeal8sRL6fi9EA"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_I7Qlwv9kEeal8sRL6fi9EA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_I7Qlw_9kEeal8sRL6fi9EA"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_I7QlxP9kEeal8sRL6fi9EA"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_L5MWgP9kEeal8sRL6fi9EA" type="Transition_Edge" source="_I69q0P9kEeal8sRL6fi9EA" target="_Vj0wJv9hEeaYl-9HO68L4Q"> + <children xmi:type="notation:DecorationNode" xmi:id="_L5M9kP9kEeal8sRL6fi9EA" type="Transition_NameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_L5M9kf9kEeal8sRL6fi9EA"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_L5M9kv9kEeal8sRL6fi9EA" type="Transition_GuardLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_L5M9k_9kEeal8sRL6fi9EA"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_L5M9lP9kEeal8sRL6fi9EA" type="Transition_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_L5M9lf9kEeal8sRL6fi9EA" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_L5MWgf9kEeal8sRL6fi9EA"/> + <element xmi:type="uml:Transition" href="TestModel.uml#_L2TakP9kEeal8sRL6fi9EA"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_L5MWgv9kEeal8sRL6fi9EA" points="[-240, -74, -236, -9]$[-2, -61, 2, 4]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_L6Km4P9kEeal8sRL6fi9EA" id="(0.8,0.32786885245901637)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_McMV4P9kEeal8sRL6fi9EA" type="Transition_Edge" source="_I69q0P9kEeal8sRL6fi9EA" target="_Vj1XMP9hEeaYl-9HO68L4Q"> + <children xmi:type="notation:DecorationNode" xmi:id="_McMV4_9kEeal8sRL6fi9EA" type="Transition_NameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_McMV5P9kEeal8sRL6fi9EA"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_McMV5f9kEeal8sRL6fi9EA" type="Transition_GuardLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_McMV5v9kEeal8sRL6fi9EA"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_McM88P9kEeal8sRL6fi9EA" type="Transition_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_McM88f9kEeal8sRL6fi9EA" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_McMV4f9kEeal8sRL6fi9EA"/> + <element xmi:type="uml:Transition" href="TestModel.uml#_Mb6CAP9kEeal8sRL6fi9EA"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_McMV4v9kEeal8sRL6fi9EA" points="[-233, -42, -237, -98]$[5, 51, 1, -5]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Mc8j0P9kEeal8sRL6fi9EA" id="(0.7555555555555555,0.7049180327868853)"/> + </edges> + </notation:Diagram> + <notation:Diagram xmi:id="_l_kw4P9hEeaYl-9HO68L4Q" type="PapyrusUMLStateMachineDiagram" measurementUnit="Pixel"> + <children xmi:type="notation:Shape" xmi:id="_l_kw4f9hEeaYl-9HO68L4Q" type="State_Shape_TN"> + <children xmi:type="notation:DecorationNode" xmi:id="_l_kw4v9hEeaYl-9HO68L4Q" type="State_NameLabel_TN"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_kw4_9hEeaYl-9HO68L4Q" width="700" height="23"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_l_kw5P9hEeaYl-9HO68L4Q" type="State_RegionCompartment_TN"> + <children xmi:type="notation:Shape" xmi:id="_l_kw5f9hEeaYl-9HO68L4Q" type="Region_Shape"> + <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_l_kw5v9hEeaYl-9HO68L4Q" source="RegionAnnotationKey"> + <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_l_kw5_9hEeaYl-9HO68L4Q" key="RegionZoneKey" value=""/> + </eAnnotations> + <children xmi:type="notation:BasicCompartment" xmi:id="_l_kw6P9hEeaYl-9HO68L4Q" type="Region_SubvertexCompartment"> + <children xmi:type="notation:Shape" xmi:id="_QfkEsP9kEeal8sRL6fi9EA" type="State_Shape"> + <children xmi:type="notation:DecorationNode" xmi:id="_QfkrwP9kEeal8sRL6fi9EA" type="State_NameLabel"/> + <children xmi:type="notation:DecorationNode" xmi:id="_QflS0P9kEeal8sRL6fi9EA" type="State_FloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_QflS0f9kEeal8sRL6fi9EA" x="40"/> + </children> + <children xmi:type="notation:BasicCompartment" xmi:id="_QflS0v9kEeal8sRL6fi9EA" type="State_RegionCompartment"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QflS0_9kEeal8sRL6fi9EA"/> + </children> + <children xmi:type="notation:Compartment" xmi:id="_QflS1P9kEeal8sRL6fi9EA" type="InternalTransitions"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QflS1f9kEeal8sRL6fi9EA"/> + </children> + <element xmi:type="uml:State" href="TestModel.uml#_Qe59YP9kEeal8sRL6fi9EA"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QfkEsf9kEeal8sRL6fi9EA" x="250" y="95" width="128" height="62"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_Qf1KcP9kEeal8sRL6fi9EA" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_Qf1Kcf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Qf1Kc_9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:State" href="TestModel.uml#_Qe59YP9kEeal8sRL6fi9EA"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qf1Kcv9kEeal8sRL6fi9EA" x="200"/> + </children> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_kw6f9hEeaYl-9HO68L4Q"/> + </children> + <element xmi:type="uml:Region" href="TestModel.uml#_l_jiwP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_kw6v9hEeaYl-9HO68L4Q" width="700" height="287"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_O9zXAP9kEeal8sRL6fi9EA" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_O9zXAf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_O9zXA_9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Region" href="TestModel.uml#_l_jiwP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O9zXAv9kEeal8sRL6fi9EA" x="200"/> + </children> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_kw6_9hEeaYl-9HO68L4Q" y="23" width="700" height="287"/> + </children> + <children xmi:type="notation:Compartment" xmi:id="_l_kw7P9hEeaYl-9HO68L4Q" type="InternalTransitions"> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_kw7f9hEeaYl-9HO68L4Q"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_mAD5EP9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_mAD5Ev9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_mAD5E_9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_mAD5FP9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_mAD5Ff9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_l_obQP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mAD5Ef9hEeaYl-9HO68L4Q" x="-5" y="67"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_mAD5Fv9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_mAD5GP9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_mAD5Gf9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_mAEgIP9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_mAEgIf9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_l_vwAP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mAD5F_9hEeaYl-9HO68L4Q" x="-5" y="190"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_mAEgIv9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_mAEgJP9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_mAEgJf9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_mAEgJv9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_mAEgJ_9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_l_12oP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mAEgI_9hEeaYl-9HO68L4Q" x="-5" y="127"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_mAEgKP9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointShape"> + <children xmi:type="notation:DecorationNode" xmi:id="_mAEgKv9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointFloatingNameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_mAEgK_9hEeaYl-9HO68L4Q" x="25" y="3"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_mAEgLP9hEeaYl-9HO68L4Q" type="Pseudostate_EntryPointStereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_mAEgLf9hEeaYl-9HO68L4Q" x="25" y="-10"/> + </children> + <element xmi:type="uml:Pseudostate" href="TestModel.uml#_l_9LYP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mAEgKf9hEeaYl-9HO68L4Q" x="-5" y="247"/> + </children> + <element xmi:type="uml:State" href="TestModel.uml#_EwShgP9hEeaYl-9HO68L4Q"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_kw7v9hEeaYl-9HO68L4Q" x="30" y="30" width="700" height="310"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_O9tQYP9kEeal8sRL6fi9EA" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_O9tQYf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_O9tQY_9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:State" href="TestModel.uml#_EwShgP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O9tQYv9kEeal8sRL6fi9EA" x="230" y="30"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_O99IAP9kEeal8sRL6fi9EA" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_O99IAf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_O99IA_9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_obQP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O99IAv9kEeal8sRL6fi9EA" x="195" y="67"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_O-DOoP9kEeal8sRL6fi9EA" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_O-DOof9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_O-D1sP9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_vwAP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O-DOov9kEeal8sRL6fi9EA" x="195" y="190"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_O-J8UP9kEeal8sRL6fi9EA" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_O-J8Uf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_O-J8U_9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_12oP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O-J8Uv9kEeal8sRL6fi9EA" x="195" y="127"/> + </children> + <children xmi:type="notation:Shape" xmi:id="_O-RREP9kEeal8sRL6fi9EA" type="StereotypeComment"> + <styles xmi:type="notation:TitleStyle" xmi:id="_O-RREf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_O-RRE_9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_9LYP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O-RREv9kEeal8sRL6fi9EA" x="195" y="247"/> + </children> + <styles xmi:type="notation:StringValueStyle" xmi:id="_l_kw7_9hEeaYl-9HO68L4Q" name="diagram_compatibility_version" stringValue="1.2.0"/> + <styles xmi:type="notation:DiagramStyle" xmi:id="_l_kw8P9hEeaYl-9HO68L4Q"/> + <styles xmi:type="style:PapyrusViewStyle" xmi:id="_l_kw8f9hEeaYl-9HO68L4Q"> + <owner xmi:type="uml:State" href="TestModel.uml#_EwShgP9hEeaYl-9HO68L4Q"/> + <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/configuration/RTStateMachine.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/> + </styles> + <element xmi:type="uml:State" href="TestModel.uml#_EwShgP9hEeaYl-9HO68L4Q"/> + <edges xmi:type="notation:Connector" xmi:id="_O9tQZP9kEeal8sRL6fi9EA" type="StereotypeCommentLink" source="_l_kw4f9hEeaYl-9HO68L4Q" target="_O9tQYP9kEeal8sRL6fi9EA"> + <styles xmi:type="notation:FontStyle" xmi:id="_O9tQZf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_O9tQaf9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:State" href="TestModel.uml#_EwShgP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O9tQZv9kEeal8sRL6fi9EA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O9tQZ_9kEeal8sRL6fi9EA"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O9tQaP9kEeal8sRL6fi9EA"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_O9zXBP9kEeal8sRL6fi9EA" type="StereotypeCommentLink" source="_l_kw5f9hEeaYl-9HO68L4Q" target="_O9zXAP9kEeal8sRL6fi9EA"> + <styles xmi:type="notation:FontStyle" xmi:id="_O9zXBf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_O9zXCf9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Region" href="TestModel.uml#_l_jiwP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O9zXBv9kEeal8sRL6fi9EA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O9zXB_9kEeal8sRL6fi9EA"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O9zXCP9kEeal8sRL6fi9EA"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_O99IBP9kEeal8sRL6fi9EA" type="StereotypeCommentLink" source="_mAD5EP9hEeaYl-9HO68L4Q" target="_O99IAP9kEeal8sRL6fi9EA"> + <styles xmi:type="notation:FontStyle" xmi:id="_O99IBf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_O99vEv9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_obQP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O99IBv9kEeal8sRL6fi9EA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O99vEP9kEeal8sRL6fi9EA"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O99vEf9kEeal8sRL6fi9EA"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_O-D1sf9kEeal8sRL6fi9EA" type="StereotypeCommentLink" source="_mAD5Fv9hEeaYl-9HO68L4Q" target="_O-DOoP9kEeal8sRL6fi9EA"> + <styles xmi:type="notation:FontStyle" xmi:id="_O-D1sv9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_O-D1tv9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_vwAP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O-D1s_9kEeal8sRL6fi9EA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O-D1tP9kEeal8sRL6fi9EA"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O-D1tf9kEeal8sRL6fi9EA"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_O-KjYP9kEeal8sRL6fi9EA" type="StereotypeCommentLink" source="_mAEgIv9hEeaYl-9HO68L4Q" target="_O-J8UP9kEeal8sRL6fi9EA"> + <styles xmi:type="notation:FontStyle" xmi:id="_O-KjYf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_O-KjZf9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_12oP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O-KjYv9kEeal8sRL6fi9EA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O-KjY_9kEeal8sRL6fi9EA"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O-KjZP9kEeal8sRL6fi9EA"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_O-RRFP9kEeal8sRL6fi9EA" type="StereotypeCommentLink" source="_mAEgKP9hEeaYl-9HO68L4Q" target="_O-RREP9kEeal8sRL6fi9EA"> + <styles xmi:type="notation:FontStyle" xmi:id="_O-RRFf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_O-RRGf9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:Pseudostate" href="TestModel.uml#_l_9LYP9hEeaYl-9HO68L4Q"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O-RRFv9kEeal8sRL6fi9EA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O-RRF_9kEeal8sRL6fi9EA"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O-RRGP9kEeal8sRL6fi9EA"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_Qf1KdP9kEeal8sRL6fi9EA" type="StereotypeCommentLink" source="_QfkEsP9kEeal8sRL6fi9EA" target="_Qf1KcP9kEeal8sRL6fi9EA"> + <styles xmi:type="notation:FontStyle" xmi:id="_Qf1Kdf9kEeal8sRL6fi9EA"/> + <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Qf1xgv9kEeal8sRL6fi9EA" name="BASE_ELEMENT"> + <eObjectValue xmi:type="uml:State" href="TestModel.uml#_Qe59YP9kEeal8sRL6fi9EA"/> + </styles> + <element xsi:nil="true"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Qf1Kdv9kEeal8sRL6fi9EA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Qf1xgP9kEeal8sRL6fi9EA"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Qf1xgf9kEeal8sRL6fi9EA"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_Sez_oP9kEeal8sRL6fi9EA" type="Transition_Edge" source="_mAD5Fv9hEeaYl-9HO68L4Q" target="_QfkEsP9kEeal8sRL6fi9EA"> + <children xmi:type="notation:DecorationNode" xmi:id="_Sez_o_9kEeal8sRL6fi9EA" type="Transition_NameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Sez_pP9kEeal8sRL6fi9EA"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Sez_pf9kEeal8sRL6fi9EA" type="Transition_GuardLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Sez_pv9kEeal8sRL6fi9EA"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_Sez_p_9kEeal8sRL6fi9EA" type="Transition_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_Sez_qP9kEeal8sRL6fi9EA" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_Sez_of9kEeal8sRL6fi9EA"/> + <element xmi:type="uml:Transition" href="TestModel.uml#_SeiS0P9kEeal8sRL6fi9EA"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Sez_ov9kEeal8sRL6fi9EA" points="[8, 224, -643984, -643984]$[255, 170, -643984, -643984]"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SfackP9kEeal8sRL6fi9EA" id="(0.2734375,0.43548387096774194)"/> + </edges> + <edges xmi:type="notation:Connector" xmi:id="_TZnbAP9kEeal8sRL6fi9EA" type="Transition_Edge" source="_mAEgKP9hEeaYl-9HO68L4Q" target="_QfkEsP9kEeal8sRL6fi9EA"> + <children xmi:type="notation:DecorationNode" xmi:id="_TZnbA_9kEeal8sRL6fi9EA" type="Transition_NameLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_TZnbBP9kEeal8sRL6fi9EA"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_TZnbBf9kEeal8sRL6fi9EA" type="Transition_GuardLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_TZnbBv9kEeal8sRL6fi9EA"/> + </children> + <children xmi:type="notation:DecorationNode" xmi:id="_TZnbB_9kEeal8sRL6fi9EA" type="Transition_StereotypeLabel"> + <layoutConstraint xmi:type="notation:Location" xmi:id="_TZnbCP9kEeal8sRL6fi9EA" y="60"/> + </children> + <styles xmi:type="notation:FontStyle" xmi:id="_TZnbAf9kEeal8sRL6fi9EA"/> + <element xmi:type="uml:Transition" href="TestModel.uml#_TZNLUP9kEeal8sRL6fi9EA"/> + <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TZnbAv9kEeal8sRL6fi9EA" points="[7, 278, -643984, -643984]$[255, 196, -643984, -643984]"/> + <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TaN38P9kEeal8sRL6fi9EA" id="(0.6,0.2)"/> + <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TaN38f9kEeal8sRL6fi9EA" id="(0.109375,0.7258064516129032)"/> </edges> </notation:Diagram> </xmi:XMI> diff --git a/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/resource/TestModel.uml b/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/resource/TestModel.uml index 3c34c2261..99573ba1b 100644 --- a/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/resource/TestModel.uml +++ b/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/resource/TestModel.uml @@ -66,9 +66,35 @@ <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_r8vpkLGnEeaAyq05NkOz7g" name="entryPoint" kind="entryPoint"/> <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_s8f2YLGnEeaAyq05NkOz7g" name="exitPoint" kind="exitPoint"/> <region xmi:type="uml:Region" xmi:id="_r8tNULGnEeaAyq05NkOz7g" name="Region1"> - <transition xmi:type="uml:Transition" xmi:id="_74zh0POLEeaLjeWEv6597A" source="_tZIvELGnEeaAyq05NkOz7g" target="_v4HS8LGnEeaAyq05NkOz7g"/> + <transition xmi:type="uml:Transition" xmi:id="_74zh0POLEeaLjeWEv6597A" name="t5" source="_tZIvELGnEeaAyq05NkOz7g" target="_v4HS8LGnEeaAyq05NkOz7g"/> + <transition xmi:type="uml:Transition" xmi:id="_GUTR8P9hEeaYl-9HO68L4Q" name="t1" kind="external" source="_Vi8mYP9hEeaYl-9HO68L4Q" target="_l_obQP9hEeaYl-9HO68L4Q"/> + <transition xmi:type="uml:Transition" xmi:id="_IU53wP9hEeaYl-9HO68L4Q" name="t3" kind="external" source="_VjR9kP9hEeaYl-9HO68L4Q" target="_l_vwAP9hEeaYl-9HO68L4Q"/> + <transition xmi:type="uml:Transition" xmi:id="_MgegUP9hEeaYl-9HO68L4Q" name="t2" kind="external" source="_VjbukP9hEeaYl-9HO68L4Q" target="_l_12oP9hEeaYl-9HO68L4Q"/> + <transition xmi:type="uml:Transition" xmi:id="_OtdVQP9hEeaYl-9HO68L4Q" name="t4" kind="external" source="_Vjk4gP9hEeaYl-9HO68L4Q" target="_l_9LYP9hEeaYl-9HO68L4Q"/> <subvertex xmi:type="uml:State" xmi:id="_tZIvELGnEeaAyq05NkOz7g" name="SubState1"/> <subvertex xmi:type="uml:State" xmi:id="_v4HS8LGnEeaAyq05NkOz7g" name="SubState2"/> + <subvertex xmi:type="uml:State" xmi:id="_CsNJ4P9hEeaYl-9HO68L4Q" name="composite1"> + <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_Vi8mYP9hEeaYl-9HO68L4Q" name="exit1" kind="exitPoint"/> + <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_VjR9kP9hEeaYl-9HO68L4Q" name="exit3" kind="exitPoint"/> + <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_VjbukP9hEeaYl-9HO68L4Q" name="exit2" kind="exitPoint"/> + <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_Vjk4gP9hEeaYl-9HO68L4Q" name="exit4" kind="exitPoint"/> + <region xmi:type="uml:Region" xmi:id="_Viq5kP9hEeaYl-9HO68L4Q" name="Region1"> + <transition xmi:type="uml:Transition" xmi:id="_L2TakP9kEeal8sRL6fi9EA" kind="external" source="_I0sqwP9kEeal8sRL6fi9EA" target="_VjbukP9hEeaYl-9HO68L4Q"/> + <transition xmi:type="uml:Transition" xmi:id="_Mb6CAP9kEeal8sRL6fi9EA" kind="external" source="_I0sqwP9kEeal8sRL6fi9EA" target="_Vjk4gP9hEeaYl-9HO68L4Q"/> + <subvertex xmi:type="uml:State" xmi:id="_I0sqwP9kEeal8sRL6fi9EA" name="inner"/> + </region> + </subvertex> + <subvertex xmi:type="uml:State" xmi:id="_EwShgP9hEeaYl-9HO68L4Q" name="composite2"> + <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_l_obQP9hEeaYl-9HO68L4Q" name="entry1" kind="entryPoint"/> + <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_l_vwAP9hEeaYl-9HO68L4Q" name="entry3" kind="entryPoint"/> + <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_l_12oP9hEeaYl-9HO68L4Q" name="entry2" kind="entryPoint"/> + <connectionPoint xmi:type="uml:Pseudostate" xmi:id="_l_9LYP9hEeaYl-9HO68L4Q" name="entry4" kind="entryPoint"/> + <region xmi:type="uml:Region" xmi:id="_l_jiwP9hEeaYl-9HO68L4Q" name="Region1"> + <transition xmi:type="uml:Transition" xmi:id="_SeiS0P9kEeal8sRL6fi9EA" kind="local" source="_l_vwAP9hEeaYl-9HO68L4Q" target="_Qe59YP9kEeal8sRL6fi9EA"/> + <transition xmi:type="uml:Transition" xmi:id="_TZNLUP9kEeal8sRL6fi9EA" kind="local" source="_l_9LYP9hEeaYl-9HO68L4Q" target="_Qe59YP9kEeal8sRL6fi9EA"/> + <subvertex xmi:type="uml:State" xmi:id="_Qe59YP9kEeal8sRL6fi9EA" name="inner"/> + </region> + </subvertex> </region> </subvertex> </region> @@ -119,4 +145,18 @@ <UMLRTStateMachines:RTPseudostate xmi:id="_s8f2YbGnEeaAyq05NkOz7g" base_Pseudostate="_s8f2YLGnEeaAyq05NkOz7g"/> <UMLRTStateMachines:RTState xmi:id="_tZIvEbGnEeaAyq05NkOz7g" base_State="_tZIvELGnEeaAyq05NkOz7g"/> <UMLRTStateMachines:RTState xmi:id="_v4RD8LGnEeaAyq05NkOz7g" base_State="_v4HS8LGnEeaAyq05NkOz7g"/> + <UMLRTStateMachines:RTState xmi:id="_CxhHsP9hEeaYl-9HO68L4Q" base_State="_CsNJ4P9hEeaYl-9HO68L4Q"/> + <UMLRTStateMachines:RTState xmi:id="_EwYoIP9hEeaYl-9HO68L4Q" base_State="_EwShgP9hEeaYl-9HO68L4Q"/> + <UMLRTStateMachines:RTRegion xmi:id="_Vi1RoP9hEeaYl-9HO68L4Q" base_Region="_Viq5kP9hEeaYl-9HO68L4Q"/> + <UMLRTStateMachines:RTPseudostate xmi:id="_VjGXYP9hEeaYl-9HO68L4Q" base_Pseudostate="_Vi8mYP9hEeaYl-9HO68L4Q"/> + <UMLRTStateMachines:RTPseudostate xmi:id="_VjVn8P9hEeaYl-9HO68L4Q" base_Pseudostate="_VjR9kP9hEeaYl-9HO68L4Q"/> + <UMLRTStateMachines:RTPseudostate xmi:id="_Vjex4P9hEeaYl-9HO68L4Q" base_Pseudostate="_VjbukP9hEeaYl-9HO68L4Q"/> + <UMLRTStateMachines:RTPseudostate xmi:id="_Vjq_IP9hEeaYl-9HO68L4Q" base_Pseudostate="_Vjk4gP9hEeaYl-9HO68L4Q"/> + <UMLRTStateMachines:RTRegion xmi:id="_l_l_AP9hEeaYl-9HO68L4Q" base_Region="_l_jiwP9hEeaYl-9HO68L4Q"/> + <UMLRTStateMachines:RTPseudostate xmi:id="_l_q3gP9hEeaYl-9HO68L4Q" base_Pseudostate="_l_obQP9hEeaYl-9HO68L4Q"/> + <UMLRTStateMachines:RTPseudostate xmi:id="_l_xlMP9hEeaYl-9HO68L4Q" base_Pseudostate="_l_vwAP9hEeaYl-9HO68L4Q"/> + <UMLRTStateMachines:RTPseudostate xmi:id="_l_3EwP9hEeaYl-9HO68L4Q" base_Pseudostate="_l_12oP9hEeaYl-9HO68L4Q"/> + <UMLRTStateMachines:RTPseudostate xmi:id="_mAAOsP9hEeaYl-9HO68L4Q" base_Pseudostate="_l_9LYP9hEeaYl-9HO68L4Q"/> + <UMLRTStateMachines:RTState xmi:id="_I5wJ4P9kEeal8sRL6fi9EA" base_State="_I0sqwP9kEeal8sRL6fi9EA"/> + <UMLRTStateMachines:RTState xmi:id="_QfArEP9kEeal8sRL6fi9EA" base_State="_Qe59YP9kEeal8sRL6fi9EA"/> </xmi:XMI> diff --git a/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/src/org/eclipse/papyrusrt/umlrt/core/tests/AbstractPapyrusRTCoreTest.java b/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/src/org/eclipse/papyrusrt/umlrt/core/tests/AbstractPapyrusRTCoreTest.java index b379bd616..bb821410d 100644 --- a/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/src/org/eclipse/papyrusrt/umlrt/core/tests/AbstractPapyrusRTCoreTest.java +++ b/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/src/org/eclipse/papyrusrt/umlrt/core/tests/AbstractPapyrusRTCoreTest.java @@ -12,26 +12,43 @@ *****************************************************************************/ package org.eclipse.papyrusrt.umlrt.core.tests; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Platform; +import org.eclipse.emf.common.command.Command; +import org.eclipse.emf.common.command.UnexecutableCommand; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.transaction.RollbackException; +import org.eclipse.emf.transaction.Transaction; import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.emf.transaction.impl.InternalTransactionalEditingDomain; +import org.eclipse.gmf.runtime.common.core.command.ICommand; +import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; +import org.eclipse.gmf.runtime.emf.type.core.requests.GetEditContextRequest; import org.eclipse.papyrus.infra.core.resource.ModelSet; import org.eclipse.papyrus.infra.core.resource.ModelUtils; import org.eclipse.papyrus.infra.core.resource.NotFoundException; import org.eclipse.papyrus.infra.core.services.ServiceException; +import org.eclipse.papyrus.infra.services.edit.internal.context.TypeContext; +import org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils; +import org.eclipse.papyrus.infra.services.edit.service.IElementEditService; +import org.eclipse.papyrus.infra.services.edit.utils.IRequestCacheEntries; import org.eclipse.papyrus.infra.types.core.registries.ElementTypeSetConfigurationRegistry; import org.eclipse.papyrus.infra.ui.editor.IMultiDiagramEditor; import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest; import org.eclipse.papyrus.junit.utils.PapyrusProjectUtils; import org.eclipse.papyrus.junit.utils.rules.HouseKeeper; -import org.eclipse.papyrus.uml.diagram.statemachine.providers.UMLElementTypes; import org.eclipse.papyrus.uml.tools.model.UmlModel; import org.eclipse.papyrus.uml.tools.model.UmlUtils; import org.eclipse.papyrusrt.junit.rules.ElementTypesRule; @@ -141,8 +158,29 @@ public abstract class AbstractPapyrusRTCoreTest extends AbstractPapyrusTest { protected static Transition transition; + protected static State composite1; + + protected static State composite2; + + protected static Pseudostate composite1_exit1; + protected static Pseudostate composite1_exit2; + protected static Pseudostate composite1_exit3; + protected static Pseudostate composite1_exit4; + + protected static Pseudostate composite2_entry1; + protected static Pseudostate composite2_entry2; + protected static Pseudostate composite2_entry3; + protected static Pseudostate composite2_entry4; + + protected static Transition t1; + protected static Transition t2; + protected static Transition t3; + protected static Transition t4; + + protected static Transition t5; + /** - * Init test class + * Init test class. */ @BeforeClass public static void initCreateElementTest() throws Exception { @@ -165,9 +203,6 @@ public abstract class AbstractPapyrusRTCoreTest extends AbstractPapyrusTest { public void run() { // force loading of the state machine plugin, but in UI thread, as the element types require some UI... ElementTypeSetConfigurationRegistry registry = ElementTypeSetConfigurationRegistry.getInstance(); - System.err.println(registry.getElementTypeSetConfigurations()); - System.err.println(UMLElementTypes.Region_Shape); - } }); @@ -295,5 +330,112 @@ public abstract class AbstractPapyrusRTCoreTest extends AbstractPapyrusTest { Assert.assertNotNull(emptyCompositeStateRegion); initialPseudoState = region.getSubvertices().stream().filter(Pseudostate.class::isInstance).map(Pseudostate.class::cast).filter(p -> p.getKind() == PseudostateKind.INITIAL_LITERAL).findFirst().get(); + + composite1 = compositeStateRegion.getOwnedMember("composite1") instanceof State ? (State) compositeStateRegion.getOwnedMember("composite1") : null; + Assert.assertNotNull(composite1); + + composite2 = compositeStateRegion.getOwnedMember("composite2") instanceof State ? (State) compositeStateRegion.getOwnedMember("composite2") : null; + Assert.assertNotNull(composite2); + + composite1_exit1 = composite1.getConnectionPoint("exit1"); + Assert.assertNotNull(composite1_exit1); + composite1_exit2 = composite1.getConnectionPoint("exit2"); + Assert.assertNotNull(composite1_exit2); + composite1_exit3 = composite1.getConnectionPoint("exit3"); + Assert.assertNotNull(composite1_exit3); + composite1_exit4 = composite1.getConnectionPoint("exit4"); + Assert.assertNotNull(composite1_exit4); + composite2_entry1 = composite2.getConnectionPoint("entry1"); + Assert.assertNotNull(composite2_entry1); + composite2_entry2 = composite2.getConnectionPoint("entry2"); + Assert.assertNotNull(composite2_entry2); + composite2_entry3 = composite2.getConnectionPoint("entry3"); + Assert.assertNotNull(composite2_entry3); + composite2_entry4 = composite2.getConnectionPoint("entry4"); + Assert.assertNotNull(composite2_entry4); + + t1 = composite1_exit1.getOutgoing("t1"); + assertNotNull(t1); + t2 = composite1_exit2.getOutgoing("t2"); + assertNotNull(t2); + t3 = composite1_exit3.getOutgoing("t3"); + assertNotNull(t3); + t4 = composite1_exit4.getOutgoing("t4"); + assertNotNull(t4); + + t5 = compositeStateRegion.getTransition("t5"); + assertNotNull(t5); } + + /** + * Deletes the element in the given owner element, undo and redo the action. + * + * @param elementToDestroy + * the element to delete + * @param canCreate + * <code>true</code> if new element can be created in the + * specified owner + */ + protected Command getDeleteChildCommand(EObject elementToDestroy, boolean confirmationRequired) throws Exception { + GetEditContextRequest editContextRequest = new GetEditContextRequest(transactionalEditingDomain, new DestroyElementRequest(transactionalEditingDomain, elementToDestroy, confirmationRequired), elementToDestroy); + + editContextRequest.setParameter(IRequestCacheEntries.Cache_Maps, new HashMap<>()); + editContextRequest.setEditContext(elementToDestroy); + try { + editContextRequest.setClientContext(TypeContext.getContext()); + } catch (ServiceException e) { + Assert.fail(e.getMessage()); + } + + IElementEditService provider = ElementEditServiceUtils.getCommandProvider(elementToDestroy); + if (provider == null) { + Assert.fail("Impossible to get the editing domain provider"); + } + + EObject target = elementToDestroy; + Object result = null; + final ICommand getEditContextCommand = provider.getEditCommand(editContextRequest); + if (getEditContextCommand != null) { + IStatus status = null; + try { + // this command could run in an unprotected transaction, it is not supposed to modify the model + InternalTransactionalEditingDomain domain = (InternalTransactionalEditingDomain) transactionalEditingDomain; + Map<String, Object> options = new HashMap<>(); + options.put(Transaction.OPTION_NO_NOTIFICATIONS, true); + options.put(Transaction.OPTION_NO_VALIDATION, true); + options.put(Transaction.OPTION_NO_TRIGGERS, true); + Transaction transaction = domain.startTransaction(false, options); + try { + status = getEditContextCommand.execute(null, null); + } finally { + transaction.commit(); + } + } catch (InterruptedException e) { + Assert.fail(e.getMessage()); + } catch (ExecutionException e) { + Assert.fail(e.getMessage()); + } catch (RollbackException e) { + Assert.fail(e.getMessage()); + } + if (!(status == null || !status.isOK())) { + result = getEditContextCommand.getCommandResult().getReturnValue(); + } + if (result instanceof EObject) { + target = (EObject) result; + } + } + + provider = ElementEditServiceUtils.getCommandProvider(target); + if (provider == null) { + return UnexecutableCommand.INSTANCE; + } + + ICommand deleteGMFCommand = provider.getEditCommand(new DestroyElementRequest(transactionalEditingDomain, target, confirmationRequired)); + assertNotNull("Command should not be null", deleteGMFCommand); + assertTrue("Command should be executable", deleteGMFCommand.canExecute()); + // command is executable, and it was expected to => run the creation + Command emfCommand = new org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper(deleteGMFCommand); + return emfCommand; + } + } diff --git a/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/src/org/eclipse/papyrusrt/umlrt/core/tests/deletion/DeleteElementTest.java b/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/src/org/eclipse/papyrusrt/umlrt/core/tests/deletion/DeleteElementTest.java index 3c50bd3c9..d4e69a2f3 100644 --- a/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/src/org/eclipse/papyrusrt/umlrt/core/tests/deletion/DeleteElementTest.java +++ b/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/src/org/eclipse/papyrusrt/umlrt/core/tests/deletion/DeleteElementTest.java @@ -16,28 +16,11 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.util.HashMap; -import java.util.Map; - -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.core.runtime.IStatus; import org.eclipse.emf.common.command.Command; -import org.eclipse.emf.common.command.UnexecutableCommand; import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.transaction.RollbackException; -import org.eclipse.emf.transaction.Transaction; -import org.eclipse.emf.transaction.impl.InternalTransactionalEditingDomain; -import org.eclipse.gmf.runtime.common.core.command.ICommand; import org.eclipse.gmf.runtime.emf.type.core.IHintedType; import org.eclipse.gmf.runtime.emf.type.core.commands.CreateElementCommand; import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest; -import org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest; -import org.eclipse.gmf.runtime.emf.type.core.requests.GetEditContextRequest; -import org.eclipse.papyrus.infra.core.services.ServiceException; -import org.eclipse.papyrus.infra.services.edit.internal.context.TypeContext; -import org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils; -import org.eclipse.papyrus.infra.services.edit.service.IElementEditService; -import org.eclipse.papyrus.infra.services.edit.utils.IRequestCacheEntries; import org.eclipse.papyrusrt.umlrt.core.tests.AbstractPapyrusRTCoreTest; import org.eclipse.papyrusrt.umlrt.core.tests.utils.IDeleteValidationRule; import org.eclipse.papyrusrt.umlrt.core.types.UMLRTElementTypesEnumerator; @@ -75,7 +58,7 @@ public class DeleteElementTest extends AbstractPapyrusRTCoreTest { Command commandDelete = getDeleteChildCommand(deletedElement, false); if (commandDelete != null && commandDelete.canExecute()) { transactionalEditingDomain.getCommandStack().execute(commandDelete); - + IDeleteValidationRule validationRule = validationClass.newInstance(); Object[] commandResults = commandDelete.getResult().toArray(); // the element should not be in the model @@ -125,75 +108,4 @@ public class DeleteElementTest extends AbstractPapyrusRTCoreTest { return command; } - /** - * Deletes the element in the given owner element, undo and redo the action - * - * @param elementToDestroy - * the element to delete - * @param canCreate - * <code>true</code> if new element can be created in the - * specified owner - */ - protected Command getDeleteChildCommand(EObject elementToDestroy, boolean confirmationRequired) throws Exception { - GetEditContextRequest editContextRequest = new GetEditContextRequest(transactionalEditingDomain, new DestroyElementRequest(transactionalEditingDomain, elementToDestroy, confirmationRequired), elementToDestroy); - - editContextRequest.setParameter(IRequestCacheEntries.Cache_Maps, new HashMap<Object, Object>()); - editContextRequest.setEditContext(elementToDestroy); - try { - editContextRequest.setClientContext(TypeContext.getContext()); - } catch (ServiceException e) { - Assert.fail(e.getMessage()); - } - - IElementEditService provider = ElementEditServiceUtils.getCommandProvider(elementToDestroy); - if (provider == null) { - Assert.fail("Impossible to get the editing domain provider"); - } - - EObject target = elementToDestroy; - Object result = null; - final ICommand getEditContextCommand = provider.getEditCommand(editContextRequest); - if (getEditContextCommand != null) { - IStatus status = null; - try { - // this command could run in an unprotected transaction, it is not supposed to modify the model - InternalTransactionalEditingDomain domain = (InternalTransactionalEditingDomain) transactionalEditingDomain; - Map<String, Object> options = new HashMap<String, Object>(); - options.put(Transaction.OPTION_NO_NOTIFICATIONS, true); - options.put(Transaction.OPTION_NO_VALIDATION, true); - options.put(Transaction.OPTION_NO_TRIGGERS, true); - Transaction transaction = domain.startTransaction(false, options); - try { - status = getEditContextCommand.execute(null, null); - } finally { - transaction.commit(); - } - } catch (InterruptedException e) { - Assert.fail(e.getMessage()); - } catch (ExecutionException e) { - Assert.fail(e.getMessage()); - } catch (RollbackException e) { - Assert.fail(e.getMessage()); - } - if (!(status == null || !status.isOK())) { - result = getEditContextCommand.getCommandResult().getReturnValue(); - } - if (result instanceof EObject) { - target = (EObject) result; - } - } - - provider = ElementEditServiceUtils.getCommandProvider(target); - if (provider == null) { - return UnexecutableCommand.INSTANCE; - } - - ICommand deleteGMFCommand = provider.getEditCommand(new DestroyElementRequest(transactionalEditingDomain, target, confirmationRequired)); - assertNotNull("Command should not be null", deleteGMFCommand); - assertTrue("Command should be executable", deleteGMFCommand.canExecute()); - // command is executable, and it was expected to => run the creation - Command emfCommand = new org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper(deleteGMFCommand); - return emfCommand; - } - } diff --git a/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/src/org/eclipse/papyrusrt/umlrt/core/tests/deletion/DeleteTransitionsTest.java b/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/src/org/eclipse/papyrusrt/umlrt/core/tests/deletion/DeleteTransitionsTest.java new file mode 100644 index 000000000..ef93bd2fb --- /dev/null +++ b/tests/junit/umlrt/core/org.eclipse.papyrusrt.umlrt.core.tests/src/org/eclipse/papyrusrt/umlrt/core/tests/deletion/DeleteTransitionsTest.java @@ -0,0 +1,237 @@ +/***************************************************************************** + * 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.core.tests.deletion; + +import static org.eclipse.papyrus.junit.matchers.MoreMatchers.isEmpty; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.nullValue; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.fail; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.emf.common.command.Command; +import org.eclipse.papyrusrt.umlrt.core.tests.AbstractPapyrusRTCoreTest; +import org.eclipse.uml2.uml.Element; +import org.eclipse.uml2.uml.Pseudostate; +import org.eclipse.uml2.uml.PseudostateKind; +import org.eclipse.uml2.uml.Region; +import org.eclipse.uml2.uml.State; +import org.eclipse.uml2.uml.Transition; +import org.eclipse.uml2.uml.Vertex; +import org.junit.Test; + +/** + * Test class for deletion of transitions. It mainly checks the deletion of entry/exit ends if the they become useless. + */ +public class DeleteTransitionsTest extends AbstractPapyrusRTCoreTest { + + /** + * Constructor. + */ + public DeleteTransitionsTest() { + super(); + } + + @Test + public void deleteTransitionWithPseudostates_bothEmpty() throws Exception { + deleteTransition(t1); + } + + @Test + public void deleteTransitionWithPseudostates_targetEmpty() throws Exception { + deleteTransition(t2); + } + + + @Test + public void deleteTransitionWithPseudostates_sourceEmpty() throws Exception { + deleteTransition(t3); + } + + + @Test + public void deleteTransitionWithPseudostates_noneEmpty() throws Exception { + deleteTransition(t4); + } + + + @Test + public void deleteTransitionWithStates() throws Exception { + deleteTransition(t5); + } + + /** + * @param t1 + * @throws Exception + */ + protected void deleteTransition(Transition deletedElement) throws Exception { + Command commandDelete = getDeleteChildCommand(deletedElement, false); + if (commandDelete != null && commandDelete.canExecute()) { + DeleteTransitionValidationRules validationRule = new DeleteTransitionValidationRules(deletedElement); + transactionalEditingDomain.getCommandStack().execute(commandDelete); + + // the element should not be in the model + validationRule.validatePostEdition(); + + // undo the delete command + transactionalEditingDomain.getCommandStack().undo(); + // the element should be in the model + validationRule.validatePostUndo(); + + // redo the delete command + transactionalEditingDomain.getCommandStack().redo(); + // the element should not be in the model + validationRule.validatePostEdition(); + + // undo the delete command + transactionalEditingDomain.getCommandStack().undo(); + // the element should be in the model + validationRule.validatePostUndo(); + + } else { + fail("Delete Command should be executable"); + } + } + + /** + * + */ + private static boolean shouldDelete(Element end, Transition transition) { + if (!(end instanceof Pseudostate)) { + return false; + } + + PseudostateKind kind = ((Pseudostate) end).getKind(); + if (!(kind.equals(PseudostateKind.ENTRY_POINT_LITERAL) || kind.equals(PseudostateKind.EXIT_POINT_LITERAL))) { + return false; + } + // check there are no other transition outgoing or incoming except transition to delete + if (((Pseudostate) end).getOutgoings().stream().filter(t -> !t.equals(transition)).findAny().isPresent()) { + return false; + } + if (((Pseudostate) end).getIncomings().stream().filter(t -> !t.equals(transition)).findAny().isPresent()) { + return false; + } + return true; + } + + // + // inner types + // + + protected static class DeleteTransitionValidationRules { + + private Transition transition; + private Vertex source; + private boolean shouldDeleteSource; + private Vertex target; + private boolean shouldDeleteTarget; + private ArrayList<Transition> sourceOutgoings; + private ArrayList<Transition> sourceIncomings; + private ArrayList<Transition> targetOutgoings; + private ArrayList<Transition> targetIncomings; + private Region region; + private Element originalSourceOwner; + private Element originalTargetOwner; + + /** + * Constructor. + * + * @param deletedElement + * @throws Exception + */ + public DeleteTransitionValidationRules(Transition deletedElement) throws Exception { + this.transition = deletedElement; + this.region = transition.getContainer(); + this.source = transition.getSource(); + this.originalSourceOwner = getOwner(source); + this.sourceOutgoings = new ArrayList<>(source.getOutgoings()); + this.sourceIncomings = new ArrayList<>(source.getIncomings()); + this.shouldDeleteSource = shouldDelete(source, deletedElement); + + this.target = transition.getTarget(); + this.originalTargetOwner = getOwner(target); + this.targetOutgoings = new ArrayList<>(target.getOutgoings()); + this.targetIncomings = new ArrayList<>(target.getIncomings()); + this.shouldDeleteTarget = shouldDelete(target, deletedElement); + + } + + public void validatePostEdition() throws Exception { + assertThat(transition.getContainer(), nullValue()); + assertThat(transition.getSource(), nullValue()); + assertThat(transition.getTarget(), nullValue()); + + if (shouldDeleteSource) { + assertThat(source.getOwner(), nullValue()); + assertThat(source.getIncomings(), isEmpty()); + assertThat(source.getOutgoings(), isEmpty()); + } else { + // ensure the target is unchanged, expect for the deleted transition + List<Transition> expectedOutgoings = new ArrayList<>(sourceOutgoings); + expectedOutgoings.remove(transition); + assertThat(source.getOutgoings(), equalTo(expectedOutgoings)); + List<Transition> expectedIncomings = new ArrayList<>(sourceIncomings); + expectedIncomings.remove(transition); + assertThat(source.getIncomings(), equalTo(expectedIncomings)); + } + + if (shouldDeleteTarget) { + assertThat(target.getOwner(), nullValue()); + assertThat(target.getIncomings(), isEmpty()); + assertThat(target.getOutgoings(), isEmpty()); + } else { + // ensure the target is unchanged, expect for the deleted transition + List<Transition> expectedOutgoings = new ArrayList<>(targetOutgoings); + expectedOutgoings.remove(transition); + assertThat(target.getOutgoings(), equalTo(expectedOutgoings)); + List<Transition> expectedIncomings = new ArrayList<>(targetIncomings); + expectedIncomings.remove(transition); + assertThat(target.getIncomings(), equalTo(expectedIncomings)); + } + } + + public void validatePostUndo() throws Exception { + assertThat(transition.getContainer(), equalTo(region)); + assertThat(transition.getSource(), equalTo(source)); + assertThat(transition.getTarget(), equalTo(target)); + + // check initial values + assertThat(source.getOwner(), equalTo(originalSourceOwner)); + assertThat(source.getIncomings(), equalTo(sourceIncomings)); + assertThat(source.getOutgoings(), equalTo(sourceOutgoings)); + + assertThat(target.getOwner(), equalTo(originalTargetOwner)); + assertThat(target.getIncomings(), equalTo(targetIncomings)); + assertThat(target.getOutgoings(), equalTo(targetOutgoings)); + } + } + + /** + * @param source + * @return + * @throws Exception + */ + protected static Element getOwner(Vertex source) throws Exception { + if (source instanceof State) { + return ((State) source).getContainer(); + } + if (source instanceof Pseudostate) { + return ((Pseudostate) source).getState() != null ? ((Pseudostate) source).getState() : ((Pseudostate) source).getContainer(); + } + throw new Exception("unexpected"); + } +} |