Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests')
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/META-INF/MANIFEST.MF3
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinks.di2
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinks.notation607
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinks.uml112
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinksCreation.di2
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinksCreation.notation116
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinksCreation.uml32
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug537571-times.di2
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug537571-times.notation497
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug537571-times.uml98
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/AbstractOccurrenceLinkCreationTest.java311
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/AbstractOccurrenceLinkTest.java320
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/BugTests.java10
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/BugTests2.java21
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/DurationConstraintCreationTest.java43
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/DurationObservationCreationTest.java43
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/GeneralOrderingCreationTest.java43
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDurationConstraintDisplay.java82
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDurationConstraints_384596.java228
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDurationObservationDisplay.java83
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestGeneralOrderingDisplay.java76
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TimeElementCreationTest.java451
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TimeElementMoveTest.java195
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/canonical/TestSequenceDiagramChildNode.java59
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/canonical/TestSequenceDiagramInsideInteraction.java19
25 files changed, 3176 insertions, 279 deletions
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/META-INF/MANIFEST.MF
index 0878ba1c853..d0684d24bac 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/META-INF/MANIFEST.MF
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/META-INF/MANIFEST.MF
@@ -22,7 +22,8 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.papyrus.infra.gmfdiag.preferences,
org.eclipse.ui.workbench,
org.eclipse.papyrus.uml.services.decoration;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.papyrus.uml.oclconstraintevaluation;bundle-version="[1.2.0,2.0.0)"
+ org.eclipse.papyrus.uml.oclconstraintevaluation;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.papyrus.infra.types.core;bundle-version="[4.0.0,5.0.0)"
Export-Package: org.eclipse.papyrus.uml.diagram.sequence.tests
Bundle-Vendor: %Bundle-Vendor
Bundle-ActivationPolicy: lazy
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinks.di b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinks.di
new file mode 100644
index 00000000000..8c549eecdc6
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinks.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.infra.services.edit.TypeContext"/>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinks.notation b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinks.notation
new file mode 100644
index 00000000000..05d3f46800f
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinks.notation
@@ -0,0 +1,607 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <css:StyleSheetReference xmi:id="_9bFrwJobEei5foLskM0Fzg" path="/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/style.css"/>
+ <notation:Diagram xmi:id="_DHfN4JocEei5foLskM0Fzg" type="PapyrusUMLSequenceDiagram" name="durationConstraintsLinksTest" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_DHfN4ZocEei5foLskM0Fzg" type="Interaction_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DHfN4pocEei5foLskM0Fzg" type="Interaction_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DHfN45ocEei5foLskM0Fzg" type="Interaction_SubfragmentCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_DHfN5JocEei5foLskM0Fzg" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DHfN5ZocEei5foLskM0Fzg" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_sfO8sJodEei5foLskM0Fzg" type="ActionExecutionSpecification_Shape">
+ <element xmi:type="uml:ActionExecutionSpecification" href="bug536631-durationLinks.uml#_se9P4JodEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sfO8sZodEei5foLskM0Fzg" x="40" y="66" width="20" height="301"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug536631-durationLinks.uml#_WTEHYJobEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DHfN6JocEei5foLskM0Fzg" x="74" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DHfN6ZocEei5foLskM0Fzg" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DHfN6pocEei5foLskM0Fzg" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_tJrA0JodEei5foLskM0Fzg" type="BehaviorExecutionSpecification_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tJrn4JodEei5foLskM0Fzg" type="BehaviorExecutionSpecification_Behavior">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tJrn4ZodEei5foLskM0Fzg" x="18" y="18"/>
+ </children>
+ <element xmi:type="uml:BehaviorExecutionSpecification" href="bug536631-durationLinks.uml#_tJdlcJodEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tJrA0ZodEei5foLskM0Fzg" x="40" y="126" width="20" height="141"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7O85cJodEei5foLskM0Fzg" type="ActionExecutionSpecification_Shape">
+ <element xmi:type="uml:ActionExecutionSpecification" href="bug536631-durationLinks.uml#_7OtB0JodEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7O85cZodEei5foLskM0Fzg" x="50" y="146" width="20" height="100"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug536631-durationLinks.uml#_WfmHgJobEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DHfN7ZocEei5foLskM0Fzg" x="354" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DHfN7pocEei5foLskM0Fzg" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DHfN75ocEei5foLskM0Fzg" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_vmLfgJodEei5foLskM0Fzg" type="DestructionOccurrenceSpecification_Shape">
+ <element xmi:type="uml:DestructionOccurrenceSpecification" href="bug536631-durationLinks.uml#_vlp7EZodEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vmLfgZodEei5foLskM0Fzg" x="40" y="426"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug536631-durationLinks.uml#_WmtcIJobEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DHfN8pocEei5foLskM0Fzg" x="634" y="10" height="466"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DHfN85ocEei5foLskM0Fzg"/>
+ </children>
+ <element xmi:type="uml:Interaction" href="bug536631-durationLinks.uml#_VJw9AJobEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DHfN9JocEei5foLskM0Fzg"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_DHfN9ZocEei5foLskM0Fzg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_DHfN9pocEei5foLskM0Fzg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_DHfN95ocEei5foLskM0Fzg" diagramKindId="org.eclipse.papyrus.uml.diagram.sequence">
+ <owner xmi:type="uml:Model" href="bug536631-durationLinks.uml#_VI4MMJobEei5foLskM0Fzg"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_DHfN-JocEei5foLskM0Fzg" name="css_stylesheets" eObjectListValue="_9bFrwJobEei5foLskM0Fzg"/>
+ <element xmi:type="uml:Interaction" href="bug536631-durationLinks.uml#_VJw9AJobEei5foLskM0Fzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_t7v-AJodEei5foLskM0Fzg" type="Message_AsynchEdge" source="_DHfN5JocEei5foLskM0Fzg" target="_DHfN6ZocEei5foLskM0Fzg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_t7v-A5odEei5foLskM0Fzg" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t7wlEJodEei5foLskM0Fzg" x="-43" y="7"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t7wlEZodEei5foLskM0Fzg" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t7wlEpodEei5foLskM0Fzg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_t7v-AZodEei5foLskM0Fzg"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinks.uml#_t7k-4JodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t7v-ApodEei5foLskM0Fzg" points="[-10, -2, -290, -20]$[270, 18, -10, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t769IJodEei5foLskM0Fzg" id="(0.5,0.20857142857142857)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t769IZodEei5foLskM0Fzg" id="(0.5,0.20857142857142857)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_uLhfYJodEei5foLskM0Fzg" type="Message_AsynchEdge" source="_DHfN6ZocEei5foLskM0Fzg" target="_DHfN5JocEei5foLskM0Fzg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uLhfY5odEei5foLskM0Fzg" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uLhfZJodEei5foLskM0Fzg" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uLhfZZodEei5foLskM0Fzg" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uLhfZpodEei5foLskM0Fzg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uLhfYZodEei5foLskM0Fzg"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinks.uml#_uLZjkJodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uLhfYpodEei5foLskM0Fzg" points="[-10, -1, 270, -40]$[-290, 39, -10, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uLo0IJodEei5foLskM0Fzg" id="(0.5,0.29428571428571426)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uLpbMJodEei5foLskM0Fzg" id="(0.5,0.29428571428571426)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ucIuQJodEei5foLskM0Fzg" type="Message_AsynchEdge" source="_DHfN5JocEei5foLskM0Fzg" target="_DHfN6ZocEei5foLskM0Fzg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ucIuQ5odEei5foLskM0Fzg" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ucIuRJodEei5foLskM0Fzg" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ucIuRZodEei5foLskM0Fzg" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ucIuRpodEei5foLskM0Fzg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ucIuQZodEei5foLskM0Fzg"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinks.uml#_ucBZgJodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ucIuQpodEei5foLskM0Fzg" points="[-10, 9, -290, -100]$[280, 109, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ucWJoJodEei5foLskM0Fzg" id="(0.5,0.43714285714285717)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ucWJoZodEei5foLskM0Fzg" id="(0.5,0.43714285714285717)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_u7cgcJodEei5foLskM0Fzg" type="Message_AsynchEdge" source="_DHfN5JocEei5foLskM0Fzg" target="_DHfN6ZocEei5foLskM0Fzg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_u7cgc5odEei5foLskM0Fzg" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_u7cgdJodEei5foLskM0Fzg" x="-3" y="7"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_u7cgdZodEei5foLskM0Fzg" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_u7cgdpodEei5foLskM0Fzg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_u7cgcZodEei5foLskM0Fzg"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinks.uml#_u7PFEJodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_u7cgcpodEei5foLskM0Fzg" points="[0, 0, -280, 0]$[280, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_u7otsJodEei5foLskM0Fzg" id="(0.5,0.78)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_u7otsZodEei5foLskM0Fzg" id="(0.5,0.78)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_vl3WcJodEei5foLskM0Fzg" type="Message_DeleteEdge" source="_DHfN6ZocEei5foLskM0Fzg" target="_DHfN7pocEei5foLskM0Fzg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vl39gJodEei5foLskM0Fzg" type="Message_DeleteNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vl39gZodEei5foLskM0Fzg" x="-35" y="30"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vl39gpodEei5foLskM0Fzg" type="Message_DeleteStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vl39g5odEei5foLskM0Fzg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vl3WcZodEei5foLskM0Fzg"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinks.uml#_vlos8JodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vl3WcpodEei5foLskM0Fzg" points="[0, 0, -280, -100]$[280, 100, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vmFY4JodEei5foLskM0Fzg" id="(0.5,0.5228571428571429)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vmFY4ZodEei5foLskM0Fzg" id="(0.5,0.9141630901287554)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9uBj8JodEei5foLskM0Fzg" type="DurationConstraint_Edge" source="_sfO8sJodEei5foLskM0Fzg" target="_tJrA0JodEei5foLskM0Fzg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9uBj85odEei5foLskM0Fzg" type="DurationConstraint_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9uBj9JodEei5foLskM0Fzg" x="19" y="-6"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9uBj9ZodEei5foLskM0Fzg" type="DurationConstraint_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9uBj9podEei5foLskM0Fzg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9uBj8ZodEei5foLskM0Fzg"/>
+ <element xmi:type="uml:DurationConstraint" href="bug536631-durationLinks.uml#_9t4aAJodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9uBj8podEei5foLskM0Fzg" points="[0, -150, -280, -130]$[280, -90, 0, -70]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9uNKIJodEei5foLskM0Fzg" id="start"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9uNKIZodEei5foLskM0Fzg" id="start"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__GWBwJodEei5foLskM0Fzg" type="DurationConstraint_Edge" source="_t7v-AJodEei5foLskM0Fzg" target="_t7v-AJodEei5foLskM0Fzg">
+ <children xmi:type="notation:DecorationNode" xmi:id="__GWBw5odEei5foLskM0Fzg" type="DurationConstraint_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__GWBxJodEei5foLskM0Fzg" x="-40" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__GWBxZodEei5foLskM0Fzg" type="DurationConstraint_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__GWBxpodEei5foLskM0Fzg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__GWBwZodEei5foLskM0Fzg"/>
+ <element xmi:type="uml:DurationConstraint" href="bug536631-durationLinks.uml#__GADgJodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__GWBwpodEei5foLskM0Fzg" points="[-130, 7, -130, 7]$[130, 7, 130, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__GoVoJodEei5foLskM0Fzg" id="start"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__GoVoZodEei5foLskM0Fzg" id="end"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__-l4YJodEei5foLskM0Fzg" type="DurationConstraint_Edge" source="_7O85cJodEei5foLskM0Fzg" target="_uLhfYJodEei5foLskM0Fzg">
+ <children xmi:type="notation:DecorationNode" xmi:id="__-l4Y5odEei5foLskM0Fzg" type="DurationConstraint_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__-l4ZJodEei5foLskM0Fzg" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__-l4ZZodEei5foLskM0Fzg" type="DurationConstraint_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__-l4ZpodEei5foLskM0Fzg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__-l4YZodEei5foLskM0Fzg"/>
+ <element xmi:type="uml:DurationConstraint" href="bug536631-durationLinks.uml#__-bgUJodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__-l4YpodEei5foLskM0Fzg" points="[0, -50, 150, -67]$[-280, 10, -130, -7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__-yssJodEei5foLskM0Fzg" id="start"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__-yssZodEei5foLskM0Fzg" id="end"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_A2FhEJoeEei5foLskM0Fzg" type="DurationConstraint_Edge" source="_7O85cJodEei5foLskM0Fzg" target="_tJrA0JodEei5foLskM0Fzg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_A2GIIJoeEei5foLskM0Fzg" type="DurationConstraint_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A2GIIZoeEei5foLskM0Fzg" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_A2GIIpoeEei5foLskM0Fzg" type="DurationConstraint_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A2GII5oeEei5foLskM0Fzg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_A2FhEZoeEei5foLskM0Fzg"/>
+ <element xmi:type="uml:DurationConstraint" href="bug536631-durationLinks.uml#_A19lQJoeEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_A2FhEpoeEei5foLskM0Fzg" points="[0, 50, 10, 50]$[-10, 71, 0, 71]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A2SVYJoeEei5foLskM0Fzg" id="end"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A2SVYZoeEei5foLskM0Fzg" id="end"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CASqYJoeEei5foLskM0Fzg" type="DurationConstraint_Edge" source="_ucIuQJodEei5foLskM0Fzg" target="_vl3WcJodEei5foLskM0Fzg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CASqY5oeEei5foLskM0Fzg" type="DurationConstraint_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CASqZJoeEei5foLskM0Fzg" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CASqZZoeEei5foLskM0Fzg" type="DurationConstraint_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CASqZpoeEei5foLskM0Fzg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CASqYZoeEei5foLskM0Fzg"/>
+ <element xmi:type="uml:DurationConstraint" href="bug536631-durationLinks.uml#_CAI5YJoeEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CASqYpoeEei5foLskM0Fzg" points="[135, 7, -140, -110]$[135, 67, -140, -50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CAiiAJoeEei5foLskM0Fzg" id="end"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CAiiAZoeEei5foLskM0Fzg" id="start"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DUQzsJoeEei5foLskM0Fzg" type="DurationConstraint_Edge" source="_vl3WcJodEei5foLskM0Fzg" target="_vmLfgJodEei5foLskM0Fzg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DUQzs5oeEei5foLskM0Fzg" type="DurationConstraint_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DUQztJoeEei5foLskM0Fzg" x="11" y="-27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DUQztZoeEei5foLskM0Fzg" type="DurationConstraint_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DUQztpoeEei5foLskM0Fzg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_DUQzsZoeEei5foLskM0Fzg"/>
+ <element xmi:type="uml:DurationConstraint" href="bug536631-durationLinks.uml#_DT-f0JoeEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DUQzspoeEei5foLskM0Fzg" points="[-140, -50, -280, -100]$[140, 50, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DUgEQJoeEei5foLskM0Fzg" id="start"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DUgEQZoeEei5foLskM0Fzg" id="center"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_E9jswJoeEei5foLskM0Fzg" type="DurationConstraint_Edge" source="_sfO8sJodEei5foLskM0Fzg" target="_u7cgcJodEei5foLskM0Fzg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_E9jsw5oeEei5foLskM0Fzg" type="DurationConstraint_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E9jsxJoeEei5foLskM0Fzg" x="15" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_E9jsxZoeEei5foLskM0Fzg" type="DurationConstraint_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_E9jsxpoeEei5foLskM0Fzg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_E9jswZoeEei5foLskM0Fzg"/>
+ <element xmi:type="uml:DurationConstraint" href="bug536631-durationLinks.uml#_E9YGkJoeEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_E9jswpoeEei5foLskM0Fzg" points="[0, 151, -140, -172]$[280, 330, 140, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_E9yWQJoeEei5foLskM0Fzg" id="end"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_E9yWQZoeEei5foLskM0Fzg" id="end"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_JrvkQJpMEei-GLAJvy8iyw" type="PapyrusUMLSequenceDiagram" name="durationObservationsLinksTest" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_JrvkQZpMEei-GLAJvy8iyw" type="Interaction_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_JrvkQppMEei-GLAJvy8iyw" type="Interaction_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JrvkQ5pMEei-GLAJvy8iyw" type="Interaction_SubfragmentCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_JrvkRJpMEei-GLAJvy8iyw" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_JrvkRZpMEei-GLAJvy8iyw" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_JrvkRppMEei-GLAJvy8iyw" type="ActionExecutionSpecification_Shape">
+ <element xmi:type="uml:ActionExecutionSpecification" href="bug536631-durationLinks.uml#_se9P4JodEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JrvkR5pMEei-GLAJvy8iyw" x="40" y="66" width="20" height="301"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug536631-durationLinks.uml#_WTEHYJobEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JrvkSJpMEei-GLAJvy8iyw" x="74" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JrvkSZpMEei-GLAJvy8iyw" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_JrvkSppMEei-GLAJvy8iyw" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_JrvkS5pMEei-GLAJvy8iyw" type="BehaviorExecutionSpecification_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_JrvkTJpMEei-GLAJvy8iyw" type="BehaviorExecutionSpecification_Behavior">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JrvkTZpMEei-GLAJvy8iyw" x="18" y="18"/>
+ </children>
+ <element xmi:type="uml:BehaviorExecutionSpecification" href="bug536631-durationLinks.uml#_tJdlcJodEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JrvkTppMEei-GLAJvy8iyw" x="40" y="126" width="20" height="141"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JrvkT5pMEei-GLAJvy8iyw" type="ActionExecutionSpecification_Shape">
+ <element xmi:type="uml:ActionExecutionSpecification" href="bug536631-durationLinks.uml#_7OtB0JodEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JrvkUJpMEei-GLAJvy8iyw" x="50" y="146" width="20" height="100"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug536631-durationLinks.uml#_WfmHgJobEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JrvkUZpMEei-GLAJvy8iyw" x="354" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JrvkUppMEei-GLAJvy8iyw" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_JrvkU5pMEei-GLAJvy8iyw" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_JrvkVJpMEei-GLAJvy8iyw" type="DestructionOccurrenceSpecification_Shape">
+ <element xmi:type="uml:DestructionOccurrenceSpecification" href="bug536631-durationLinks.uml#_vlp7EZodEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JrvkVZpMEei-GLAJvy8iyw" x="40" y="426"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug536631-durationLinks.uml#_WmtcIJobEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JrvkVppMEei-GLAJvy8iyw" x="634" y="10" height="466"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JrvkV5pMEei-GLAJvy8iyw"/>
+ </children>
+ <element xmi:type="uml:Interaction" href="bug536631-durationLinks.uml#_VJw9AJobEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JrvkWJpMEei-GLAJvy8iyw"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_JrvkWZpMEei-GLAJvy8iyw" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_JrvkWppMEei-GLAJvy8iyw"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_JrvkW5pMEei-GLAJvy8iyw" diagramKindId="org.eclipse.papyrus.uml.diagram.sequence">
+ <owner xmi:type="uml:Model" href="bug536631-durationLinks.uml#_VI4MMJobEei5foLskM0Fzg"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_JrvkXJpMEei-GLAJvy8iyw" name="css_stylesheets" eObjectListValue="_9bFrwJobEei5foLskM0Fzg"/>
+ <element xmi:type="uml:Interaction" href="bug536631-durationLinks.uml#_VJw9AJobEei5foLskM0Fzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_JrvklppMEei-GLAJvy8iyw" type="Message_AsynchEdge" source="_JrvkRJpMEei-GLAJvy8iyw" target="_JrvkSZpMEei-GLAJvy8iyw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Jrvkl5pMEei-GLAJvy8iyw" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JrvkmJpMEei-GLAJvy8iyw" x="-43" y="7"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JrvkmZpMEei-GLAJvy8iyw" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JrvkmppMEei-GLAJvy8iyw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Jrvkm5pMEei-GLAJvy8iyw"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinks.uml#_t7k-4JodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JrvknJpMEei-GLAJvy8iyw" points="[-10, -2, -290, -20]$[270, 18, -10, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JrvknZpMEei-GLAJvy8iyw" id="(0.5,0.20857142857142857)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JrvknppMEei-GLAJvy8iyw" id="(0.5,0.20857142857142857)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Jrvkn5pMEei-GLAJvy8iyw" type="Message_AsynchEdge" source="_JrvkSZpMEei-GLAJvy8iyw" target="_JrvkRJpMEei-GLAJvy8iyw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_JrvkoJpMEei-GLAJvy8iyw" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JrvkoZpMEei-GLAJvy8iyw" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JrvkoppMEei-GLAJvy8iyw" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Jrvko5pMEei-GLAJvy8iyw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_JrvkpJpMEei-GLAJvy8iyw"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinks.uml#_uLZjkJodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JrvkpZpMEei-GLAJvy8iyw" points="[-10, -1, 270, -40]$[-290, 39, -10, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JrvkpppMEei-GLAJvy8iyw" id="(0.5,0.29428571428571426)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Jrvkp5pMEei-GLAJvy8iyw" id="(0.5,0.29428571428571426)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_JrvkqJpMEei-GLAJvy8iyw" type="Message_AsynchEdge" source="_JrvkRJpMEei-GLAJvy8iyw" target="_JrvkSZpMEei-GLAJvy8iyw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_JrvkqZpMEei-GLAJvy8iyw" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JrvkqppMEei-GLAJvy8iyw" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Jrvkq5pMEei-GLAJvy8iyw" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JrvkrJpMEei-GLAJvy8iyw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_JrvkrZpMEei-GLAJvy8iyw"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinks.uml#_ucBZgJodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JrvkrppMEei-GLAJvy8iyw" points="[-10, 9, -290, -100]$[280, 109, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Jrvkr5pMEei-GLAJvy8iyw" id="(0.5,0.43714285714285717)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JrvksJpMEei-GLAJvy8iyw" id="(0.5,0.43714285714285717)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_JrvksZpMEei-GLAJvy8iyw" type="Message_AsynchEdge" source="_JrvkRJpMEei-GLAJvy8iyw" target="_JrvkSZpMEei-GLAJvy8iyw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_JrvksppMEei-GLAJvy8iyw" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Jrvks5pMEei-GLAJvy8iyw" x="-3" y="7"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JrvktJpMEei-GLAJvy8iyw" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JrvktZpMEei-GLAJvy8iyw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_JrvktppMEei-GLAJvy8iyw"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinks.uml#_u7PFEJodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Jrvkt5pMEei-GLAJvy8iyw" points="[0, 0, -280, 0]$[280, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JrvkuJpMEei-GLAJvy8iyw" id="(0.5,0.78)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JrvkuZpMEei-GLAJvy8iyw" id="(0.5,0.78)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_JrvkuppMEei-GLAJvy8iyw" type="Message_DeleteEdge" source="_JrvkSZpMEei-GLAJvy8iyw" target="_JrvkUppMEei-GLAJvy8iyw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Jrvku5pMEei-GLAJvy8iyw" type="Message_DeleteNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JrvkvJpMEei-GLAJvy8iyw" x="-35" y="30"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JrvkvZpMEei-GLAJvy8iyw" type="Message_DeleteStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JrvkvppMEei-GLAJvy8iyw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Jrvkv5pMEei-GLAJvy8iyw"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinks.uml#_vlos8JodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JrvkwJpMEei-GLAJvy8iyw" points="[0, 0, -280, -100]$[280, 100, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JrvkwZpMEei-GLAJvy8iyw" id="(0.5,0.5228571428571429)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JrvkwppMEei-GLAJvy8iyw" id="(0.5,0.9141630901287554)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kB28YJpMEei-GLAJvy8iyw" type="DurationObservation_Edge" source="_JrvkRppMEei-GLAJvy8iyw" target="_JrvkS5pMEei-GLAJvy8iyw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kB28Y5pMEei-GLAJvy8iyw" type="DurationObservation_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kB28ZJpMEei-GLAJvy8iyw" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kB3jcJpMEei-GLAJvy8iyw" type="DurationObservation_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kB3jcZpMEei-GLAJvy8iyw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kB28YZpMEei-GLAJvy8iyw"/>
+ <element xmi:type="uml:DurationObservation" href="bug536631-durationLinks.uml#_kB1uQJpMEei-GLAJvy8iyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kB28YppMEei-GLAJvy8iyw" points="[0, -150, -280, -130]$[280, -90, 0, -70]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kCGM8JpMEei-GLAJvy8iyw" id="start"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kCGM8ZpMEei-GLAJvy8iyw" id="start"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_lRWOUJpMEei-GLAJvy8iyw" type="DurationObservation_Edge" source="_JrvklppMEei-GLAJvy8iyw" target="_JrvklppMEei-GLAJvy8iyw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lRWOU5pMEei-GLAJvy8iyw" type="DurationObservation_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lRWOVJpMEei-GLAJvy8iyw" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lRWOVZpMEei-GLAJvy8iyw" type="DurationObservation_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lRWOVppMEei-GLAJvy8iyw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_lRWOUZpMEei-GLAJvy8iyw"/>
+ <element xmi:type="uml:DurationObservation" href="bug536631-durationLinks.uml#_lRUZIJpMEei-GLAJvy8iyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lRWOUppMEei-GLAJvy8iyw" points="[-130, -4, -130, -4]$[130, -4, 130, -4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lRvP4JpMEei-GLAJvy8iyw" id="start"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lRv28JpMEei-GLAJvy8iyw" id="end"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_l3u44JpMEei-GLAJvy8iyw" type="DurationObservation_Edge" source="_JrvkT5pMEei-GLAJvy8iyw" target="_Jrvkn5pMEei-GLAJvy8iyw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_l3vf8JpMEei-GLAJvy8iyw" type="DurationObservation_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l3vf8ZpMEei-GLAJvy8iyw" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_l3vf8ppMEei-GLAJvy8iyw" type="DurationObservation_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l3vf85pMEei-GLAJvy8iyw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_l3u44ZpMEei-GLAJvy8iyw"/>
+ <element xmi:type="uml:DurationObservation" href="bug536631-durationLinks.uml#_l3tDsJpMEei-GLAJvy8iyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_l3u44ppMEei-GLAJvy8iyw" points="[0, -50, 150, -67]$[-280, 10, -130, -7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l4HTYJpMEei-GLAJvy8iyw" id="start"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l4HTYZpMEei-GLAJvy8iyw" id="end"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_m7W5EJpMEei-GLAJvy8iyw" type="DurationObservation_Edge" source="_JrvkT5pMEei-GLAJvy8iyw" target="_JrvkS5pMEei-GLAJvy8iyw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_m7W5E5pMEei-GLAJvy8iyw" type="DurationObservation_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m7W5FJpMEei-GLAJvy8iyw" x="-51" y="-101"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_m7W5FZpMEei-GLAJvy8iyw" type="DurationObservation_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m7W5FppMEei-GLAJvy8iyw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_m7W5EZpMEei-GLAJvy8iyw"/>
+ <element xmi:type="uml:DurationObservation" href="bug536631-durationLinks.uml#_m7Vq8JpMEei-GLAJvy8iyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_m7W5EppMEei-GLAJvy8iyw" points="[0, 50, 10, 50]$[-10, 71, 0, 71]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m7teYJpMEei-GLAJvy8iyw" id="end"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m7teYZpMEei-GLAJvy8iyw" id="end"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oP308JpMEei-GLAJvy8iyw" type="DurationObservation_Edge" source="_JrvkqJpMEei-GLAJvy8iyw" target="_JrvkuppMEei-GLAJvy8iyw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oP3085pMEei-GLAJvy8iyw" type="DurationObservation_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oP309JpMEei-GLAJvy8iyw" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oP309ZpMEei-GLAJvy8iyw" type="DurationObservation_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oP309ppMEei-GLAJvy8iyw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_oP308ZpMEei-GLAJvy8iyw"/>
+ <element xmi:type="uml:DurationObservation" href="bug536631-durationLinks.uml#_oP2m0JpMEei-GLAJvy8iyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oP308ppMEei-GLAJvy8iyw" points="[135, 7, -140, -110]$[135, 67, -140, -50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oQPoYJpMEei-GLAJvy8iyw" id="end"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oQPoYZpMEei-GLAJvy8iyw" id="start"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_p9Rx8JpMEei-GLAJvy8iyw" type="DurationObservation_Edge" source="_JrvkuppMEei-GLAJvy8iyw" target="_JrvkVJpMEei-GLAJvy8iyw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_p9Rx85pMEei-GLAJvy8iyw" type="DurationObservation_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_p9Rx9JpMEei-GLAJvy8iyw" x="34" y="-76"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_p9Rx9ZpMEei-GLAJvy8iyw" type="DurationObservation_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_p9Rx9ppMEei-GLAJvy8iyw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_p9Rx8ZpMEei-GLAJvy8iyw"/>
+ <element xmi:type="uml:DurationObservation" href="bug536631-durationLinks.uml#_p9P8wJpMEei-GLAJvy8iyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_p9Rx8ppMEei-GLAJvy8iyw" points="[-140, -50, -280, -100]$[140, 50, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_p9qzgJpMEei-GLAJvy8iyw" id="start"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_p9qzgZpMEei-GLAJvy8iyw" id="center"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_sy-zwJpMEei-GLAJvy8iyw" type="DurationObservation_Edge" source="_JrvkRppMEei-GLAJvy8iyw" target="_JrvksZpMEei-GLAJvy8iyw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_sy-zw5pMEei-GLAJvy8iyw" type="DurationObservation_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sy-zxJpMEei-GLAJvy8iyw" x="-69" y="41"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sy-zxZpMEei-GLAJvy8iyw" type="DurationObservation_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sy-zxppMEei-GLAJvy8iyw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_sy-zwZpMEei-GLAJvy8iyw"/>
+ <element xmi:type="uml:DurationObservation" href="bug536631-durationLinks.uml#_sy9loJpMEei-GLAJvy8iyw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sy-zwppMEei-GLAJvy8iyw" points="[0, 151, -140, -183]$[280, 330, 140, -4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_szYcYJpMEei-GLAJvy8iyw" id="end"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_szYcYZpMEei-GLAJvy8iyw" id="end"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_aoBs4JsVEeiGQY78R_GwXw" type="PapyrusUMLSequenceDiagram" name="generalOrderingLinksTest" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_aoBs4ZsVEeiGQY78R_GwXw" type="Interaction_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoBs4psVEeiGQY78R_GwXw" type="Interaction_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aoBs45sVEeiGQY78R_GwXw" type="Interaction_SubfragmentCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_aoBs5JsVEeiGQY78R_GwXw" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoBs5ZsVEeiGQY78R_GwXw" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_aoBs5psVEeiGQY78R_GwXw" type="ActionExecutionSpecification_Shape">
+ <element xmi:type="uml:ActionExecutionSpecification" href="bug536631-durationLinks.uml#_se9P4JodEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aoBs55sVEeiGQY78R_GwXw" x="40" y="66" width="20" height="301"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug536631-durationLinks.uml#_WTEHYJobEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aoBs6JsVEeiGQY78R_GwXw" x="74" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aoBs6ZsVEeiGQY78R_GwXw" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoBs6psVEeiGQY78R_GwXw" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_aoBs65sVEeiGQY78R_GwXw" type="BehaviorExecutionSpecification_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoBs7JsVEeiGQY78R_GwXw" type="BehaviorExecutionSpecification_Behavior">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aoBs7ZsVEeiGQY78R_GwXw" x="18" y="18"/>
+ </children>
+ <element xmi:type="uml:BehaviorExecutionSpecification" href="bug536631-durationLinks.uml#_tJdlcJodEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aoBs7psVEeiGQY78R_GwXw" x="40" y="126" width="20" height="141"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aoBs75sVEeiGQY78R_GwXw" type="ActionExecutionSpecification_Shape">
+ <element xmi:type="uml:ActionExecutionSpecification" href="bug536631-durationLinks.uml#_7OtB0JodEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aoBs8JsVEeiGQY78R_GwXw" x="50" y="146" width="20" height="100"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug536631-durationLinks.uml#_WfmHgJobEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aoBs8ZsVEeiGQY78R_GwXw" x="354" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aoBs8psVEeiGQY78R_GwXw" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoBs85sVEeiGQY78R_GwXw" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_aoBs9JsVEeiGQY78R_GwXw" type="DestructionOccurrenceSpecification_Shape">
+ <element xmi:type="uml:DestructionOccurrenceSpecification" href="bug536631-durationLinks.uml#_vlp7EZodEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aoBs9ZsVEeiGQY78R_GwXw" x="40" y="426"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug536631-durationLinks.uml#_WmtcIJobEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aoBs9psVEeiGQY78R_GwXw" x="634" y="10" height="466"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aoBs95sVEeiGQY78R_GwXw"/>
+ </children>
+ <element xmi:type="uml:Interaction" href="bug536631-durationLinks.uml#_VJw9AJobEei5foLskM0Fzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aoBs-JsVEeiGQY78R_GwXw"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_aoBs-ZsVEeiGQY78R_GwXw" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_aoBs-psVEeiGQY78R_GwXw"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_aoBs-5sVEeiGQY78R_GwXw" diagramKindId="org.eclipse.papyrus.uml.diagram.sequence">
+ <owner xmi:type="uml:Model" href="bug536631-durationLinks.uml#_VI4MMJobEei5foLskM0Fzg"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_aoBs_JsVEeiGQY78R_GwXw" name="css_stylesheets" eObjectListValue="_9bFrwJobEei5foLskM0Fzg"/>
+ <element xmi:type="uml:Interaction" href="bug536631-durationLinks.uml#_VJw9AJobEei5foLskM0Fzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_aoBtNpsVEeiGQY78R_GwXw" type="Message_AsynchEdge" source="_aoBs5JsVEeiGQY78R_GwXw" target="_aoBs6ZsVEeiGQY78R_GwXw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoBtN5sVEeiGQY78R_GwXw" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aoBtOJsVEeiGQY78R_GwXw" x="-43" y="7"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoBtOZsVEeiGQY78R_GwXw" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aoBtOpsVEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_aoBtO5sVEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinks.uml#_t7k-4JodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aoBtPJsVEeiGQY78R_GwXw" points="[-10, -2, -290, -20]$[270, 18, -10, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aoBtPZsVEeiGQY78R_GwXw" id="(0.5,0.20857142857142857)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aoBtPpsVEeiGQY78R_GwXw" id="(0.5,0.20857142857142857)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_aoBtP5sVEeiGQY78R_GwXw" type="Message_AsynchEdge" source="_aoBs6ZsVEeiGQY78R_GwXw" target="_aoBs5JsVEeiGQY78R_GwXw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoBtQJsVEeiGQY78R_GwXw" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aoBtQZsVEeiGQY78R_GwXw" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoBtQpsVEeiGQY78R_GwXw" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aoBtQ5sVEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_aoBtRJsVEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinks.uml#_uLZjkJodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aoBtRZsVEeiGQY78R_GwXw" points="[-10, -1, 270, -40]$[-290, 39, -10, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aoBtRpsVEeiGQY78R_GwXw" id="(0.5,0.29428571428571426)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aoBtR5sVEeiGQY78R_GwXw" id="(0.5,0.29428571428571426)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_aoBtSJsVEeiGQY78R_GwXw" type="Message_AsynchEdge" source="_aoBs5JsVEeiGQY78R_GwXw" target="_aoBs6ZsVEeiGQY78R_GwXw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoBtSZsVEeiGQY78R_GwXw" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aoBtSpsVEeiGQY78R_GwXw" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoBtS5sVEeiGQY78R_GwXw" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aoBtTJsVEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_aoBtTZsVEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinks.uml#_ucBZgJodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aoBtTpsVEeiGQY78R_GwXw" points="[-10, 9, -290, -100]$[280, 109, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aoBtT5sVEeiGQY78R_GwXw" id="(0.5,0.43714285714285717)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aoBtUJsVEeiGQY78R_GwXw" id="(0.5,0.43714285714285717)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_aoBtUZsVEeiGQY78R_GwXw" type="Message_AsynchEdge" source="_aoBs5JsVEeiGQY78R_GwXw" target="_aoBs6ZsVEeiGQY78R_GwXw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoBtUpsVEeiGQY78R_GwXw" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aoBtU5sVEeiGQY78R_GwXw" x="-3" y="7"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoBtVJsVEeiGQY78R_GwXw" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aoBtVZsVEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_aoBtVpsVEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinks.uml#_u7PFEJodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aoBtV5sVEeiGQY78R_GwXw" points="[0, 0, -280, 0]$[280, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aoBtWJsVEeiGQY78R_GwXw" id="(0.5,0.78)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aoBtWZsVEeiGQY78R_GwXw" id="(0.5,0.78)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_aoBtWpsVEeiGQY78R_GwXw" type="Message_DeleteEdge" source="_aoBs6ZsVEeiGQY78R_GwXw" target="_aoBs8psVEeiGQY78R_GwXw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoBtW5sVEeiGQY78R_GwXw" type="Message_DeleteNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aoBtXJsVEeiGQY78R_GwXw" x="-35" y="30"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoBtXZsVEeiGQY78R_GwXw" type="Message_DeleteStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aoBtXpsVEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_aoBtX5sVEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinks.uml#_vlos8JodEei5foLskM0Fzg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aoBtYJsVEeiGQY78R_GwXw" points="[0, 0, -280, -100]$[280, 100, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aoBtYZsVEeiGQY78R_GwXw" id="(0.5,0.5228571428571429)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aoBtYpsVEeiGQY78R_GwXw" id="(0.5,0.9141630901287554)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_eGFIIJsVEeiGQY78R_GwXw" type="GeneralOrdering_Edge" source="_aoBs5psVEeiGQY78R_GwXw" target="_aoBs65sVEeiGQY78R_GwXw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_eGHkYJsVEeiGQY78R_GwXw" type="GeneralOrdering_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eGHkYZsVEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_eGFIIZsVEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:GeneralOrdering" href="bug536631-durationLinks.uml#_eFRP0JsVEeiGQY78R_GwXw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eGFIIpsVEeiGQY78R_GwXw" points="[0, -150, -280, -130]$[280, -90, 0, -70]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eG5ngJsVEeiGQY78R_GwXw" id="start"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eG5ngZsVEeiGQY78R_GwXw" id="start"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_goHnEJsVEeiGQY78R_GwXw" type="GeneralOrdering_Edge" source="_aoBtNpsVEeiGQY78R_GwXw" target="_aoBtNpsVEeiGQY78R_GwXw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hYHgoJsVEeiGQY78R_GwXw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hYIHsJsVEeiGQY78R_GwXw" key="routing" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_goIOIJsVEeiGQY78R_GwXw" type="GeneralOrdering_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_goIOIZsVEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_goHnEZsVEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:GeneralOrdering" href="bug536631-durationLinks.uml#_gnwasJsVEeiGQY78R_GwXw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_goHnEpsVEeiGQY78R_GwXw" points="[-130, -4, -130, -4]$[-70, -36, -70, -36]$[26, -36, 26, -36]$[130, -4, 130, -4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gobJEJsVEeiGQY78R_GwXw" id="start"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gobJEZsVEeiGQY78R_GwXw" id="end"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nJEyoJsVEeiGQY78R_GwXw" type="GeneralOrdering_Edge" source="_aoBs75sVEeiGQY78R_GwXw" target="_aoBtP5sVEeiGQY78R_GwXw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nJFZsJsVEeiGQY78R_GwXw" type="GeneralOrdering_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nJFZsZsVEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_nJEyoZsVEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:GeneralOrdering" href="bug536631-durationLinks.uml#_nIxQoJsVEeiGQY78R_GwXw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nJEyopsVEeiGQY78R_GwXw" points="[0, -50, 150, -67]$[-280, 10, -130, -7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nJUDMJsVEeiGQY78R_GwXw" id="start"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nJUDMZsVEeiGQY78R_GwXw" id="end"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_pxrzoJsVEeiGQY78R_GwXw" type="GeneralOrdering_Edge" source="_aoBs75sVEeiGQY78R_GwXw" target="_aoBs65sVEeiGQY78R_GwXw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_pxrzo5sVEeiGQY78R_GwXw" type="GeneralOrdering_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pxrzpJsVEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_pxrzoZsVEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:GeneralOrdering" href="bug536631-durationLinks.uml#_pxZfwJsVEeiGQY78R_GwXw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pxrzopsVEeiGQY78R_GwXw" points="[0, 50, 10, 50]$[40, 50, 50, 50]$[40, 70, 50, 70]$[-10, 71, 0, 71]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_px7rQJsVEeiGQY78R_GwXw" id="end"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_px7rQZsVEeiGQY78R_GwXw" id="end"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_to3gkJsVEeiGQY78R_GwXw" type="GeneralOrdering_Edge" source="_aoBtSJsVEeiGQY78R_GwXw" target="_aoBtWpsVEeiGQY78R_GwXw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_to4HoJsVEeiGQY78R_GwXw" type="GeneralOrdering_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_to4HoZsVEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_to3gkZsVEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:GeneralOrdering" href="bug536631-durationLinks.uml#_tolMsJsVEeiGQY78R_GwXw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_to3gkpsVEeiGQY78R_GwXw" points="[135, 7, -140, -110]$[135, 67, -140, -50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tpH_QJsVEeiGQY78R_GwXw" id="end"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tpH_QZsVEeiGQY78R_GwXw" id="start"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_vK4F4JsVEeiGQY78R_GwXw" type="GeneralOrdering_Edge" source="_aoBtWpsVEeiGQY78R_GwXw" target="_aoBs9JsVEeiGQY78R_GwXw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vK4F45sVEeiGQY78R_GwXw" type="GeneralOrdering_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vK4F5JsVEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vK4F4ZsVEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:GeneralOrdering" href="bug536631-durationLinks.uml#_vKlyAJsVEeiGQY78R_GwXw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vK4F4psVEeiGQY78R_GwXw" points="[-140, -50, -280, -100]$[9, -21, -131, -71]$[140, 50, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vLGIUJsVEeiGQY78R_GwXw" id="start"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vLGIUZsVEeiGQY78R_GwXw" id="center"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wn9H4JsVEeiGQY78R_GwXw" type="GeneralOrdering_Edge" source="_aoBs5psVEeiGQY78R_GwXw" target="_aoBtUZsVEeiGQY78R_GwXw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wn9H45sVEeiGQY78R_GwXw" type="GeneralOrdering_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wn9H5JsVEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wn9H4ZsVEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:GeneralOrdering" href="bug536631-durationLinks.uml#_wnq0AJsVEeiGQY78R_GwXw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wn9H4psVEeiGQY78R_GwXw" points="[0, 151, -140, -183]$[280, 330, 140, -4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_woLxYJsVEeiGQY78R_GwXw" id="end"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_woMYcJsVEeiGQY78R_GwXw" id="end"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinks.uml b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinks.uml
new file mode 100644
index 00000000000..14b9ea2f875
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinks.uml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_VI4MMJobEei5foLskM0Fzg" name="durationLinksTest">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_VQ4RoJobEei5foLskM0Fzg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Interaction" xmi:id="_VJw9AJobEei5foLskM0Fzg" name="Interaction1">
+ <ownedRule xmi:type="uml:DurationConstraint" xmi:id="_9t4aAJodEei5foLskM0Fzg" name="DurationConstraint1" constrainedElement="_se-eAJodEei5foLskM0Fzg _tJeMgJodEei5foLskM0Fzg">
+ <specification xmi:type="uml:DurationInterval" xmi:id="_9t5BEJodEei5foLskM0Fzg" max="_9t5oIZodEei5foLskM0Fzg" min="_9t5oIJodEei5foLskM0Fzg"/>
+ </ownedRule>
+ <ownedRule xmi:type="uml:DurationConstraint" xmi:id="__GADgJodEei5foLskM0Fzg" name="DurationConstraint2" constrainedElement="_t7ll8JodEei5foLskM0Fzg _t7mNAJodEei5foLskM0Fzg">
+ <specification xmi:type="uml:DurationInterval" xmi:id="__GAqkJodEei5foLskM0Fzg" max="__GBRoZodEei5foLskM0Fzg" min="__GBRoJodEei5foLskM0Fzg"/>
+ </ownedRule>
+ <ownedRule xmi:type="uml:DurationConstraint" xmi:id="__-bgUJodEei5foLskM0Fzg" name="DurationConstraint3" constrainedElement="_7OuP8JodEei5foLskM0Fzg _uLaxsJodEei5foLskM0Fzg">
+ <specification xmi:type="uml:DurationInterval" xmi:id="__-cHYJodEei5foLskM0Fzg" max="__-cucZodEei5foLskM0Fzg" min="__-cucJodEei5foLskM0Fzg"/>
+ </ownedRule>
+ <ownedRule xmi:type="uml:DurationConstraint" xmi:id="_A19lQJoeEei5foLskM0Fzg" name="DurationConstraint4" constrainedElement="_7OuP8ZodEei5foLskM0Fzg _tJeMgZodEei5foLskM0Fzg">
+ <specification xmi:type="uml:DurationInterval" xmi:id="_A1-zYJoeEei5foLskM0Fzg" max="_A1-zYpoeEei5foLskM0Fzg" min="_A1-zYZoeEei5foLskM0Fzg"/>
+ </ownedRule>
+ <ownedRule xmi:type="uml:DurationConstraint" xmi:id="_CAI5YJoeEei5foLskM0Fzg" name="DurationConstraint5" constrainedElement="_ucCAkJodEei5foLskM0Fzg _vlp7EJodEei5foLskM0Fzg">
+ <specification xmi:type="uml:DurationInterval" xmi:id="_CAJgcJoeEei5foLskM0Fzg" max="_CAJgcpoeEei5foLskM0Fzg" min="_CAJgcZoeEei5foLskM0Fzg"/>
+ </ownedRule>
+ <ownedRule xmi:type="uml:DurationConstraint" xmi:id="_DT-f0JoeEei5foLskM0Fzg" name="DurationConstraint6" constrainedElement="_vlp7EJodEei5foLskM0Fzg _vlp7EZodEei5foLskM0Fzg">
+ <specification xmi:type="uml:DurationInterval" xmi:id="_DT_t8JoeEei5foLskM0Fzg" max="_DUAVAJoeEei5foLskM0Fzg" min="_DT_t8ZoeEei5foLskM0Fzg"/>
+ </ownedRule>
+ <ownedRule xmi:type="uml:DurationConstraint" xmi:id="_E9YGkJoeEei5foLskM0Fzg" name="DurationConstraint7" constrainedElement="_se_FEJodEei5foLskM0Fzg _u7QTMZodEei5foLskM0Fzg">
+ <specification xmi:type="uml:DurationInterval" xmi:id="_E9YtoJoeEei5foLskM0Fzg" max="_E9YtopoeEei5foLskM0Fzg" min="_E9YtoZoeEei5foLskM0Fzg"/>
+ </ownedRule>
+ <generalOrdering xmi:type="uml:GeneralOrdering" xmi:id="_eFRP0JsVEeiGQY78R_GwXw" name="GeneralOrdering1" after="_tJeMgJodEei5foLskM0Fzg" before="_se-eAJodEei5foLskM0Fzg"/>
+ <generalOrdering xmi:type="uml:GeneralOrdering" xmi:id="_gnwasJsVEeiGQY78R_GwXw" name="GeneralOrdering2" after="_t7mNAJodEei5foLskM0Fzg" before="_t7ll8JodEei5foLskM0Fzg"/>
+ <generalOrdering xmi:type="uml:GeneralOrdering" xmi:id="_nIxQoJsVEeiGQY78R_GwXw" name="GeneralOrdering3" after="_uLaxsJodEei5foLskM0Fzg" before="_7OuP8JodEei5foLskM0Fzg"/>
+ <generalOrdering xmi:type="uml:GeneralOrdering" xmi:id="_pxZfwJsVEeiGQY78R_GwXw" name="GeneralOrdering4" after="_tJeMgZodEei5foLskM0Fzg" before="_7OuP8ZodEei5foLskM0Fzg"/>
+ <generalOrdering xmi:type="uml:GeneralOrdering" xmi:id="_tolMsJsVEeiGQY78R_GwXw" name="GeneralOrdering5" after="_vlp7EJodEei5foLskM0Fzg" before="_ucCAkJodEei5foLskM0Fzg"/>
+ <generalOrdering xmi:type="uml:GeneralOrdering" xmi:id="_vKlyAJsVEeiGQY78R_GwXw" name="GeneralOrdering6" after="_vlp7EZodEei5foLskM0Fzg" before="_vlp7EJodEei5foLskM0Fzg"/>
+ <generalOrdering xmi:type="uml:GeneralOrdering" xmi:id="_wnq0AJsVEeiGQY78R_GwXw" name="GeneralOrdering7" after="_u7QTMZodEei5foLskM0Fzg" before="_se_FEJodEei5foLskM0Fzg"/>
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_WTEHYJobEei5foLskM0Fzg" name="Lifeline1" coveredBy="_se-eAJodEei5foLskM0Fzg _se9P4JodEei5foLskM0Fzg _t7ll8JodEei5foLskM0Fzg _uLaxsJodEei5foLskM0Fzg _ucBZgZodEei5foLskM0Fzg _se_FEJodEei5foLskM0Fzg _u7QTMJodEei5foLskM0Fzg"/>
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_WfmHgJobEei5foLskM0Fzg" name="Lifeline2" coveredBy="_tJeMgJodEei5foLskM0Fzg _tJdlcJodEei5foLskM0Fzg _7OuP8JodEei5foLskM0Fzg _7OtB0JodEei5foLskM0Fzg _t7mNAJodEei5foLskM0Fzg _uLaKoJodEei5foLskM0Fzg _7OuP8ZodEei5foLskM0Fzg _tJeMgZodEei5foLskM0Fzg _ucCAkJodEei5foLskM0Fzg _vlp7EJodEei5foLskM0Fzg _u7QTMZodEei5foLskM0Fzg"/>
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_WmtcIJobEei5foLskM0Fzg" name="Lifeline3" coveredBy="_vlp7EZodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_se-eAJodEei5foLskM0Fzg" name="ActionExecutionSpecification1Start" covered="_WTEHYJobEei5foLskM0Fzg" toAfter="_eFRP0JsVEeiGQY78R_GwXw" execution="_se9P4JodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_se9P4JodEei5foLskM0Fzg" name="ActionExecutionSpecification1" covered="_WTEHYJobEei5foLskM0Fzg" finish="_se_FEJodEei5foLskM0Fzg" start="_se-eAJodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_tJeMgJodEei5foLskM0Fzg" name="BehaviorExecutionSpecification2Start" covered="_WfmHgJobEei5foLskM0Fzg" toBefore="_eFRP0JsVEeiGQY78R_GwXw" execution="_tJdlcJodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_tJdlcJodEei5foLskM0Fzg" name="BehaviorExecutionSpecification2" covered="_WfmHgJobEei5foLskM0Fzg" finish="_tJeMgZodEei5foLskM0Fzg" start="_tJeMgJodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_t7ll8JodEei5foLskM0Fzg" name="Message1SendEvent" covered="_WTEHYJobEei5foLskM0Fzg" toAfter="_gnwasJsVEeiGQY78R_GwXw" message="_t7k-4JodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_7OuP8JodEei5foLskM0Fzg" name="ActionExecutionSpecification3Start" covered="_WfmHgJobEei5foLskM0Fzg" toAfter="_nIxQoJsVEeiGQY78R_GwXw" execution="_7OtB0JodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_7OtB0JodEei5foLskM0Fzg" name="ActionExecutionSpecification3" covered="_WfmHgJobEei5foLskM0Fzg" finish="_7OuP8ZodEei5foLskM0Fzg" start="_7OuP8JodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_t7mNAJodEei5foLskM0Fzg" name="Message1ReceiveEvent" covered="_WfmHgJobEei5foLskM0Fzg" toBefore="_gnwasJsVEeiGQY78R_GwXw" message="_t7k-4JodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_uLaKoJodEei5foLskM0Fzg" name="Message2SendEvent" covered="_WfmHgJobEei5foLskM0Fzg" message="_uLZjkJodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_uLaxsJodEei5foLskM0Fzg" name="Message2ReceiveEvent" covered="_WTEHYJobEei5foLskM0Fzg" toBefore="_nIxQoJsVEeiGQY78R_GwXw" message="_uLZjkJodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_7OuP8ZodEei5foLskM0Fzg" name="ActionExecutionSpecification3Finish" covered="_WfmHgJobEei5foLskM0Fzg" toAfter="_pxZfwJsVEeiGQY78R_GwXw" execution="_7OtB0JodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_tJeMgZodEei5foLskM0Fzg" name="BehaviorExecutionSpecification2Finish" covered="_WfmHgJobEei5foLskM0Fzg" toBefore="_pxZfwJsVEeiGQY78R_GwXw" execution="_tJdlcJodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_ucBZgZodEei5foLskM0Fzg" name="Message3SendEvent" covered="_WTEHYJobEei5foLskM0Fzg" message="_ucBZgJodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_ucCAkJodEei5foLskM0Fzg" name="Message3ReceiveEvent" covered="_WfmHgJobEei5foLskM0Fzg" toAfter="_tolMsJsVEeiGQY78R_GwXw" message="_ucBZgJodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_vlp7EJodEei5foLskM0Fzg" name="Message5SendEvent" covered="_WfmHgJobEei5foLskM0Fzg" toAfter="_vKlyAJsVEeiGQY78R_GwXw" toBefore="_tolMsJsVEeiGQY78R_GwXw" message="_vlos8JodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_se_FEJodEei5foLskM0Fzg" name="ActionExecutionSpecification1Finish" covered="_WTEHYJobEei5foLskM0Fzg" toAfter="_wnq0AJsVEeiGQY78R_GwXw" execution="_se9P4JodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:DestructionOccurrenceSpecification" xmi:id="_vlp7EZodEei5foLskM0Fzg" name="Message5ReceiveDestroyEvent" covered="_WmtcIJobEei5foLskM0Fzg" toBefore="_vKlyAJsVEeiGQY78R_GwXw" message="_vlos8JodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_u7QTMJodEei5foLskM0Fzg" name="Message4SendEvent" covered="_WTEHYJobEei5foLskM0Fzg" message="_u7PFEJodEei5foLskM0Fzg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_u7QTMZodEei5foLskM0Fzg" name="Message4ReceiveEvent" covered="_WfmHgJobEei5foLskM0Fzg" toBefore="_wnq0AJsVEeiGQY78R_GwXw" message="_u7PFEJodEei5foLskM0Fzg"/>
+ <message xmi:type="uml:Message" xmi:id="_t7k-4JodEei5foLskM0Fzg" name="Message1" messageSort="asynchCall" receiveEvent="_t7mNAJodEei5foLskM0Fzg" sendEvent="_t7ll8JodEei5foLskM0Fzg"/>
+ <message xmi:type="uml:Message" xmi:id="_uLZjkJodEei5foLskM0Fzg" name="Message2" messageSort="asynchCall" receiveEvent="_uLaxsJodEei5foLskM0Fzg" sendEvent="_uLaKoJodEei5foLskM0Fzg"/>
+ <message xmi:type="uml:Message" xmi:id="_ucBZgJodEei5foLskM0Fzg" name="Message3" messageSort="asynchCall" receiveEvent="_ucCAkJodEei5foLskM0Fzg" sendEvent="_ucBZgZodEei5foLskM0Fzg"/>
+ <message xmi:type="uml:Message" xmi:id="_u7PFEJodEei5foLskM0Fzg" name="Message4" messageSort="asynchCall" receiveEvent="_u7QTMZodEei5foLskM0Fzg" sendEvent="_u7QTMJodEei5foLskM0Fzg"/>
+ <message xmi:type="uml:Message" xmi:id="_vlos8JodEei5foLskM0Fzg" name="Message5" messageSort="deleteMessage" receiveEvent="_vlp7EZodEei5foLskM0Fzg" sendEvent="_vlp7EJodEei5foLskM0Fzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Duration" xmi:id="_9t5oIJodEei5foLskM0Fzg" name="MinDuration1">
+ <expr xmi:type="uml:LiteralInteger" xmi:id="_9t5oIpodEei5foLskM0Fzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Duration" xmi:id="_9t5oIZodEei5foLskM0Fzg" name="MaxDuration1">
+ <expr xmi:type="uml:LiteralInteger" xmi:id="_9t5oI5odEei5foLskM0Fzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Duration" xmi:id="__GBRoJodEei5foLskM0Fzg" name="MinDuration2">
+ <expr xmi:type="uml:LiteralInteger" xmi:id="__GBRopodEei5foLskM0Fzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Duration" xmi:id="__GBRoZodEei5foLskM0Fzg" name="MaxDuration2">
+ <expr xmi:type="uml:LiteralInteger" xmi:id="__GBRo5odEei5foLskM0Fzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Duration" xmi:id="__-cucJodEei5foLskM0Fzg" name="MinDuration3">
+ <expr xmi:type="uml:LiteralInteger" xmi:id="__-cucpodEei5foLskM0Fzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Duration" xmi:id="__-cucZodEei5foLskM0Fzg" name="MaxDuration3">
+ <expr xmi:type="uml:LiteralInteger" xmi:id="__-cuc5odEei5foLskM0Fzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Duration" xmi:id="_A1-zYZoeEei5foLskM0Fzg" name="MinDuration4">
+ <expr xmi:type="uml:LiteralInteger" xmi:id="_A1-zY5oeEei5foLskM0Fzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Duration" xmi:id="_A1-zYpoeEei5foLskM0Fzg" name="MaxDuration4">
+ <expr xmi:type="uml:LiteralInteger" xmi:id="_A1-zZJoeEei5foLskM0Fzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Duration" xmi:id="_CAJgcZoeEei5foLskM0Fzg" name="MinDuration5">
+ <expr xmi:type="uml:LiteralInteger" xmi:id="_CAJgc5oeEei5foLskM0Fzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Duration" xmi:id="_CAJgcpoeEei5foLskM0Fzg" name="MaxDuration5">
+ <expr xmi:type="uml:LiteralInteger" xmi:id="_CAJgdJoeEei5foLskM0Fzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Duration" xmi:id="_DT_t8ZoeEei5foLskM0Fzg" name="MinDuration6">
+ <expr xmi:type="uml:LiteralInteger" xmi:id="_DUAVAZoeEei5foLskM0Fzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Duration" xmi:id="_DUAVAJoeEei5foLskM0Fzg" name="MaxDuration6">
+ <expr xmi:type="uml:LiteralInteger" xmi:id="_DUAVApoeEei5foLskM0Fzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Duration" xmi:id="_E9YtoZoeEei5foLskM0Fzg" name="MinDuration7">
+ <expr xmi:type="uml:LiteralInteger" xmi:id="_E9ZUsJoeEei5foLskM0Fzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Duration" xmi:id="_E9YtopoeEei5foLskM0Fzg" name="MaxDuration7">
+ <expr xmi:type="uml:LiteralInteger" xmi:id="_E9ZUsZoeEei5foLskM0Fzg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DurationObservation" xmi:id="_kB1uQJpMEei-GLAJvy8iyw" name="DurationObservation1" event="_se-eAJodEei5foLskM0Fzg _tJeMgJodEei5foLskM0Fzg"/>
+ <packagedElement xmi:type="uml:DurationObservation" xmi:id="_lRUZIJpMEei-GLAJvy8iyw" name="DurationObservation2" event="_t7ll8JodEei5foLskM0Fzg _t7mNAJodEei5foLskM0Fzg"/>
+ <packagedElement xmi:type="uml:DurationObservation" xmi:id="_l3tDsJpMEei-GLAJvy8iyw" name="DurationObservation3" event="_7OuP8JodEei5foLskM0Fzg _uLaxsJodEei5foLskM0Fzg"/>
+ <packagedElement xmi:type="uml:DurationObservation" xmi:id="_m7Vq8JpMEei-GLAJvy8iyw" name="DurationObservation4" event="_7OuP8ZodEei5foLskM0Fzg _tJeMgZodEei5foLskM0Fzg"/>
+ <packagedElement xmi:type="uml:DurationObservation" xmi:id="_oP2m0JpMEei-GLAJvy8iyw" name="DurationObservation5" event="_ucCAkJodEei5foLskM0Fzg _vlp7EJodEei5foLskM0Fzg"/>
+ <packagedElement xmi:type="uml:DurationObservation" xmi:id="_p9P8wJpMEei-GLAJvy8iyw" name="DurationObservation6" event="_vlp7EJodEei5foLskM0Fzg _vlp7EZodEei5foLskM0Fzg"/>
+ <packagedElement xmi:type="uml:DurationObservation" xmi:id="_sy9loJpMEei-GLAJvy8iyw" name="DurationObservation7" event="_se_FEJodEei5foLskM0Fzg _u7QTMZodEei5foLskM0Fzg"/>
+</uml:Model>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinksCreation.di b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinksCreation.di
new file mode 100644
index 00000000000..8c549eecdc6
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinksCreation.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.infra.services.edit.TypeContext"/>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinksCreation.notation b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinksCreation.notation
new file mode 100644
index 00000000000..b6533625ca4
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinksCreation.notation
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_nHl9MJsbEeiGQY78R_GwXw" type="PapyrusUMLSequenceDiagram" name="durationLinksCreation" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_nHl9MZsbEeiGQY78R_GwXw" type="Interaction_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nHl9MpsbEeiGQY78R_GwXw" type="Interaction_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nHl9M5sbEeiGQY78R_GwXw" type="Interaction_SubfragmentCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_q4xv0JsbEeiGQY78R_GwXw" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_q4xv0psbEeiGQY78R_GwXw" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_uoMA0JsbEeiGQY78R_GwXw" type="ActionExecutionSpecification_Shape">
+ <element xmi:type="uml:ActionExecutionSpecification" href="bug536631-durationLinksCreation.uml#_uoF6MJsbEeiGQY78R_GwXw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uoMA0ZsbEeiGQY78R_GwXw" x="40" y="86" width="20" height="261"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug536631-durationLinksCreation.uml#_q4usgJsbEeiGQY78R_GwXw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q4xv0ZsbEeiGQY78R_GwXw" x="34" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_q-WMUJsbEeiGQY78R_GwXw" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_q-WMUpsbEeiGQY78R_GwXw" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_4AdXwJsbEeiGQY78R_GwXw" type="BehaviorExecutionSpecification_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4Ad-0ZsbEeiGQY78R_GwXw" type="BehaviorExecutionSpecification_Behavior">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4Ad-0psbEeiGQY78R_GwXw" x="18" y="18"/>
+ </children>
+ <element xmi:type="uml:BehaviorExecutionSpecification" href="bug536631-durationLinksCreation.uml#_4AU04JsbEeiGQY78R_GwXw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4Ad-0JsbEeiGQY78R_GwXw" x="40" y="146" width="20" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_E1H9EJscEeiGQY78R_GwXw" type="ActionExecutionSpecification_Shape">
+ <element xmi:type="uml:ActionExecutionSpecification" href="bug536631-durationLinksCreation.uml#_E07IwJscEeiGQY78R_GwXw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E1H9EZscEeiGQY78R_GwXw" x="40" y="386" width="20" height="100"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug536631-durationLinksCreation.uml#_q-TwEJsbEeiGQY78R_GwXw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q-WMUZsbEeiGQY78R_GwXw" x="274" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rSkI0JsbEeiGQY78R_GwXw" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_rSkI0psbEeiGQY78R_GwXw" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_5eSocJuvEeiGQY78R_GwXw" type="DestructionOccurrenceSpecification_Shape">
+ <element xmi:type="uml:DestructionOccurrenceSpecification" href="bug536631-durationLinksCreation.uml#_5auXEJuvEeiGQY78R_GwXw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5eSocZuvEeiGQY78R_GwXw" x="40" y="366"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug536631-durationLinksCreation.uml#_rSgecJsbEeiGQY78R_GwXw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rSkI0ZsbEeiGQY78R_GwXw" x="514" y="10" height="406"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ra2iIJsbEeiGQY78R_GwXw" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ra2iIpsbEeiGQY78R_GwXw" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_tcJrgJsbEeiGQY78R_GwXw" type="DestructionOccurrenceSpecification_Shape">
+ <element xmi:type="uml:DestructionOccurrenceSpecification" href="bug536631-durationLinksCreation.uml#_tb0UUZsbEeiGQY78R_GwXw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tcJrgZsbEeiGQY78R_GwXw" x="40" y="286"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug536631-durationLinksCreation.uml#_raze0JsbEeiGQY78R_GwXw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ra2iIZsbEeiGQY78R_GwXw" x="794" y="10" height="326"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nHl9NJsbEeiGQY78R_GwXw"/>
+ </children>
+ <element xmi:type="uml:Interaction" href="bug536631-durationLinksCreation.uml#_nHeocJsbEeiGQY78R_GwXw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nHl9NZsbEeiGQY78R_GwXw"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_nHl9NpsbEeiGQY78R_GwXw" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_nHl9N5sbEeiGQY78R_GwXw"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_nHl9OJsbEeiGQY78R_GwXw" diagramKindId="org.eclipse.papyrus.uml.diagram.sequence">
+ <owner xmi:type="uml:Model" href="bug536631-durationLinksCreation.uml#_nG8c8JsbEeiGQY78R_GwXw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_EleasJsgEeiGQY78R_GwXw" name="css_stylesheets" eObjectListValue="_ElaJQJsgEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:Interaction" href="bug536631-durationLinksCreation.uml#_nHeocJsbEeiGQY78R_GwXw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_tb7CAJsbEeiGQY78R_GwXw" type="Message_DeleteEdge" source="_rSkI0JsbEeiGQY78R_GwXw" target="_ra2iIJsbEeiGQY78R_GwXw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tb7CA5sbEeiGQY78R_GwXw" type="Message_DeleteNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tb7CBJsbEeiGQY78R_GwXw" x="29" y="-33"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tb7CBZsbEeiGQY78R_GwXw" type="Message_DeleteStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_tb7CBpsbEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_tb7CAZsbEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinksCreation.uml#_tbzGMJsbEeiGQY78R_GwXw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tb7CApsbEeiGQY78R_GwXw" points="[0, 0, -280, -100]$[280, 100, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tcEL8JsbEeiGQY78R_GwXw" id="(0.5,0.5566502463054186)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tcEL8ZsbEeiGQY78R_GwXw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_5n8S8JsbEeiGQY78R_GwXw" type="Message_AsynchEdge" source="_q4xv0JsbEeiGQY78R_GwXw" target="_q-WMUJsbEeiGQY78R_GwXw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5n8S85sbEeiGQY78R_GwXw" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5n8S9JsbEeiGQY78R_GwXw" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5n8S9ZsbEeiGQY78R_GwXw" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5n8S9psbEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5n8S8ZsbEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinksCreation.uml#_5n2zYJsbEeiGQY78R_GwXw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5n8S8psbEeiGQY78R_GwXw" points="[0, 0, -240, 0]$[240, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5oGD8JsbEeiGQY78R_GwXw" id="(0.5,0.78)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5oGrAJsbEeiGQY78R_GwXw" id="(0.5,0.78)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_54kv8JsbEeiGQY78R_GwXw" type="Message_AsynchEdge" source="_q-WMUJsbEeiGQY78R_GwXw" target="_q4xv0JsbEeiGQY78R_GwXw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_54lXAJsbEeiGQY78R_GwXw" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_54lXAZsbEeiGQY78R_GwXw" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_54lXApsbEeiGQY78R_GwXw" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_54lXA5sbEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_54kv8ZsbEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinksCreation.uml#_54Zw0JsbEeiGQY78R_GwXw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_54kv8psbEeiGQY78R_GwXw" points="[0, 0, 240, 0]$[-240, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_55Lz8JsbEeiGQY78R_GwXw" id="(0.5,0.8942857142857142)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_55Lz8ZsbEeiGQY78R_GwXw" id="(0.5,0.8942857142857142)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_5d2jkJuvEeiGQY78R_GwXw" type="Message_DeleteEdge" source="_q-WMUJsbEeiGQY78R_GwXw" target="_rSkI0JsbEeiGQY78R_GwXw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5d2jk5uvEeiGQY78R_GwXw" type="Message_DeleteNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5d3KoJuvEeiGQY78R_GwXw" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5d3KoZuvEeiGQY78R_GwXw" type="Message_DeleteStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5d3KopuvEeiGQY78R_GwXw" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5d2jkZuvEeiGQY78R_GwXw"/>
+ <element xmi:type="uml:Message" href="bug536631-durationLinksCreation.uml#_5ar60JuvEeiGQY78R_GwXw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5d2jkpuvEeiGQY78R_GwXw" points="[0, 0, -240, -120]$[240, 120, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5eHpUJuvEeiGQY78R_GwXw" id="(0.5,0.4085714285714286)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5eHpUZuvEeiGQY78R_GwXw" id="(0.5,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <css:StyleSheetReference xmi:id="_ElaJQJsgEeiGQY78R_GwXw" path="/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/style.css"/>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinksCreation.uml b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinksCreation.uml
new file mode 100644
index 00000000000..0a7cdae9ea9
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug536631-durationLinksCreation.uml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_nG8c8JsbEeiGQY78R_GwXw" name="durationLinksCreation">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_nLnhkJsbEeiGQY78R_GwXw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Interaction" xmi:id="_nHeocJsbEeiGQY78R_GwXw" name="Interaction1">
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_q4usgJsbEeiGQY78R_GwXw" name="Lifeline1" coveredBy="_uoHvYJsbEeiGQY78R_GwXw _uoF6MJsbEeiGQY78R_GwXw _uoHvYZsbEeiGQY78R_GwXw _5n4BgJsbEeiGQY78R_GwXw _54aX4ZsbEeiGQY78R_GwXw"/>
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_q-TwEJsbEeiGQY78R_GwXw" name="Lifeline2" coveredBy="_4AWDAJsbEeiGQY78R_GwXw _4AU04JsbEeiGQY78R_GwXw _5atwAJuvEeiGQY78R_GwXw _E0898JscEeiGQY78R_GwXw _E07IwJscEeiGQY78R_GwXw _E09lAJscEeiGQY78R_GwXw _5n4BgZsbEeiGQY78R_GwXw _54aX4JsbEeiGQY78R_GwXw"/>
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_rSgecJsbEeiGQY78R_GwXw" name="Lifeline3" coveredBy="_tb0UUJsbEeiGQY78R_GwXw _5auXEJuvEeiGQY78R_GwXw"/>
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_raze0JsbEeiGQY78R_GwXw" name="Lifeline4" coveredBy="_tb0UUZsbEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_uoHvYJsbEeiGQY78R_GwXw" name="ActionExecutionSpecification1Start" covered="_q4usgJsbEeiGQY78R_GwXw" execution="_uoF6MJsbEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_uoF6MJsbEeiGQY78R_GwXw" name="ActionExecutionSpecification1" covered="_q4usgJsbEeiGQY78R_GwXw" finish="_uoHvYZsbEeiGQY78R_GwXw" start="_uoHvYJsbEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_4AWDAJsbEeiGQY78R_GwXw" name="BehaviorExecutionSpecification2Start" covered="_q-TwEJsbEeiGQY78R_GwXw" execution="_4AU04JsbEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_4AU04JsbEeiGQY78R_GwXw" name="BehaviorExecutionSpecification2" covered="_q-TwEJsbEeiGQY78R_GwXw" finish="_5atwAJuvEeiGQY78R_GwXw" start="_4AWDAJsbEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_tb0UUJsbEeiGQY78R_GwXw" name="Message2SendEvent" covered="_rSgecJsbEeiGQY78R_GwXw" message="_tbzGMJsbEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_5atwAJuvEeiGQY78R_GwXw" name="Message1SendEvent" covered="_q-TwEJsbEeiGQY78R_GwXw" message="_5ar60JuvEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:DestructionOccurrenceSpecification" xmi:id="_tb0UUZsbEeiGQY78R_GwXw" name="Message2ReceiveDestroyEvent" covered="_raze0JsbEeiGQY78R_GwXw" message="_tbzGMJsbEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_uoHvYZsbEeiGQY78R_GwXw" name="ActionExecutionSpecification1Finish" covered="_q4usgJsbEeiGQY78R_GwXw" execution="_uoF6MJsbEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_E0898JscEeiGQY78R_GwXw" name="ActionExecutionSpecification3Start" covered="_q-TwEJsbEeiGQY78R_GwXw" execution="_E07IwJscEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_E07IwJscEeiGQY78R_GwXw" name="ActionExecutionSpecification3" covered="_q-TwEJsbEeiGQY78R_GwXw" finish="_E09lAJscEeiGQY78R_GwXw" start="_E0898JscEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:DestructionOccurrenceSpecification" xmi:id="_5auXEJuvEeiGQY78R_GwXw" name="Message1ReceiveDestroyEvent" covered="_rSgecJsbEeiGQY78R_GwXw" message="_5ar60JuvEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_E09lAJscEeiGQY78R_GwXw" name="ActionExecutionSpecification3Finish" covered="_q-TwEJsbEeiGQY78R_GwXw" execution="_E07IwJscEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_5n4BgJsbEeiGQY78R_GwXw" name="Message3SendEvent" covered="_q4usgJsbEeiGQY78R_GwXw" message="_5n2zYJsbEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_5n4BgZsbEeiGQY78R_GwXw" name="Message3ReceiveEvent" covered="_q-TwEJsbEeiGQY78R_GwXw" message="_5n2zYJsbEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_54aX4JsbEeiGQY78R_GwXw" name="Message4SendEvent" covered="_q-TwEJsbEeiGQY78R_GwXw" message="_54Zw0JsbEeiGQY78R_GwXw"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_54aX4ZsbEeiGQY78R_GwXw" name="Message4ReceiveEvent" covered="_q4usgJsbEeiGQY78R_GwXw" message="_54Zw0JsbEeiGQY78R_GwXw"/>
+ <message xmi:type="uml:Message" xmi:id="_tbzGMJsbEeiGQY78R_GwXw" name="Message2" messageSort="deleteMessage" receiveEvent="_tb0UUZsbEeiGQY78R_GwXw" sendEvent="_tb0UUJsbEeiGQY78R_GwXw"/>
+ <message xmi:type="uml:Message" xmi:id="_5n2zYJsbEeiGQY78R_GwXw" name="Message3" messageSort="asynchCall" receiveEvent="_5n4BgZsbEeiGQY78R_GwXw" sendEvent="_5n4BgJsbEeiGQY78R_GwXw"/>
+ <message xmi:type="uml:Message" xmi:id="_54Zw0JsbEeiGQY78R_GwXw" name="Message4" messageSort="asynchCall" receiveEvent="_54aX4ZsbEeiGQY78R_GwXw" sendEvent="_54aX4JsbEeiGQY78R_GwXw"/>
+ <message xmi:type="uml:Message" xmi:id="_5ar60JuvEeiGQY78R_GwXw" name="Message1" messageSort="deleteMessage" receiveEvent="_5auXEJuvEeiGQY78R_GwXw" sendEvent="_5atwAJuvEeiGQY78R_GwXw"/>
+ </packagedElement>
+</uml:Model>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug537571-times.di b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug537571-times.di
new file mode 100644
index 00000000000..8c549eecdc6
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug537571-times.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.infra.services.edit.TypeContext"/>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug537571-times.notation b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug537571-times.notation
new file mode 100644
index 00000000000..32cf86dacdc
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug537571-times.notation
@@ -0,0 +1,497 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_Oy700LVZEeiUzZPp6fDTcg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_QodzELVZEeiUzZPp6fDTcg" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QotqsLVZEeiUzZPp6fDTcg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QouRwLVZEeiUzZPp6fDTcg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QouRwbVZEeiUzZPp6fDTcg" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QowuALVZEeiUzZPp6fDTcg" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QowuAbVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QowuArVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QowuA7VZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QowuBLVZEeiUzZPp6fDTcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QoxVELVZEeiUzZPp6fDTcg" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QoxVEbVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QoxVErVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QoxVE7VZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QoxVFLVZEeiUzZPp6fDTcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QoxVFbVZEeiUzZPp6fDTcg" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QoxVFrVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QoxVF7VZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QoxVGLVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QoxVGbVZEeiUzZPp6fDTcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="bug537571-times.uml#_QoSz8LVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QodzEbVZEeiUzZPp6fDTcg" x="60" y="80"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_R0FRoLVZEeiUzZPp6fDTcg" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_R0F4sbVZEeiUzZPp6fDTcg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R0F4srVZEeiUzZPp6fDTcg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R0F4s7VZEeiUzZPp6fDTcg" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_R0F4tLVZEeiUzZPp6fDTcg" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_R0F4tbVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_R0F4trVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_R0F4t7VZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R0F4uLVZEeiUzZPp6fDTcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_R0F4ubVZEeiUzZPp6fDTcg" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_R0F4urVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_R0F4u7VZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_R0F4vLVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R0F4vbVZEeiUzZPp6fDTcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_R0F4vrVZEeiUzZPp6fDTcg" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_R0F4v7VZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_R0F4wLVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_R0F4wbVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R0F4wrVZEeiUzZPp6fDTcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="bug537571-times.uml#_R0COULVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R0F4sLVZEeiUzZPp6fDTcg" x="260" y="80"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SerGwLVZEeiUzZPp6fDTcg" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Sert0LVZEeiUzZPp6fDTcg" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Sert0bVZEeiUzZPp6fDTcg" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Sert0rVZEeiUzZPp6fDTcg" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Sert07VZEeiUzZPp6fDTcg" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Sert1LVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Sert1bVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Sert1rVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sert17VZEeiUzZPp6fDTcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Sert2LVZEeiUzZPp6fDTcg" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Sert2bVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Sert2rVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Sert27VZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sert3LVZEeiUzZPp6fDTcg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Sert3bVZEeiUzZPp6fDTcg" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Sert3rVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Sert37VZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Sert4LVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sert4bVZEeiUzZPp6fDTcg"/>
+ </children>
+ <element xmi:type="uml:Class" href="bug537571-times.uml#_SepRkLVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SerGwbVZEeiUzZPp6fDTcg" x="460" y="80"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_T7nBgLt9EeiBPK1YjKozYQ" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_T7nokLt9EeiBPK1YjKozYQ" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T7nokbt9EeiBPK1YjKozYQ" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T7nokrt9EeiBPK1YjKozYQ" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_T7nok7t9EeiBPK1YjKozYQ" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_T7nolLt9EeiBPK1YjKozYQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_T7nolbt9EeiBPK1YjKozYQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_T7nolrt9EeiBPK1YjKozYQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7nol7t9EeiBPK1YjKozYQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_T7nomLt9EeiBPK1YjKozYQ" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_T7nombt9EeiBPK1YjKozYQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_T7nomrt9EeiBPK1YjKozYQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_T7nom7t9EeiBPK1YjKozYQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7nonLt9EeiBPK1YjKozYQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_T7nonbt9EeiBPK1YjKozYQ" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_T7nonrt9EeiBPK1YjKozYQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_T7non7t9EeiBPK1YjKozYQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_T7nooLt9EeiBPK1YjKozYQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7noobt9EeiBPK1YjKozYQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="bug537571-times.uml#_T7POELt9EeiBPK1YjKozYQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T7nBgbt9EeiBPK1YjKozYQ" x="260" y="280"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Oy700bVZEeiUzZPp6fDTcg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Oy700rVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_Oy7007VZEeiUzZPp6fDTcg" diagramKindId="org.eclipse.papyrus.uml.diagram.class">
+ <owner xmi:type="uml:Model" href="bug537571-times.uml#_Ow1jELVZEeiUzZPp6fDTcg"/>
+ </styles>
+ <element xmi:type="uml:Model" href="bug537571-times.uml#_Ow1jELVZEeiUzZPp6fDTcg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_TfYV0LVZEeiUzZPp6fDTcg" type="Association_Edge" source="_QodzELVZEeiUzZPp6fDTcg" target="_R0FRoLVZEeiUzZPp6fDTcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TfYV07VZEeiUzZPp6fDTcg" type="Association_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TfYV1LVZEeiUzZPp6fDTcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TfYV1bVZEeiUzZPp6fDTcg" type="Association_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TfYV1rVZEeiUzZPp6fDTcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TfY84LVZEeiUzZPp6fDTcg" type="Association_TargetRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TfY84bVZEeiUzZPp6fDTcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TfY84rVZEeiUzZPp6fDTcg" type="Association_SourceRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TfY847VZEeiUzZPp6fDTcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TfY85LVZEeiUzZPp6fDTcg" type="Association_SourceMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TfY85bVZEeiUzZPp6fDTcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TfY85rVZEeiUzZPp6fDTcg" type="Association_TargetMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TfY857VZEeiUzZPp6fDTcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_TfYV0bVZEeiUzZPp6fDTcg"/>
+ <element xmi:type="uml:Association" href="bug537571-times.uml#_TfGpALVZEeiUzZPp6fDTcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TfYV0rVZEeiUzZPp6fDTcg" points="[160, 100, -643984, -643984]$[260, 100, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TgiMYLVZEeiUzZPp6fDTcg" id="(1.0,0.2)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TgiMYbVZEeiUzZPp6fDTcg" id="(0.0,0.2)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_UG5o0LVZEeiUzZPp6fDTcg" type="Association_Edge" source="_R0FRoLVZEeiUzZPp6fDTcg" target="_SerGwLVZEeiUzZPp6fDTcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_UG5o07VZEeiUzZPp6fDTcg" type="Association_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UG5o1LVZEeiUzZPp6fDTcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UG5o1bVZEeiUzZPp6fDTcg" type="Association_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UG5o1rVZEeiUzZPp6fDTcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UG5o17VZEeiUzZPp6fDTcg" type="Association_TargetRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UG5o2LVZEeiUzZPp6fDTcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UG5o2bVZEeiUzZPp6fDTcg" type="Association_SourceRoleLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UG5o2rVZEeiUzZPp6fDTcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UG5o27VZEeiUzZPp6fDTcg" type="Association_SourceMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UG5o3LVZEeiUzZPp6fDTcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UG5o3bVZEeiUzZPp6fDTcg" type="Association_TargetMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UG5o3rVZEeiUzZPp6fDTcg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_UG5o0bVZEeiUzZPp6fDTcg"/>
+ <element xmi:type="uml:Association" href="bug537571-times.uml#_UGuCoLVZEeiUzZPp6fDTcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UG5o0rVZEeiUzZPp6fDTcg" points="[360, 100, -643984, -643984]$[460, 100, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UHYJ8LVZEeiUzZPp6fDTcg" id="(1.0,0.2)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UHYJ8bVZEeiUzZPp6fDTcg" id="(0.0,0.2)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_VQDE4Lt9EeiBPK1YjKozYQ" type="Association_Edge" source="_SerGwLVZEeiUzZPp6fDTcg" target="_T7nBgLt9EeiBPK1YjKozYQ" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_VQDE47t9EeiBPK1YjKozYQ" type="Association_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Xe2ewLt9EeiBPK1YjKozYQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VQDE5Lt9EeiBPK1YjKozYQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VQDE5bt9EeiBPK1YjKozYQ" type="Association_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Xe-akLt9EeiBPK1YjKozYQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VQDE5rt9EeiBPK1YjKozYQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VQDE57t9EeiBPK1YjKozYQ" type="Association_TargetRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_XfGWYLt9EeiBPK1YjKozYQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VQDE6Lt9EeiBPK1YjKozYQ" x="39" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VQDE6bt9EeiBPK1YjKozYQ" type="Association_SourceRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_XfO5QLt9EeiBPK1YjKozYQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VQDE6rt9EeiBPK1YjKozYQ" x="-39" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VQDE67t9EeiBPK1YjKozYQ" type="Association_SourceMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_XfWOALt9EeiBPK1YjKozYQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VQDE7Lt9EeiBPK1YjKozYQ" x="39" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VQDE7bt9EeiBPK1YjKozYQ" type="Association_TargetMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Xfh0MLt9EeiBPK1YjKozYQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VQDE7rt9EeiBPK1YjKozYQ" x="-39" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_VQDE4bt9EeiBPK1YjKozYQ"/>
+ <element xmi:type="uml:Association" href="bug537571-times.uml#_VPx_ILt9EeiBPK1YjKozYQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VQDE4rt9EeiBPK1YjKozYQ" points="[500, 180, -643984, -643984]$[500, 300, -643984, -643984]$[360, 300, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VQeisLt9EeiBPK1YjKozYQ" id="(0.4,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VQeisbt9EeiBPK1YjKozYQ" id="(1.0,0.2)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_ikWw4LVZEeiUzZPp6fDTcg" type="CompositeStructure" name="structure" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_ikYmELVZEeiUzZPp6fDTcg" type="Collaboration_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ikYmErVZEeiUzZPp6fDTcg" type="Collaboration_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ikYmE7VZEeiUzZPp6fDTcg" type="Collaboration_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ikYmFLVZEeiUzZPp6fDTcg" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ikYmFbVZEeiUzZPp6fDTcg" type="Collaboration_StructureCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_jNfNcLVZEeiUzZPp6fDTcg" type="Property_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jNf0gLVZEeiUzZPp6fDTcg" type="Property_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jNf0gbVZEeiUzZPp6fDTcg" type="Property_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jNf0grVZEeiUzZPp6fDTcg" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jNf0g7VZEeiUzZPp6fDTcg" type="Property_StructureCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jNf0hLVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jNf0hbVZEeiUzZPp6fDTcg"/>
+ </children>
+ <element xmi:type="uml:Property" href="bug537571-times.uml#_jNXRoLVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jNfNcbVZEeiUzZPp6fDTcg" x="47" y="47"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_js2qALVZEeiUzZPp6fDTcg" type="Property_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_js3RELVZEeiUzZPp6fDTcg" type="Property_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_js3REbVZEeiUzZPp6fDTcg" type="Property_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_js3RErVZEeiUzZPp6fDTcg" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_js3RE7VZEeiUzZPp6fDTcg" type="Property_StructureCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_js3RFLVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_js3RFbVZEeiUzZPp6fDTcg"/>
+ </children>
+ <element xmi:type="uml:Property" href="bug537571-times.uml#_jsxxgLVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_js2qAbVZEeiUzZPp6fDTcg" x="255" y="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kEqtELVZEeiUzZPp6fDTcg" type="Property_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kErUILVZEeiUzZPp6fDTcg" type="Property_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kErUIbVZEeiUzZPp6fDTcg" type="Property_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kErUIrVZEeiUzZPp6fDTcg" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kErUI7VZEeiUzZPp6fDTcg" type="Property_StructureCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kErUJLVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kErUJbVZEeiUzZPp6fDTcg"/>
+ </children>
+ <element xmi:type="uml:Property" href="bug537571-times.uml#_kEnCsLVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kEqtEbVZEeiUzZPp6fDTcg" x="234" y="142"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_juIfELt9EeiBPK1YjKozYQ" type="Property_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_juJGILt9EeiBPK1YjKozYQ" type="Property_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_juJGIbt9EeiBPK1YjKozYQ" type="Property_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_juJGIrt9EeiBPK1YjKozYQ" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_juJGI7t9EeiBPK1YjKozYQ" type="Property_StructureCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_juJGJLt9EeiBPK1YjKozYQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_juJGJbt9EeiBPK1YjKozYQ"/>
+ </children>
+ <element xmi:type="uml:Property" href="bug537571-times.uml#_jt844Lt9EeiBPK1YjKozYQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_juIfEbt9EeiBPK1YjKozYQ" x="34" y="142"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ikYmFrVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ikYmF7VZEeiUzZPp6fDTcg"/>
+ </children>
+ <element xmi:type="uml:Collaboration" href="bug537571-times.uml#_Z_udYLVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ikYmEbVZEeiUzZPp6fDTcg" x="40" y="40" width="500" height="250"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ikWw4bVZEeiUzZPp6fDTcg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ikWw4rVZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_ikWw47VZEeiUzZPp6fDTcg" diagramKindId="org.eclipse.papyrus.uml.diagram.compositeStructure.root.structuredClassifier">
+ <owner xmi:type="uml:Collaboration" href="bug537571-times.uml#_Z_udYLVZEeiUzZPp6fDTcg"/>
+ </styles>
+ <element xmi:type="uml:Collaboration" href="bug537571-times.uml#_Z_udYLVZEeiUzZPp6fDTcg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_lBWXwLVZEeiUzZPp6fDTcg" type="Connector_Edge" source="_jNfNcLVZEeiUzZPp6fDTcg" target="_js2qALVZEeiUzZPp6fDTcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lBWXw7VZEeiUzZPp6fDTcg" type="Connector_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lBWXxLVZEeiUzZPp6fDTcg" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lBWXxbVZEeiUzZPp6fDTcg" type="Connector_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lBWXxrVZEeiUzZPp6fDTcg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lBWXx7VZEeiUzZPp6fDTcg" type="Connector_SourceMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lBWXyLVZEeiUzZPp6fDTcg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lBWXybVZEeiUzZPp6fDTcg" type="Connector_TargetMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lBWXyrVZEeiUzZPp6fDTcg" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_lBWXwbVZEeiUzZPp6fDTcg"/>
+ <element xmi:type="uml:Connector" href="bug537571-times.uml#_lBHHMLVZEeiUzZPp6fDTcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lBWXwrVZEeiUzZPp6fDTcg" points="[140, 125, -643984, -643984]$[320, 129, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lB1f8LVZEeiUzZPp6fDTcg" id="(1.0,0.32608695652173914)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lB1f8bVZEeiUzZPp6fDTcg" id="(0.0,0.2391304347826087)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_m7xdELVZEeiUzZPp6fDTcg" type="Connector_Edge" source="_js2qALVZEeiUzZPp6fDTcg" target="_kEqtELVZEeiUzZPp6fDTcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_m7xdE7VZEeiUzZPp6fDTcg" type="Connector_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_hHw5wLt9EeiBPK1YjKozYQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m7xdFLVZEeiUzZPp6fDTcg" x="1" y="58"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_m7xdFbVZEeiUzZPp6fDTcg" type="Connector_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_hH2ZULt9EeiBPK1YjKozYQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m7xdFrVZEeiUzZPp6fDTcg" x="7" y="-26"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_m7xdF7VZEeiUzZPp6fDTcg" type="Connector_SourceMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_hH7R0Lt9EeiBPK1YjKozYQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m7xdGLVZEeiUzZPp6fDTcg" x="-7" y="16"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_m7xdGbVZEeiUzZPp6fDTcg" type="Connector_TargetMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_hIAKULt9EeiBPK1YjKozYQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m7xdGrVZEeiUzZPp6fDTcg" x="10" y="16"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_m7xdEbVZEeiUzZPp6fDTcg"/>
+ <element xmi:type="uml:Connector" href="bug537571-times.uml#_m7qvYLVZEeiUzZPp6fDTcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_m7xdErVZEeiUzZPp6fDTcg" points="[340, 175, -643984, -643984]$[300, 218, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m8AGkLVZEeiUzZPp6fDTcg" id="(0.4148936170212766,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m8AtoLVZEeiUzZPp6fDTcg" id="(0.5357142857142857,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ks_UALt9EeiBPK1YjKozYQ" type="Connector_Edge" source="_kEqtELVZEeiUzZPp6fDTcg" target="_juIfELt9EeiBPK1YjKozYQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ks_UA7t9EeiBPK1YjKozYQ" type="Connector_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ks_UBLt9EeiBPK1YjKozYQ" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ks_UBbt9EeiBPK1YjKozYQ" type="Connector_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ks_7ELt9EeiBPK1YjKozYQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ks_7Ebt9EeiBPK1YjKozYQ" type="Connector_SourceMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ks_7Ert9EeiBPK1YjKozYQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ks_7E7t9EeiBPK1YjKozYQ" type="Connector_TargetMultiplicityLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ks_7FLt9EeiBPK1YjKozYQ" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ks_UAbt9EeiBPK1YjKozYQ"/>
+ <element xmi:type="uml:Connector" href="bug537571-times.uml#_ks3YMLt9EeiBPK1YjKozYQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ks_UArt9EeiBPK1YjKozYQ" points="[280, 240, -643984, -643984]$[210, 240, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ktPysLt9EeiBPK1YjKozYQ" id="(0.0,0.43478260869565216)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ktQZwLt9EeiBPK1YjKozYQ" id="(1.0,0.43478260869565216)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_sQzBALVZEeiUzZPp6fDTcg" type="PapyrusUMLSequenceDiagram" name="scenario" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_sQzBAbVZEeiUzZPp6fDTcg" type="Interaction_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_sQzBArVZEeiUzZPp6fDTcg" type="Interaction_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sQzBA7VZEeiUzZPp6fDTcg" type="Interaction_SubfragmentCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_t3i8YLVZEeiUzZPp6fDTcg" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_t3i8YrVZEeiUzZPp6fDTcg" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_XdWMILp7EeiqHsvDY6I0Gg" type="ActionExecutionSpecification_Shape">
+ <element xmi:type="uml:ActionExecutionSpecification" href="bug537571-times.uml#_Xa7KQLp7EeiqHsvDY6I0Gg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XdWMIbp7EeiqHsvDY6I0Gg" x="40" y="325" width="20" height="100"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug537571-times.uml#_t3f5ELVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t3i8YbVZEeiUzZPp6fDTcg" x="83" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uRwMILVZEeiUzZPp6fDTcg" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uRwMIrVZEeiUzZPp6fDTcg" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_3hGQkLVZEeiUzZPp6fDTcg" type="BehaviorExecutionSpecification_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3hG3oLVZEeiUzZPp6fDTcg" type="BehaviorExecutionSpecification_Behavior">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3hG3obVZEeiUzZPp6fDTcg" x="18" y="18"/>
+ </children>
+ <element xmi:type="uml:BehaviorExecutionSpecification" href="bug537571-times.uml#_3hEbYLVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3hGQkbVZEeiUzZPp6fDTcg" x="40" y="90" width="20" height="101"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug537571-times.uml#_uRtI0LVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uRwMIbVZEeiUzZPp6fDTcg" x="251" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_upCqwLVZEeiUzZPp6fDTcg" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_upCqwrVZEeiUzZPp6fDTcg" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_k_pLULXMEeickIck9Vt91A" type="DestructionOccurrenceSpecification_Shape">
+ <element xmi:type="uml:DestructionOccurrenceSpecification" href="bug537571-times.uml#_k_MfYLXMEeickIck9Vt91A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k_pyYLXMEeickIck9Vt91A" x="50" y="191"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug537571-times.uml#_uo_AYLVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_upCqwbVZEeiUzZPp6fDTcg" x="526" y="101" width="100" height="212"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O0G8MLt9EeiBPK1YjKozYQ" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O0G8Mrt9EeiBPK1YjKozYQ" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:Shape" xmi:id="_4xdH4Lt9EeiBPK1YjKozYQ" type="DestructionOccurrenceSpecification_Shape">
+ <element xmi:type="uml:DestructionOccurrenceSpecification" href="bug537571-times.uml#_4w4gILt9EeiBPK1YjKozYQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4xdH4bt9EeiBPK1YjKozYQ" x="43" y="106"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug537571-times.uml#_Oz9yQLt9EeiBPK1YjKozYQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O0G8Mbt9EeiBPK1YjKozYQ" x="382" y="203" width="100" height="52"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sQzBBLVZEeiUzZPp6fDTcg"/>
+ </children>
+ <element xmi:type="uml:Interaction" href="bug537571-times.uml#_phfiILVZEeiUzZPp6fDTcg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sQzBBbVZEeiUzZPp6fDTcg"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_sQzBBrVZEeiUzZPp6fDTcg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_sQzBB7VZEeiUzZPp6fDTcg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_sQzBCLVZEeiUzZPp6fDTcg" diagramKindId="org.eclipse.papyrus.uml.diagram.sequence">
+ <owner xmi:type="uml:Interaction" href="bug537571-times.uml#_phfiILVZEeiUzZPp6fDTcg"/>
+ </styles>
+ <element xmi:type="uml:Interaction" href="bug537571-times.uml#_phfiILVZEeiUzZPp6fDTcg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3gS_ULVZEeiUzZPp6fDTcg" type="Message_SynchEdge" source="_t3i8YLVZEeiUzZPp6fDTcg" target="_uRwMILVZEeiUzZPp6fDTcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3gS_U7VZEeiUzZPp6fDTcg" type="Message_SynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3gS_VLVZEeiUzZPp6fDTcg" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3gS_VbVZEeiUzZPp6fDTcg" type="Message_SynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3gS_VrVZEeiUzZPp6fDTcg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3gS_UbVZEeiUzZPp6fDTcg"/>
+ <element xmi:type="uml:Message" href="bug537571-times.uml#_3gEV0LVZEeiUzZPp6fDTcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3gS_UrVZEeiUzZPp6fDTcg" points="[0, 0, -168, 0]$[168, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3g8fkLVZEeiUzZPp6fDTcg" id="(0.5,0.12857142857142856)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3g8fkbVZEeiUzZPp6fDTcg" id="(0.5,0.12857142857142856)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3hLwILVZEeiUzZPp6fDTcg" type="Message_ReplyEdge" source="_uRwMILVZEeiUzZPp6fDTcg" target="_t3i8YLVZEeiUzZPp6fDTcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3hLwI7VZEeiUzZPp6fDTcg" type="Message_ReplyNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3hLwJLVZEeiUzZPp6fDTcg" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3hLwJbVZEeiUzZPp6fDTcg" type="Message_ReplyStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3hLwJrVZEeiUzZPp6fDTcg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3hLwIbVZEeiUzZPp6fDTcg"/>
+ <element xmi:type="uml:Message" href="bug537571-times.uml#_3hKiALVZEeiUzZPp6fDTcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3hLwIrVZEeiUzZPp6fDTcg" points="[0, 0, 168, 0]$[-168, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3hMXMLVZEeiUzZPp6fDTcg" id="(0.5,0.2714285714285714)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3hMXMbVZEeiUzZPp6fDTcg" id="(0.5,0.2714285714285714)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_4W86gLVZEeiUzZPp6fDTcg" type="Message_AsynchEdge" source="_uRwMILVZEeiUzZPp6fDTcg" target="_upCqwLVZEeiUzZPp6fDTcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4W9hkLVZEeiUzZPp6fDTcg" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4W9hkbVZEeiUzZPp6fDTcg" x="31" y="-23"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4W9hkrVZEeiUzZPp6fDTcg" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4W9hk7VZEeiUzZPp6fDTcg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4W86gbVZEeiUzZPp6fDTcg"/>
+ <element xmi:type="uml:Message" href="bug537571-times.uml#_4W2M0LVZEeiUzZPp6fDTcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4W86grVZEeiUzZPp6fDTcg" points="[-10, 2, -181, -20]$[171, 22, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4XVVALVZEeiUzZPp6fDTcg" id="(0.5,0.16428571428571428)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4XV8ELVZEeiUzZPp6fDTcg" id="(0.5,0.27830188679245293)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_5ni_sLVZEeiUzZPp6fDTcg" type="Message_AsynchEdge" source="_upCqwLVZEeiUzZPp6fDTcg" target="_uRwMILVZEeiUzZPp6fDTcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5ni_s7VZEeiUzZPp6fDTcg" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5ni_tLVZEeiUzZPp6fDTcg" x="12" y="15"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5njmwLVZEeiUzZPp6fDTcg" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_5njmwbVZEeiUzZPp6fDTcg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_5ni_sbVZEeiUzZPp6fDTcg"/>
+ <element xmi:type="uml:Message" href="bug537571-times.uml#_5nc5ELVZEeiUzZPp6fDTcg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_5ni_srVZEeiUzZPp6fDTcg" points="[0, 0, 171, 0]$[-181, 0, -10, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5nxCILVZEeiUzZPp6fDTcg" id="(0.5,0.3726415094339622)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5nxCIbVZEeiUzZPp6fDTcg" id="(0.5,0.24285714285714285)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QTnBILXMEeickIck9Vt91A" type="Message_CreateEdge" source="_uRwMILVZEeiUzZPp6fDTcg" target="_upCqwLVZEeiUzZPp6fDTcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QTnBI7XMEeickIck9Vt91A" type="Message_CreateNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QTnBJLXMEeickIck9Vt91A" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QTnBJbXMEeickIck9Vt91A" type="Message_CreateStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QTnBJrXMEeickIck9Vt91A" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QTnBIbXMEeickIck9Vt91A"/>
+ <element xmi:type="uml:Message" href="bug537571-times.uml#_QTcpELXMEeickIck9Vt91A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QTnBIrXMEeickIck9Vt91A" points="[10, -1, -161, 5]$[171, -6, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QUE7MLXMEeickIck9Vt91A" id="(0.5,0.14)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QUE7MbXMEeickIck9Vt91A" id="(0.5,0.033018867924528336)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_k_SmALXMEeickIck9Vt91A" type="Message_DeleteEdge" source="_uRwMILVZEeiUzZPp6fDTcg" target="_upCqwLVZEeiUzZPp6fDTcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_k_TNELXMEeickIck9Vt91A" type="Message_DeleteNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_k_TNEbXMEeickIck9Vt91A" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_k_TNErXMEeickIck9Vt91A" type="Message_DeleteStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_k_TNE7XMEeickIck9Vt91A" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_k_SmAbXMEeickIck9Vt91A"/>
+ <element xmi:type="uml:Message" href="bug537571-times.uml#_k_L4ULXMEeickIck9Vt91A"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_k_SmArXMEeickIck9Vt91A" points="[0, 0, -171, 0]$[171, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_k_gocLXMEeickIck9Vt91A" id="(0.5,0.4328571428571429)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_k_gocbXMEeickIck9Vt91A" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZKlKALp7EeiqHsvDY6I0Gg" type="Message_SynchEdge" source="_uRwMILVZEeiUzZPp6fDTcg" target="_t3i8YLVZEeiUzZPp6fDTcg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZKlxELp7EeiqHsvDY6I0Gg" type="Message_SynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZKlxEbp7EeiqHsvDY6I0Gg" x="1" y="14"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZKlxErp7EeiqHsvDY6I0Gg" type="Message_SynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZKlxE7p7EeiqHsvDY6I0Gg" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZKlKAbp7EeiqHsvDY6I0Gg"/>
+ <element xmi:type="uml:Message" href="bug537571-times.uml#_ZKC-gLp7EeiqHsvDY6I0Gg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZKlKArp7EeiqHsvDY6I0Gg" points="[0, 0, 168, 0]$[-158, 0, 10, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZLiMQLp7EeiqHsvDY6I0Gg" id="(0.5,0.5257142857142857)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZLiMQbp7EeiqHsvDY6I0Gg" id="(0.5,0.5257142857142857)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_xxV7ILt9EeiBPK1YjKozYQ" type="Message_CreateEdge" source="_upCqwLVZEeiUzZPp6fDTcg" target="_O0G8MLt9EeiBPK1YjKozYQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_xxWiMLt9EeiBPK1YjKozYQ" type="Message_CreateNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xxWiMbt9EeiBPK1YjKozYQ" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xxWiMrt9EeiBPK1YjKozYQ" type="Message_CreateStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xxWiM7t9EeiBPK1YjKozYQ" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_xxV7Ibt9EeiBPK1YjKozYQ"/>
+ <element xmi:type="uml:Message" href="bug537571-times.uml#_xxDnQLt9EeiBPK1YjKozYQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xxV7Irt9EeiBPK1YjKozYQ" points="[0, 0, -147, 0]$[147, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xxrSULt9EeiBPK1YjKozYQ" id="(0.5,0.5141509433962265)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xxrSUbt9EeiBPK1YjKozYQ" id="(0.5,0.13461538461538414)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_4xEGULt9EeiBPK1YjKozYQ" type="Message_DeleteEdge" source="_upCqwLVZEeiUzZPp6fDTcg" target="_O0G8MLt9EeiBPK1YjKozYQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4xEGU7t9EeiBPK1YjKozYQ" type="Message_DeleteNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4xEGVLt9EeiBPK1YjKozYQ" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4xEGVbt9EeiBPK1YjKozYQ" type="Message_DeleteStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4xEGVrt9EeiBPK1YjKozYQ" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4xEGUbt9EeiBPK1YjKozYQ"/>
+ <element xmi:type="uml:Message" href="bug537571-times.uml#_4wwkULt9EeiBPK1YjKozYQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4xEGUrt9EeiBPK1YjKozYQ" points="[0, 0, 144, 0]$[-144, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4xT98Lt9EeiBPK1YjKozYQ" id="(0.5,0.7264150943396226)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4xT98bt9EeiBPK1YjKozYQ" id="(0.5,1.0)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug537571-times.uml b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug537571-times.uml
new file mode 100644
index 00000000000..8b8c650f7e4
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug537571-times.uml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_Ow1jELVZEeiUzZPp6fDTcg" name="times">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_O79N8LVZEeiUzZPp6fDTcg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Class" xmi:id="_QoSz8LVZEeiUzZPp6fDTcg" name="Foo">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_TfJFQLVZEeiUzZPp6fDTcg" name="bar" type="_R0COULVZEeiUzZPp6fDTcg" association="_TfGpALVZEeiUzZPp6fDTcg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TfKTYLVZEeiUzZPp6fDTcg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TfK6cLVZEeiUzZPp6fDTcg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_R0COULVZEeiUzZPp6fDTcg" name="Bar">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_UGupsLVZEeiUzZPp6fDTcg" name="thing" type="_SepRkLVZEeiUzZPp6fDTcg" association="_UGuCoLVZEeiUzZPp6fDTcg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UGupsbVZEeiUzZPp6fDTcg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UGupsrVZEeiUzZPp6fDTcg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SepRkLVZEeiUzZPp6fDTcg" name="Thing">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_VP4FwLt9EeiBPK1YjKozYQ" name="whatsit" type="_T7POELt9EeiBPK1YjKozYQ" association="_VPx_ILt9EeiBPK1YjKozYQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VP568Lt9EeiBPK1YjKozYQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_VP568bt9EeiBPK1YjKozYQ" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_TfGpALVZEeiUzZPp6fDTcg" memberEnd="_TfJFQLVZEeiUzZPp6fDTcg _TfK6cbVZEeiUzZPp6fDTcg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TfH3ILVZEeiUzZPp6fDTcg" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TfIeMLVZEeiUzZPp6fDTcg" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_TfK6cbVZEeiUzZPp6fDTcg" name="foo" type="_QoSz8LVZEeiUzZPp6fDTcg" association="_TfGpALVZEeiUzZPp6fDTcg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_UGuCoLVZEeiUzZPp6fDTcg" memberEnd="_UGupsLVZEeiUzZPp6fDTcg _UGups7VZEeiUzZPp6fDTcg">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UGuCobVZEeiUzZPp6fDTcg" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UGuCorVZEeiUzZPp6fDTcg" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_UGups7VZEeiUzZPp6fDTcg" name="bar" type="_R0COULVZEeiUzZPp6fDTcg" association="_UGuCoLVZEeiUzZPp6fDTcg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Collaboration" xmi:id="_Z_udYLVZEeiUzZPp6fDTcg" name="scenario">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_jNXRoLVZEeiUzZPp6fDTcg" name="foo" type="_QoSz8LVZEeiUzZPp6fDTcg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_jsxxgLVZEeiUzZPp6fDTcg" name="bar" type="_R0COULVZEeiUzZPp6fDTcg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_kEnCsLVZEeiUzZPp6fDTcg" name="thing" type="_SepRkLVZEeiUzZPp6fDTcg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_jt844Lt9EeiBPK1YjKozYQ" name="whatsit" type="_T7POELt9EeiBPK1YjKozYQ"/>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_lBHHMLVZEeiUzZPp6fDTcg" name="Connector4">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_lBPDALVZEeiUzZPp6fDTcg" role="_jNXRoLVZEeiUzZPp6fDTcg"/>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_lBPqELVZEeiUzZPp6fDTcg" role="_jsxxgLVZEeiUzZPp6fDTcg"/>
+ </ownedConnector>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_m7qvYLVZEeiUzZPp6fDTcg" name="Connector5">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_m7rWcLVZEeiUzZPp6fDTcg" role="_jsxxgLVZEeiUzZPp6fDTcg"/>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_m7rWcbVZEeiUzZPp6fDTcg" role="_kEnCsLVZEeiUzZPp6fDTcg"/>
+ </ownedConnector>
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_ks3YMLt9EeiBPK1YjKozYQ" name="Connector8">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_ks5NYLt9EeiBPK1YjKozYQ" role="_kEnCsLVZEeiUzZPp6fDTcg"/>
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_ks5NYbt9EeiBPK1YjKozYQ" role="_jt844Lt9EeiBPK1YjKozYQ"/>
+ </ownedConnector>
+ <ownedBehavior xmi:type="uml:Interaction" xmi:id="_phfiILVZEeiUzZPp6fDTcg" name="interaction">
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_t3f5ELVZEeiUzZPp6fDTcg" name="foo" represents="_jNXRoLVZEeiUzZPp6fDTcg" coveredBy="_3gLqkLVZEeiUzZPp6fDTcg _3hLJEbVZEeiUzZPp6fDTcg _XbUy4Lp7EeiqHsvDY6I0Gg _Xa7KQLp7EeiqHsvDY6I0Gg _ZKJsMLp7EeiqHsvDY6I0Gg _XbVZ8Lp7EeiqHsvDY6I0Gg"/>
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_uRtI0LVZEeiUzZPp6fDTcg" name="bar" represents="_jsxxgLVZEeiUzZPp6fDTcg" coveredBy="_3gMRoLVZEeiUzZPp6fDTcg _QTdQILXMEeickIck9Vt91A _4W2z4LVZEeiUzZPp6fDTcg _5nc5ErVZEeiUzZPp6fDTcg _3hLJELVZEeiUzZPp6fDTcg _k_L4UbXMEeickIck9Vt91A _ZKJFILp7EeiqHsvDY6I0Gg _3hEbYLVZEeiUzZPp6fDTcg"/>
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_uo_AYLVZEeiUzZPp6fDTcg" name="thing" represents="_kEnCsLVZEeiUzZPp6fDTcg" coveredBy="_QTd3MLXMEeickIck9Vt91A _4W2z4bVZEeiUzZPp6fDTcg _5nc5EbVZEeiUzZPp6fDTcg _xxK8ALt9EeiBPK1YjKozYQ _4wzAkLt9EeiBPK1YjKozYQ _k_MfYLXMEeickIck9Vt91A"/>
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_Oz9yQLt9EeiBPK1YjKozYQ" name="whatsit" represents="_jt844Lt9EeiBPK1YjKozYQ" coveredBy="_xxMKILt9EeiBPK1YjKozYQ _4w4gILt9EeiBPK1YjKozYQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_3gLqkLVZEeiUzZPp6fDTcg" name="message1-send" covered="_t3f5ELVZEeiUzZPp6fDTcg" message="_3gEV0LVZEeiUzZPp6fDTcg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_3gMRoLVZEeiUzZPp6fDTcg" name="message1-recv" covered="_uRtI0LVZEeiUzZPp6fDTcg" message="_3gEV0LVZEeiUzZPp6fDTcg"/>
+ <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_3hEbYLVZEeiUzZPp6fDTcg" name="exec1" covered="_uRtI0LVZEeiUzZPp6fDTcg" finish="_3hLJELVZEeiUzZPp6fDTcg" start="_3gMRoLVZEeiUzZPp6fDTcg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_QTdQILXMEeickIck9Vt91A" name="create1-send" covered="_uRtI0LVZEeiUzZPp6fDTcg" message="_QTcpELXMEeickIck9Vt91A"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_QTd3MLXMEeickIck9Vt91A" name="create1-recv" covered="_uo_AYLVZEeiUzZPp6fDTcg" message="_QTcpELXMEeickIck9Vt91A"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_4W2z4LVZEeiUzZPp6fDTcg" name="message2-send" covered="_uRtI0LVZEeiUzZPp6fDTcg" message="_4W2M0LVZEeiUzZPp6fDTcg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_4W2z4bVZEeiUzZPp6fDTcg" name="message2-recv" covered="_uo_AYLVZEeiUzZPp6fDTcg" message="_4W2M0LVZEeiUzZPp6fDTcg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_5nc5EbVZEeiUzZPp6fDTcg" name="message3-send" covered="_uo_AYLVZEeiUzZPp6fDTcg" message="_5nc5ELVZEeiUzZPp6fDTcg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_5nc5ErVZEeiUzZPp6fDTcg" name="message3-recv" covered="_uRtI0LVZEeiUzZPp6fDTcg" message="_5nc5ELVZEeiUzZPp6fDTcg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_3hLJELVZEeiUzZPp6fDTcg" name="reply1-send" covered="_uRtI0LVZEeiUzZPp6fDTcg" message="_3hKiALVZEeiUzZPp6fDTcg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_3hLJEbVZEeiUzZPp6fDTcg" name="reply1-recv" covered="_t3f5ELVZEeiUzZPp6fDTcg" message="_3hKiALVZEeiUzZPp6fDTcg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_xxK8ALt9EeiBPK1YjKozYQ" name="create2-send" covered="_uo_AYLVZEeiUzZPp6fDTcg" message="_xxDnQLt9EeiBPK1YjKozYQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_xxMKILt9EeiBPK1YjKozYQ" name="create2-recv" covered="_Oz9yQLt9EeiBPK1YjKozYQ" message="_xxDnQLt9EeiBPK1YjKozYQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_4wzAkLt9EeiBPK1YjKozYQ" name="delete1-send" covered="_uo_AYLVZEeiUzZPp6fDTcg" message="_4wwkULt9EeiBPK1YjKozYQ"/>
+ <fragment xmi:type="uml:DestructionOccurrenceSpecification" xmi:id="_4w4gILt9EeiBPK1YjKozYQ" name="destroy1" covered="_Oz9yQLt9EeiBPK1YjKozYQ" message="_4wwkULt9EeiBPK1YjKozYQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_k_L4UbXMEeickIck9Vt91A" name="delete2-send" covered="_uRtI0LVZEeiUzZPp6fDTcg" message="_k_L4ULXMEeickIck9Vt91A"/>
+ <fragment xmi:type="uml:DestructionOccurrenceSpecification" xmi:id="_k_MfYLXMEeickIck9Vt91A" name="destroy2" covered="_uo_AYLVZEeiUzZPp6fDTcg" message="_k_L4ULXMEeickIck9Vt91A"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_XbUy4Lp7EeiqHsvDY6I0Gg" name="exec2-start" covered="_t3f5ELVZEeiUzZPp6fDTcg" execution="_Xa7KQLp7EeiqHsvDY6I0Gg"/>
+ <fragment xmi:type="uml:ActionExecutionSpecification" xmi:id="_Xa7KQLp7EeiqHsvDY6I0Gg" name="exec2" covered="_t3f5ELVZEeiUzZPp6fDTcg" finish="_XbVZ8Lp7EeiqHsvDY6I0Gg" start="_XbUy4Lp7EeiqHsvDY6I0Gg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_ZKJFILp7EeiqHsvDY6I0Gg" name="message4-send" covered="_uRtI0LVZEeiUzZPp6fDTcg" message="_ZKC-gLp7EeiqHsvDY6I0Gg"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_ZKJsMLp7EeiqHsvDY6I0Gg" name="message4-recv" covered="_t3f5ELVZEeiUzZPp6fDTcg" message="_ZKC-gLp7EeiqHsvDY6I0Gg"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_XbVZ8Lp7EeiqHsvDY6I0Gg" name="exec2-finish" covered="_t3f5ELVZEeiUzZPp6fDTcg" execution="_Xa7KQLp7EeiqHsvDY6I0Gg"/>
+ <message xmi:type="uml:Message" xmi:id="_3gEV0LVZEeiUzZPp6fDTcg" name="message1" receiveEvent="_3gMRoLVZEeiUzZPp6fDTcg" sendEvent="_3gLqkLVZEeiUzZPp6fDTcg"/>
+ <message xmi:type="uml:Message" xmi:id="_QTcpELXMEeickIck9Vt91A" name="create1" messageSort="createMessage" receiveEvent="_QTd3MLXMEeickIck9Vt91A" sendEvent="_QTdQILXMEeickIck9Vt91A"/>
+ <message xmi:type="uml:Message" xmi:id="_4W2M0LVZEeiUzZPp6fDTcg" name="message2" messageSort="asynchCall" receiveEvent="_4W2z4bVZEeiUzZPp6fDTcg" sendEvent="_4W2z4LVZEeiUzZPp6fDTcg"/>
+ <message xmi:type="uml:Message" xmi:id="_5nc5ELVZEeiUzZPp6fDTcg" name="message3" messageSort="asynchCall" receiveEvent="_5nc5ErVZEeiUzZPp6fDTcg" sendEvent="_5nc5EbVZEeiUzZPp6fDTcg"/>
+ <message xmi:type="uml:Message" xmi:id="_3hKiALVZEeiUzZPp6fDTcg" name="reply1" messageSort="reply" receiveEvent="_3hLJEbVZEeiUzZPp6fDTcg" sendEvent="_3hLJELVZEeiUzZPp6fDTcg"/>
+ <message xmi:type="uml:Message" xmi:id="_xxDnQLt9EeiBPK1YjKozYQ" name="create2" messageSort="createMessage" receiveEvent="_xxMKILt9EeiBPK1YjKozYQ" sendEvent="_xxK8ALt9EeiBPK1YjKozYQ"/>
+ <message xmi:type="uml:Message" xmi:id="_4wwkULt9EeiBPK1YjKozYQ" name="delete1" messageSort="deleteMessage" receiveEvent="_4w4gILt9EeiBPK1YjKozYQ" sendEvent="_4wzAkLt9EeiBPK1YjKozYQ"/>
+ <message xmi:type="uml:Message" xmi:id="_k_L4ULXMEeickIck9Vt91A" name="delete2" messageSort="deleteMessage" receiveEvent="_k_MfYLXMEeickIck9Vt91A" sendEvent="_k_L4UbXMEeickIck9Vt91A"/>
+ <message xmi:type="uml:Message" xmi:id="_ZKC-gLp7EeiqHsvDY6I0Gg" name="message4" receiveEvent="_ZKJsMLp7EeiqHsvDY6I0Gg" sendEvent="_ZKJFILp7EeiqHsvDY6I0Gg"/>
+ </ownedBehavior>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_T7POELt9EeiBPK1YjKozYQ" name="Whatsit"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_VPx_ILt9EeiBPK1YjKozYQ" memberEnd="_VP4FwLt9EeiBPK1YjKozYQ _VP568rt9EeiBPK1YjKozYQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VP23oLt9EeiBPK1YjKozYQ" source="org.eclipse.papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VP3esLt9EeiBPK1YjKozYQ" key="nature" value="UML_Nature"/>
+ </eAnnotations>
+ <ownedEnd xmi:type="uml:Property" xmi:id="_VP568rt9EeiBPK1YjKozYQ" name="thing" type="_SepRkLVZEeiUzZPp6fDTcg" association="_VPx_ILt9EeiBPK1YjKozYQ"/>
+ </packagedElement>
+</uml:Model>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/AbstractOccurrenceLinkCreationTest.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/AbstractOccurrenceLinkCreationTest.java
new file mode 100644
index 00000000000..391e0904c4b
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/AbstractOccurrenceLinkCreationTest.java
@@ -0,0 +1,311 @@
+/*****************************************************************************
+ * Copyright (c) 2018 CEA LIST, EclipseSource 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:
+ * EclipseSource - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
+
+import java.util.Random;
+import java.util.Set;
+
+import org.eclipse.draw2d.Connection;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.PolylineConnection;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
+import org.eclipse.papyrus.junit.utils.rules.PapyrusEditorFixture;
+import org.eclipse.papyrus.uml.diagram.sequence.anchors.CenterAnchor;
+import org.eclipse.papyrus.uml.diagram.sequence.anchors.ConnectionSourceAnchor;
+import org.eclipse.papyrus.uml.diagram.sequence.anchors.ConnectionTargetAnchor;
+import org.eclipse.papyrus.uml.diagram.sequence.anchors.NodeBottomAnchor;
+import org.eclipse.papyrus.uml.diagram.sequence.anchors.NodeTopAnchor;
+import org.eclipse.uml2.uml.ActionExecutionSpecification;
+import org.eclipse.uml2.uml.BehaviorExecutionSpecification;
+import org.eclipse.uml2.uml.DestructionOccurrenceSpecification;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.NamedElement;
+import org.hamcrest.core.IsInstanceOf;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+public abstract class AbstractOccurrenceLinkCreationTest<T extends NamedElement> extends AbstractPapyrusTest {
+
+ @Rule
+ public final PapyrusEditorFixture editor = new PapyrusEditorFixture();
+
+ IGraphicalEditPart exec1, exec2, exec3, destruction1, destruction2;
+ ConnectionNodeEditPart message3, message4;
+ ConnectionNodeEditPart[] links;
+
+ private Class<T> umlClass;
+
+ private String paletteToolId;
+
+ private Class<? extends Connection> figureClass;
+
+ public AbstractOccurrenceLinkCreationTest(Class<T> umlClass, String paletteToolId, Class<? extends Connection> figureClass) {
+ this.umlClass = umlClass;
+ this.paletteToolId = paletteToolId;
+ this.figureClass = figureClass;
+ }
+
+ @Before
+ public void getElements() {
+ exec1 = (IGraphicalEditPart) editor.findEditPart("ActionExecutionSpecification1", ActionExecutionSpecification.class);
+ exec2 = (IGraphicalEditPart) editor.findEditPart("BehaviorExecutionSpecification2", BehaviorExecutionSpecification.class);
+ exec3 = (IGraphicalEditPart) editor.findEditPart("ActionExecutionSpecification3", ActionExecutionSpecification.class);
+ destruction1 = (IGraphicalEditPart) editor.findEditPart("Message1ReceiveDestroyEvent", DestructionOccurrenceSpecification.class);
+ destruction2 = (IGraphicalEditPart) editor.findEditPart("Message2ReceiveDestroyEvent", DestructionOccurrenceSpecification.class);
+
+ message3 = (ConnectionNodeEditPart) editor.findEditPart("Message3", Message.class);
+ message4 = (ConnectionNodeEditPart) editor.findEditPart("Message4", Message.class);
+ }
+
+ @Test
+ public void testLinkCreationOnMessageSourceToTarget() throws Exception {
+ editor.getActiveDiagramEditor().getDiagramGraphicalViewer().reveal(message4);
+
+ Point message3Source = findSourcePoint(message3);
+ Point message4Target = findTargetPoint(message4);
+
+ editor.createLink(paletteToolId, message3, message4, message3Source, message4Target);
+
+ Message umlMessage3 = (Message) EMFHelper.getEObject(message3);
+ Message umlMessage4 = (Message) EMFHelper.getEObject(message4);
+
+ // There's no T in the model before we create the link, so just find the only one
+ Set<T> allInstances = EMFHelper.allInstances(umlMessage3.eResource(), umlClass);
+ T newLink = allInstances.iterator().next();
+
+ EditPart newLinkEditPart = editor.findEditPart(newLink);
+ Assert.assertThat(newLinkEditPart, IsInstanceOf.instanceOf(ConnectionNodeEditPart.class));
+ ConnectionNodeEditPart newConnection = (ConnectionNodeEditPart) newLinkEditPart;
+
+ Element source = getSemanticSource(newLink);
+ Element target = getSemanticTarget(newLink);
+
+ Assert.assertEquals(umlMessage3.getSendEvent(), source);
+ Assert.assertEquals(umlMessage4.getReceiveEvent(), target);
+ Assert.assertThat(newConnection.getConnectionFigure(), IsInstanceOf.instanceOf(figureClass));
+ Assert.assertThat(newConnection.getConnectionFigure().getSourceAnchor(), IsInstanceOf.instanceOf(ConnectionSourceAnchor.class));
+ Assert.assertThat(newConnection.getConnectionFigure().getTargetAnchor(), IsInstanceOf.instanceOf(ConnectionTargetAnchor.class));
+ }
+
+ @Test
+ public void testLinkCreationOnMessageTargetToSource() throws Exception {
+ editor.getActiveDiagramEditor().getDiagramGraphicalViewer().reveal(message4);
+
+ Point message3Target = findTargetPoint(message3);
+ Point message4Source = findSourcePoint(message4);
+
+ editor.createLink(paletteToolId, message3, message4, message3Target, message4Source);
+
+ Message umlMessage3 = (Message) EMFHelper.getEObject(message3);
+ Message umlMessage4 = (Message) EMFHelper.getEObject(message4);
+
+ // There's no T in the model before we create the link, so just find the only one
+ Set<T> allInstances = EMFHelper.allInstances(umlMessage3.eResource(), umlClass);
+ T newLink = allInstances.iterator().next();
+
+ EditPart newLinkEditPart = editor.findEditPart(newLink);
+ Assert.assertThat(newLinkEditPart, IsInstanceOf.instanceOf(ConnectionNodeEditPart.class));
+ ConnectionNodeEditPart newConnection = (ConnectionNodeEditPart) newLinkEditPart;
+
+ Element source = getSemanticSource(newLink);
+ Element target = getSemanticTarget(newLink);
+
+ Assert.assertEquals(umlMessage3.getReceiveEvent(), source);
+ Assert.assertEquals(umlMessage4.getSendEvent(), target);
+ Assert.assertThat(newConnection.getConnectionFigure(), IsInstanceOf.instanceOf(figureClass));
+ Assert.assertThat(newConnection.getConnectionFigure().getSourceAnchor(), IsInstanceOf.instanceOf(ConnectionTargetAnchor.class));
+ Assert.assertThat(newConnection.getConnectionFigure().getTargetAnchor(), IsInstanceOf.instanceOf(ConnectionSourceAnchor.class));
+ }
+
+ @Test
+ public void testLinkCreationOnExecSpecStartToFinish() throws Exception {
+ editor.getActiveDiagramEditor().getDiagramGraphicalViewer().reveal(exec2);
+
+ Point exec1Start = findStartPoint(exec1);
+ Point exec2Finish = findFinishPoint(exec2);
+
+ editor.createLink(paletteToolId, exec1, exec2, exec1Start, exec2Finish);
+
+ ActionExecutionSpecification umlExec1 = (ActionExecutionSpecification) EMFHelper.getEObject(exec1);
+ BehaviorExecutionSpecification umlExec2 = (BehaviorExecutionSpecification) EMFHelper.getEObject(exec2);
+
+ // There's no T in the model before we create the link, so just find the only one
+ Set<T> allInstances = EMFHelper.allInstances(umlExec1.eResource(), umlClass);
+ T newLink = allInstances.iterator().next();
+
+ EditPart newLinkEditPart = editor.findEditPart(newLink);
+ Assert.assertThat(newLinkEditPart, IsInstanceOf.instanceOf(ConnectionNodeEditPart.class));
+ ConnectionNodeEditPart newConnection = (ConnectionNodeEditPart) newLinkEditPart;
+
+ Element source = getSemanticSource(newLink);
+ Element target = getSemanticTarget(newLink);
+
+ Assert.assertEquals(umlExec1.getStart(), source);
+ Assert.assertEquals(umlExec2.getFinish(), target);
+ Assert.assertThat(newConnection.getConnectionFigure(), IsInstanceOf.instanceOf(figureClass));
+ Assert.assertThat(newConnection.getConnectionFigure().getSourceAnchor(), IsInstanceOf.instanceOf(NodeTopAnchor.class));
+ Assert.assertThat(newConnection.getConnectionFigure().getTargetAnchor(), IsInstanceOf.instanceOf(NodeBottomAnchor.class));
+ }
+
+ @Test
+ public void testLinkCreationOnExecSpecFinishToStart() throws Exception {
+ editor.getActiveDiagramEditor().getDiagramGraphicalViewer().reveal(exec3);
+
+ Point exec1Finish = findFinishPoint(exec1);
+ Point exec3Start = findStartPoint(exec3);
+
+ editor.createLink(paletteToolId, exec1, exec3, exec1Finish, exec3Start);
+
+ ActionExecutionSpecification umlExec1 = (ActionExecutionSpecification) EMFHelper.getEObject(exec1);
+ ActionExecutionSpecification umlExec3 = (ActionExecutionSpecification) EMFHelper.getEObject(exec3);
+
+ // There's no T in the model before we create the link, so just find the only one
+ Set<T> allInstances = EMFHelper.allInstances(umlExec1.eResource(), umlClass);
+ T newLink = allInstances.iterator().next();
+
+ EditPart newLinkEditPart = editor.findEditPart(newLink);
+ Assert.assertThat(newLinkEditPart, IsInstanceOf.instanceOf(ConnectionNodeEditPart.class));
+ ConnectionNodeEditPart newConnection = (ConnectionNodeEditPart) newLinkEditPart;
+
+ Element source = getSemanticSource(newLink);
+ Element target = getSemanticTarget(newLink);
+
+ Assert.assertEquals(umlExec1.getFinish(), source);
+ Assert.assertEquals(umlExec3.getStart(), target);
+ Assert.assertThat(newConnection.getConnectionFigure(), IsInstanceOf.instanceOf(figureClass));
+ Assert.assertThat(newConnection.getConnectionFigure().getSourceAnchor(), IsInstanceOf.instanceOf(NodeBottomAnchor.class));
+ Assert.assertThat(newConnection.getConnectionFigure().getTargetAnchor(), IsInstanceOf.instanceOf(NodeTopAnchor.class));
+ }
+
+ @Test
+ public void testLinkCreationOnDestruction() throws Exception {
+ editor.getActiveDiagramEditor().getDiagramGraphicalViewer().reveal(destruction2);
+
+ Point destruction1Any = findAnyPoint(destruction1);
+ Point destruction2Any = findAnyPoint(destruction2);
+
+ editor.createLink(paletteToolId, destruction1, destruction2, destruction1Any, destruction2Any);
+
+ DestructionOccurrenceSpecification umlDest1 = (DestructionOccurrenceSpecification) EMFHelper.getEObject(destruction1);
+ DestructionOccurrenceSpecification umlDest2 = (DestructionOccurrenceSpecification) EMFHelper.getEObject(destruction2);
+
+ // There's no T in the model before we create the link, so just find the only one
+ Set<T> allInstances = EMFHelper.allInstances(umlDest1.eResource(), umlClass);
+ T newLink = allInstances.iterator().next();
+
+ EditPart newLinkEditPart = editor.findEditPart(newLink);
+ Assert.assertThat(newLinkEditPart, IsInstanceOf.instanceOf(ConnectionNodeEditPart.class));
+ ConnectionNodeEditPart newConnection = (ConnectionNodeEditPart) newLinkEditPart;
+
+ Element source = getSemanticSource(newLink);
+ Element target = getSemanticTarget(newLink);
+
+ Assert.assertEquals(umlDest1, source);
+ Assert.assertEquals(umlDest2, target);
+ Assert.assertThat(newConnection.getConnectionFigure(), IsInstanceOf.instanceOf(figureClass));
+ Assert.assertThat(newConnection.getConnectionFigure().getSourceAnchor(), IsInstanceOf.instanceOf(CenterAnchor.class));
+ Assert.assertThat(newConnection.getConnectionFigure().getTargetAnchor(), IsInstanceOf.instanceOf(CenterAnchor.class));
+ }
+
+ protected abstract Element getSemanticSource(T link);
+
+ protected abstract Element getSemanticTarget(T link);
+
+ private Point findSourcePoint(ConnectionNodeEditPart editPart) {
+ PolylineConnection connection = (PolylineConnection) editPart.getConnectionFigure();
+ Point start = connection.getStart().getCopy();
+ Point end = connection.getEnd().getCopy();
+
+ connection.translateToAbsolute(start);
+ connection.translateToAbsolute(end);
+
+ // Messages are straight lines, so just shift the X/Y slightly towards the source side
+ int newX = (int) (0.75 * start.x() + 0.25 * end.x());
+ int newY = (int) (0.75 * start.y() + 0.25 * end.y());
+
+ return new Point(newX, newY);
+ }
+
+ private Point findTargetPoint(ConnectionNodeEditPart editPart) {
+ PolylineConnection connection = (PolylineConnection) editPart.getConnectionFigure();
+ Point end = connection.getEnd().getCopy();
+ Point start = connection.getStart().getCopy();
+
+ connection.translateToAbsolute(start);
+ connection.translateToAbsolute(end);
+
+ // Messages are straight lines, so just shift the X/Y slightly towards the target side
+ int newX = (int) (0.75 * end.x() + 0.25 * start.x());
+ int newY = (int) (0.75 * end.y() + 0.25 * start.y());
+
+ return new Point(newX, newY);
+ }
+
+ private Point findStartPoint(IGraphicalEditPart editPart) {
+ IFigure figure = editPart.getFigure();
+ Rectangle bounds = figure.getBounds();
+
+ Point top = bounds.getTop().getCopy();
+ Point bottom = bounds.getBottom().getCopy();
+ figure.translateToAbsolute(top);
+ figure.translateToAbsolute(bottom);
+
+ int newX = top.x() + 7; // Slightly shift to the right (arbitrary small value)
+ int newY = (int) (0.75 * top.y() + 0.25 * bottom.y()); // Shift to the bottom (We just need to be on the upper half of the ExecSpec to target the start event)
+
+ return new Point(newX, newY);
+ }
+
+ private Point findFinishPoint(IGraphicalEditPart editPart) {
+ IFigure figure = editPart.getFigure();
+ Rectangle bounds = figure.getBounds();
+
+ Point top = bounds.getTop().getCopy();
+ Point bottom = bounds.getBottom().getCopy();
+ figure.translateToAbsolute(top);
+ figure.translateToAbsolute(bottom);
+
+ int newX = bottom.x() - 4; // Slightly shift to the left (arbitrary value between -10 and 10)
+ int newY = (int) (0.25 * top.y() + 0.75 * bottom.y()); // Shift to the top (We just need to be on the lower half of the ExecSpec to target the finish event)
+
+ return new Point(newX, newY);
+ }
+
+ private Point findAnyPoint(IGraphicalEditPart editPart) {
+ IFigure figure = editPart.getFigure();
+ Rectangle bounds = figure.getBounds();
+
+ Point topLeft = bounds.getTopLeft().getCopy();
+ Point bottomRight = bounds.getBottomRight().getCopy();
+
+ Random r = new Random();
+ int x = topLeft.x() + r.nextInt(bottomRight.x() - topLeft.x());
+ int y = topLeft.y() + r.nextInt(bottomRight.y() - topLeft.y());
+
+ return new Point(x, y);
+ }
+
+
+
+}
+
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/AbstractOccurrenceLinkTest.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/AbstractOccurrenceLinkTest.java
new file mode 100644
index 00000000000..5ac44948f59
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/AbstractOccurrenceLinkTest.java
@@ -0,0 +1,320 @@
+/*****************************************************************************
+ * Copyright (c) 2018 CEA LIST, EclipseSource 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:
+ * EclipseSource - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
+
+import java.util.Arrays;
+
+import org.eclipse.draw2d.Connection;
+import org.eclipse.draw2d.ConnectionAnchor;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.PolylineConnection;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.gef.requests.ReconnectRequest;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionNodeEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
+import org.eclipse.papyrus.junit.utils.rules.PapyrusEditorFixture;
+import org.eclipse.papyrus.uml.diagram.sequence.anchors.CenterAnchor;
+import org.eclipse.papyrus.uml.diagram.sequence.anchors.ConnectionSourceAnchor;
+import org.eclipse.papyrus.uml.diagram.sequence.anchors.ConnectionTargetAnchor;
+import org.eclipse.papyrus.uml.diagram.sequence.anchors.NodeBottomAnchor;
+import org.eclipse.papyrus.uml.diagram.sequence.anchors.NodeTopAnchor;
+import org.eclipse.papyrus.uml.diagram.sequence.edit.policies.UpdateWeakReferenceForExecSpecEditPolicy;
+import org.eclipse.uml2.uml.ActionExecutionSpecification;
+import org.eclipse.uml2.uml.DestructionOccurrenceSpecification;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Lifeline;
+import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.OccurrenceSpecification;
+import org.hamcrest.core.IsEqual;
+import org.hamcrest.core.IsInstanceOf;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+/**
+ * <p>
+ * Base test class for DurationLinks (DurationConstraint and DurationObservation) and GeneralOrdering
+ * </p>
+ * <p>
+ * These links are really similar in that they use the same Anchors representing
+ * {@link OccurrenceSpecification}s, thus mostly behave the same. The only differences
+ * are semantic, and they use a different figure.
+ * </p>
+ */
+public abstract class AbstractOccurrenceLinkTest<T extends NamedElement> extends AbstractPapyrusTest {
+
+ @Rule
+ public final PapyrusEditorFixture editor = new PapyrusEditorFixture();
+
+ IGraphicalEditPart lifeline1, lifeline3, exec1, exec3, destruction;
+ ConnectionNodeEditPart message1, message4;
+ ConnectionNodeEditPart[] links;
+
+ private String[] linkNames;
+
+ private Class<T> umlClass;
+
+ private Class<? extends Connection> connectionFigure;
+
+ public AbstractOccurrenceLinkTest(String[] linkNames, Class<T> umlClass, Class<? extends Connection> connectionFigure) {
+ Assert.assertTrue("Test setup error: there should be at least 7 links defined for this test class", linkNames.length >= 7);
+ this.linkNames = linkNames;
+ this.umlClass = umlClass;
+ this.connectionFigure = connectionFigure;
+ }
+
+ @Before
+ public void getElements() {
+ lifeline1 = (IGraphicalEditPart) editor.findEditPart("Lifeline1", Lifeline.class);
+ lifeline3 = (IGraphicalEditPart) editor.findEditPart("Lifeline3", Lifeline.class);
+ exec1 = (IGraphicalEditPart) editor.findEditPart("ActionExecutionSpecification1", ActionExecutionSpecification.class);
+ exec3 = (IGraphicalEditPart) editor.findEditPart("ActionExecutionSpecification3", ActionExecutionSpecification.class);
+ destruction = (IGraphicalEditPart) editor.findEditPart("Message5ReceiveDestroyEvent", DestructionOccurrenceSpecification.class);
+
+ message1 = (ConnectionNodeEditPart) editor.findEditPart("Message1", Message.class);
+ message4 = (ConnectionNodeEditPart) editor.findEditPart("Message4", Message.class);
+
+ links = Arrays.stream(linkNames).map(name -> editor.findEditPart(name, umlClass))
+ .map(ConnectionNodeEditPart.class::cast)
+ .toArray(ConnectionNodeEditPart[]::new);
+ }
+
+ @Test
+ public void testLinksAnchors() {
+ checkFixedAnchors(links[0], NodeTopAnchor.class, NodeTopAnchor.class);
+ checkFixedAnchors(links[1], ConnectionSourceAnchor.class, ConnectionTargetAnchor.class);
+ checkFixedAnchors(links[2], NodeTopAnchor.class, ConnectionTargetAnchor.class);
+ checkFixedAnchors(links[3], NodeBottomAnchor.class, NodeBottomAnchor.class);
+ checkFixedAnchors(links[4], ConnectionTargetAnchor.class, ConnectionSourceAnchor.class);
+ checkFixedAnchors(links[5], ConnectionSourceAnchor.class, CenterAnchor.class);
+ checkFixedAnchors(links[6], NodeBottomAnchor.class, ConnectionTargetAnchor.class);
+ }
+
+ @Test
+ public void testLinksDisplay() {
+ for (ConnectionNodeEditPart link : links) {
+ Assert.assertThat(link.getFigure(), IsInstanceOf.instanceOf(connectionFigure));
+ }
+
+ // Check the initial anchors. Note that this test is fragile, since the anchors
+ // depend on the start/finish position of ExecSpecs, Messages and the position of
+ // destruction events.
+ // If any of these elements change, the assertions will fail, even if the Link
+ // anchor itself is correct.
+ // Anchors are aligned on the grid (Or in the middle of two points on the grid, e.g. for the X location
+ // on an ExecutionSpecification).
+ // It seems that message anchors are not always perfectly aligned on the grid (Values "301", "401")
+ checkPosition(links[0], 130, 100, 410, 160);
+ checkPosition(links[1], 140, 180, 400, 180);
+ checkPosition(links[2], 420, 180, 140, 240);
+ checkPosition(links[3], 420, 280, 410, 301);
+ checkPosition(links[4], 410, 340, 410, 400);
+ checkPosition(links[5], 410, 400, 690, 500);
+ checkPosition(links[6], 130, 401, 410, 580);
+ }
+
+ @Test
+ public void testAnchorUpdateOnMessages() {
+ // Move a message
+ ReconnectRequest request = new ReconnectRequest(RequestConstants.REQ_RECONNECT_SOURCE);
+ request.setConnectionEditPart(message1);
+
+ Point sourceLocation = ((PolylineConnection) message1.getConnectionFigure()).getStart().getCopy();
+ sourceLocation.setY(sourceLocation.y() - 40);
+ // sourceLocation.setX(sourceLocation.x() + 3); // Move slightly to the right, to make sure we hover the lifeline and not the exec spec
+ request.setLocation(sourceLocation);
+
+ EditPart targetEditPart = lifeline1.getTargetEditPart(request);
+ request.setTargetEditPart(targetEditPart);
+
+ editor.execute(targetEditPart.getCommand(request));
+
+ // Check that the duration link follows
+ /**
+ * FIXME: newStartX should be 140, but the Message Reconnect is incorrect, and the DurationLink simply follows
+ * The Message Start Anchor is moved to the left side of the ExecSpec, instead of the right side.
+ * When the MessageReconnect bug is fixed, this should be changed back to 140
+ */
+ int newStartX = 120;
+ checkPosition(links[1], newStartX, 140, 400, 180);
+ }
+
+ @Test
+ public void testAnchorUpdateOnExecSpec() {
+ // Move an ExecutionSpecification
+ ChangeBoundsRequest request = new ChangeBoundsRequest(RequestConstants.REQ_MOVE);
+ request.setEditParts(exec1);
+ request.setMoveDelta(new Point(0, 40));
+
+ Point center = exec1.getFigure().getBounds().getCenter().getCopy();
+ center.setY(center.y() + 40);
+ request.setLocation(center); // Probably doesn't matter
+
+ // By default, messages located below an ExecSpec will move with it. We don't want that here.
+ disableMoveMessages(request, exec1);
+
+ EditPart targetPart = exec1.getTargetEditPart(request);
+ editor.execute(targetPart.getCommand(request));
+
+ // Check that the duration links (1 and 7) follow
+ checkPosition(links[0], 130, 140, 410, 160);
+ checkPosition(links[6], 130, 440, 410, 580);
+ }
+
+ private void disableMoveMessages(ChangeBoundsRequest request, IGraphicalEditPart editPart) {
+ // Unfortunately, there is no request constant to specify this; this is done via a Keyboard
+ // listener installed on a specific EditPolicy, so we have to fake the Shift key-press
+ EditPolicy editPolicy = editPart.getEditPolicy(UpdateWeakReferenceForExecSpecEditPolicy.UDPATE_WEAK_REFERENCE_FOR_EXECSPEC);
+ ((UpdateWeakReferenceForExecSpecEditPolicy) editPolicy).setKeyPressState(true);
+ }
+
+ @Test
+ public void testAnchorUpdateOnDestruction() {
+ // Move a DestructionOccurrence. Note: it's currently not possible to move the Destruction directly,
+ // so we move the lifeline horizontally instead.
+ ChangeBoundsRequest request = new ChangeBoundsRequest(RequestConstants.REQ_MOVE);
+ request.setEditParts(lifeline3); // Lifeline3 owns a DestructionOccurrenceSpecification
+ request.setMoveDelta(new Point(120, 0));
+
+ Point center = lifeline3.getFigure().getBounds().getCenter().getCopy();
+ center.setX(center.x() + 120);
+ request.setLocation(center); // Probably doesn't matter
+
+ EditPart targetPart = lifeline3.getTargetEditPart(request);
+ editor.execute(targetPart.getCommand(request));
+
+ // Check that the duration link follows
+ checkPosition(links[5], 410, 400, 810, 500);
+ }
+
+ @Test
+ @SuppressWarnings("unchecked")
+ public void testLinkDisappearOnSemanticChange() {
+ T link = (T) EMFHelper.getEObject(links[0]);
+
+ // First change doesn't change source/target; the link should remain
+ doUnrelatedChange(link);
+ Assert.assertTrue("The edit part for " + linkNames[0] + " should still be active", links[0].isActive());
+
+ // Second change modifies the target; the link should be deleted
+ doChangeTarget(link);
+ checkDeleted(links[0]);
+ }
+
+ @Test
+ public void testLinkDisappearOnAnchorageChange() {
+ editor.delete(message1);
+ checkDeleted(links[1]);
+
+ editor.delete(exec3);
+ checkDeleted(links[2]);
+ checkDeleted(links[3]);
+
+ editor.delete(destruction);
+ checkDeleted(links[5]);
+ checkDeleted(links[4]); // This is indirect: the deletion of the Destruction removes the Delete Message as well, on which link5 is anchored
+
+ // Other durations are still present & active
+ Assert.assertTrue(linkNames[0] + " should still be active", links[0].isActive());
+ Assert.assertTrue(linkNames[6] + " should still be active", links[6].isActive());
+ }
+
+ // Link deletion shouldn't deleted linked events
+ @Test
+ public void testLinkDeletion() {
+ Message umlMessage1 = (Message) EMFHelper.getEObject(message1);
+ Assert.assertNotNull(umlMessage1.eResource());
+
+ for (ConnectionNodeEditPart linkPart : links) {
+ @SuppressWarnings("unchecked")
+ T link = (T) EMFHelper.getEObject(linkPart);
+ Element source = getSourceElement(link);
+ Element target = getTargetElement(link);
+
+ Assert.assertNotNull(source);
+ Assert.assertNotNull(target);
+
+ editor.delete(linkPart);
+
+ // Check that source/target events are still present in the UML Model
+ Assert.assertEquals(umlMessage1.eResource(), source.eResource());
+ Assert.assertEquals(umlMessage1.eResource(), target.eResource());
+ }
+
+ // Check that the Message/Exec/Destruction edit parts are unaffected
+ Assert.assertTrue(message1.isActive());
+ Assert.assertTrue(message4.isActive());
+ Assert.assertTrue(exec1.isActive());
+ Assert.assertTrue(exec3.isActive());
+ Assert.assertTrue(destruction.isActive());
+ }
+
+ private static void checkDeleted(EditPart editPart) {
+ Assert.assertFalse("The edit part should be destroyed", editPart.isActive());
+ View view = (View) editPart.getModel();
+ Assert.assertNull("The edit part's view should no longer be contained in the model", view.eContainer());
+ }
+
+ private static void checkPosition(ConnectionNodeEditPart connection, int startX, int startY, int endX, int endY) {
+ PolylineConnection polyline = (PolylineConnection) connection.getConnectionFigure();
+ int[] expected = new int[] { startX, startY, endX, endY };
+
+ Point start = absolute(polyline, polyline.getStart());
+ Point end = absolute(polyline, polyline.getEnd());
+ int[] actual = new int[] { start.x(), start.y(), end.x(), end.y() };
+
+ Assert.assertThat(actual, IsEqual.equalTo(expected));
+ }
+
+ private static Point absolute(IFigure reference, Point pointInReference) {
+ Point result = pointInReference.getCopy();
+ reference.translateToAbsolute(result);
+ return result;
+ }
+
+ private static void checkFixedAnchors(ConnectionNodeEditPart connection, Class<? extends ConnectionAnchor> sourceAnchor, Class<? extends ConnectionAnchor> targetAnchor) {
+ String connectionName = ((NamedElement) EMFHelper.getEObject(connection)).getName();
+
+ Assert.assertThat("Invalid source anchor for " + connectionName, connection.getConnectionFigure().getSourceAnchor(), IsInstanceOf.instanceOf(sourceAnchor));
+ Assert.assertThat("Invalid target anchor for " + connectionName, connection.getConnectionFigure().getTargetAnchor(), IsInstanceOf.instanceOf(targetAnchor));
+ }
+
+ /**
+ * Execute a semantic change on the given link that doesn't affect
+ * its source or target
+ *
+ * @param linkToChange
+ */
+ protected abstract void doUnrelatedChange(T linkToChange);
+
+ /**
+ * Execute a semantic change on the given link that modifies its target
+ *
+ * @param linkToChange
+ */
+ protected abstract void doChangeTarget(T linkToChange);
+
+ protected abstract Element getSourceElement(T link);
+
+ protected abstract Element getTargetElement(T link);
+}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/BugTests.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/BugTests.java
index 33c4a3fa01b..062fe1de45b 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/BugTests.java
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/BugTests.java
@@ -10,7 +10,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
- * Christian W. Damus - bugs 533673, 530201
+ * Christian W. Damus - bugs 533673, 530201, 536486
*
*****************************************************************************/
package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
@@ -41,6 +41,14 @@ import org.junit.runners.Suite.SuiteClasses;
TestCFOperandsCoveredNodes.class,
TestCFOperandsSemanticCoverage.class,
TestCFOperandsReorder.class,
+ TestDurationConstraintDisplay.class,
+ TestDurationObservationDisplay.class,
+ TestGeneralOrderingDisplay.class,
+ DurationConstraintCreationTest.class,
+ DurationObservationCreationTest.class,
+ GeneralOrderingCreationTest.class,
+ TimeElementCreationTest.class,
+ TimeElementMoveTest.class,
})
public class BugTests {
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/BugTests2.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/BugTests2.java
index 7234aa803a0..ac539452195 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/BugTests2.java
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/BugTests2.java
@@ -1,21 +1,20 @@
package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
-import org.junit.runner.RunWith;
import org.eclipse.papyrus.junit.framework.classification.ClassificationSuite;
+import org.junit.runner.RunWith;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(ClassificationSuite.class)
/* TestLifelineAutoResize_383723.class, TestLifelineLabelCustomize_383722.class */
-@SuiteClasses({
- TestCombinedFragmentName_382951.class,
- TestCreationUndo_384618.class,
- TestDestructionNode_384201.class,
- TestDurationConstraints_384596.class,
- TestExecutionSpecificationDimension_384572.class,
- TestInteractionConstraint_382966.class,
- TestMessageCreate_379661.class,
- TestMessageLostFound_384202.class,
- TestNestedExecution_384616.class
+@SuiteClasses({
+ TestCombinedFragmentName_382951.class,
+ TestCreationUndo_384618.class,
+ TestDestructionNode_384201.class,
+ TestExecutionSpecificationDimension_384572.class,
+ TestInteractionConstraint_382966.class,
+ TestMessageCreate_379661.class,
+ TestMessageLostFound_384202.class,
+ TestNestedExecution_384616.class
})
public class BugTests2 {
}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/DurationConstraintCreationTest.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/DurationConstraintCreationTest.java
new file mode 100644
index 00000000000..7415acafe78
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/DurationConstraintCreationTest.java
@@ -0,0 +1,43 @@
+/*****************************************************************************
+ * Copyright (c) 2018 CEA LIST, EclipseSource 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:
+ * EclipseSource - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
+
+import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
+import org.eclipse.papyrus.junit.utils.rules.PluginResource;
+import org.eclipse.papyrus.uml.diagram.sequence.figures.DurationLinkFigure;
+import org.eclipse.uml2.uml.DurationConstraint;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * Creation test for DurationConstraintLinks
+ */
+@PluginResource({ "resource/bugs/bug536631-durationLinksCreation.di", "resource/bugs/style.css" })
+@ActiveDiagram("durationLinksCreation")
+public class DurationConstraintCreationTest extends AbstractOccurrenceLinkCreationTest<DurationConstraint> {
+
+ public DurationConstraintCreationTest() {
+ super(DurationConstraint.class, "createDurationConstraintEdgeTool", DurationLinkFigure.class);
+ }
+
+ @Override
+ protected Element getSemanticSource(DurationConstraint link) {
+ return link.getConstrainedElements().get(0);
+ }
+
+ @Override
+ protected Element getSemanticTarget(DurationConstraint link) {
+ return link.getConstrainedElements().size() > 1 ? link.getConstrainedElements().get(1) : link.getConstrainedElements().get(0);
+ }
+
+}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/DurationObservationCreationTest.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/DurationObservationCreationTest.java
new file mode 100644
index 00000000000..59ac3a0cc1b
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/DurationObservationCreationTest.java
@@ -0,0 +1,43 @@
+/*****************************************************************************
+ * Copyright (c) 2018 CEA LIST, EclipseSource 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:
+ * EclipseSource - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
+
+import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
+import org.eclipse.papyrus.junit.utils.rules.PluginResource;
+import org.eclipse.papyrus.uml.diagram.sequence.figures.DurationLinkFigure;
+import org.eclipse.uml2.uml.DurationObservation;
+import org.eclipse.uml2.uml.Element;
+
+/**
+ * Creation test for DurationObservationLinks
+ */
+@PluginResource({ "resource/bugs/bug536631-durationLinksCreation.di", "resource/bugs/style.css" })
+@ActiveDiagram("durationLinksCreation")
+public class DurationObservationCreationTest extends AbstractOccurrenceLinkCreationTest<DurationObservation> {
+
+ public DurationObservationCreationTest() {
+ super(DurationObservation.class, "createDurationObservationEdgeTool", DurationLinkFigure.class);
+ }
+
+ @Override
+ protected Element getSemanticSource(DurationObservation link) {
+ return link.getEvents().get(0);
+ }
+
+ @Override
+ protected Element getSemanticTarget(DurationObservation link) {
+ return link.getEvents().size() > 1 ? link.getEvents().get(1) : link.getEvents().get(0);
+ }
+
+}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/GeneralOrderingCreationTest.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/GeneralOrderingCreationTest.java
new file mode 100644
index 00000000000..262d07caa04
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/GeneralOrderingCreationTest.java
@@ -0,0 +1,43 @@
+/*****************************************************************************
+ * Copyright (c) 2018 CEA LIST, EclipseSource 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:
+ * EclipseSource - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
+
+import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
+import org.eclipse.papyrus.junit.utils.rules.PluginResource;
+import org.eclipse.papyrus.uml.diagram.sequence.figures.GeneralOrderingDescriptor;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.GeneralOrdering;
+
+/**
+ * Creation test for GeneralOrdering Links
+ */
+@PluginResource({ "resource/bugs/bug536631-durationLinksCreation.di", "resource/bugs/style.css" })
+@ActiveDiagram("durationLinksCreation")
+public class GeneralOrderingCreationTest extends AbstractOccurrenceLinkCreationTest<GeneralOrdering> {
+
+ public GeneralOrderingCreationTest() {
+ super(GeneralOrdering.class, "createGeneralOrdering8CreationTool", GeneralOrderingDescriptor.class);
+ }
+
+ @Override
+ protected Element getSemanticSource(GeneralOrdering link) {
+ return link.getBefore();
+ }
+
+ @Override
+ protected Element getSemanticTarget(GeneralOrdering link) {
+ return link.getAfter();
+ }
+
+}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDurationConstraintDisplay.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDurationConstraintDisplay.java
new file mode 100644
index 00000000000..6b7b866cfa2
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDurationConstraintDisplay.java
@@ -0,0 +1,82 @@
+/*****************************************************************************
+ * Copyright (c) 2018 CEA LIST, EclipseSource 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:
+ * EclipseSource - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils;
+import org.eclipse.papyrus.infra.services.edit.service.IElementEditService;
+import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
+import org.eclipse.papyrus.junit.utils.rules.PluginResource;
+import org.eclipse.papyrus.uml.diagram.sequence.figures.DurationLinkFigure;
+import org.eclipse.uml2.uml.DurationConstraint;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.UMLPackage.Literals;
+
+/**
+ * Test class to verify that DurationConstraint links are properly displayed, and properly
+ * react to changes in the diagram around them (Visual or semantic).
+ */
+@PluginResource({ "resource/bugs/bug536631-durationLinks.di", "resource/bugs/style.css" })
+@ActiveDiagram("durationConstraintsLinksTest")
+public class TestDurationConstraintDisplay extends AbstractOccurrenceLinkTest<DurationConstraint> {
+
+ public TestDurationConstraintDisplay() {
+ super(new String[] {
+ "DurationConstraint1",
+ "DurationConstraint2",
+ "DurationConstraint3",
+ "DurationConstraint4",
+ "DurationConstraint5",
+ "DurationConstraint6",
+ "DurationConstraint7",
+ }, DurationConstraint.class, DurationLinkFigure.class);
+ }
+
+ @Override
+ protected void doUnrelatedChange(DurationConstraint linkToChange) {
+ DurationConstraint duration2 = (DurationConstraint) EMFHelper.getEObject(links[1]);
+
+ List<Element> values = new ArrayList<>(linkToChange.getConstrainedElements());
+ values.add(duration2.getConstrainedElements().get(1));
+
+ IElementEditService provider = ElementEditServiceUtils.getCommandProvider(linkToChange);
+ SetRequest request = new SetRequest(linkToChange, Literals.CONSTRAINT__CONSTRAINED_ELEMENT, values);
+ editor.execute(provider.getEditCommand(request));
+ }
+
+ @Override
+ protected void doChangeTarget(DurationConstraint linkToChange) {
+ List<Element> values = new ArrayList<>(linkToChange.getConstrainedElements());
+ values.remove(1);
+
+ IElementEditService provider = ElementEditServiceUtils.getCommandProvider(linkToChange);
+ SetRequest request = new SetRequest(linkToChange, Literals.CONSTRAINT__CONSTRAINED_ELEMENT, values);
+ editor.execute(provider.getEditCommand(request));
+ }
+
+ @Override
+ protected Element getSourceElement(DurationConstraint link) {
+ return link.getConstrainedElements().get(0);
+ }
+
+ @Override
+ protected Element getTargetElement(DurationConstraint link) {
+ return link.getConstrainedElements().size() == 1 ? link.getConstrainedElements().get(0) : link.getConstrainedElements().get(1);
+ }
+
+}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDurationConstraints_384596.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDurationConstraints_384596.java
deleted file mode 100644
index 997b94307f5..00000000000
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDurationConstraints_384596.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2012 CEA LIST.
- *
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * CEA LIST - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.UnexecutableCommand;
-import org.eclipse.gef.requests.DirectEditRequest;
-import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
-import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequestFactory;
-import org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel;
-import org.eclipse.gmf.runtime.emf.type.core.IElementType;
-import org.eclipse.papyrus.commands.ICreationCommand;
-import org.eclipse.papyrus.junit.framework.classification.FailingTest;
-import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.ActionExecutionSpecificationEditPart;
-import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.DurationConstraintEditPart;
-import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.DurationConstraintLabelEditPart;
-import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.LifelineEditPart;
-import org.eclipse.papyrus.uml.diagram.sequence.providers.UMLElementTypes;
-import org.eclipse.papyrus.uml.diagram.sequence.tests.ISequenceDiagramTestsConstants;
-import org.eclipse.papyrus.uml.diagram.sequence.tests.canonical.CreateSequenceDiagramCommand;
-import org.eclipse.papyrus.uml.diagram.sequence.tests.canonical.TestTopNode;
-import org.eclipse.papyrus.uml.tools.utils.ValueSpecificationUtil;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.uml2.uml.ActionExecutionSpecification;
-import org.eclipse.uml2.uml.DurationConstraint;
-import org.eclipse.uml2.uml.Interval;
-import org.eclipse.uml2.uml.OccurrenceSpecification;
-import org.eclipse.uml2.uml.ValueSpecification;
-import org.junit.Test;
-
-/**
- * An embedded textuel editor shall allow editing duration constraints. This editor shall be accessible on the diagram.
- * When the two values of the interval are equal, the value shall be displayed only once.
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=384596
- *
- */
-public class TestDurationConstraints_384596 extends TestTopNode {
-
- private static final String SEP = "..";
-
- /** The occurrence specification(s) which are the nearest from a creation request */
- public static final String NEAREST_OCCURRENCE_SPECIFICATION = "Nearest occurrence specification"; //$NON-NLS-1$
-
- /** The occurrence specification(s) which are the nearest from a creation request (2nd end of creation) */
- public static final String NEAREST_OCCURRENCE_SPECIFICATION_2 = "Nearest occurrence specification (end)"; //$NON-NLS-1$
-
- private static final String EDIT = "Edit: ";
-
- @Override
- protected ICreationCommand getDiagramCommandCreation() {
- return new CreateSequenceDiagramCommand();
- }
-
- @Override
- protected String getProjectName() {
- return ISequenceDiagramTestsConstants.PROJECT_NAME;
- }
-
- @Override
- protected String getFileName() {
- return ISequenceDiagramTestsConstants.FILE_NAME;
- }
-
- @FailingTest ("To be erased or rewritten to take new architecture into account")
- @Test
- public void testDurationEdition() {
- createNode(UMLElementTypes.Lifeline_Shape, getRootEditPart(), new Point(100, 100), new Dimension(62, 200), null);
- final LifelineEditPart lifeline1 = (LifelineEditPart)getRootEditPart().getChildren().get(0);
- waitForComplete();
-
- createNode(UMLElementTypes.ActionExecutionSpecification_Shape, lifeline1, new Point(131, 200), new Dimension(20, 40), null);
- waitForComplete();
-
- ActionExecutionSpecificationEditPart esp = (ActionExecutionSpecificationEditPart)lifeline1.getChildren().get(1);
- createDuraitonConstraint(lifeline1, esp);
-
- DurationConstraintEditPart dp = (DurationConstraintEditPart)lifeline1.getChildren().get(2);
-
- // edit text
- WrappingLabel label = verifyEditText(dp, "1s", "2s");
- assertTrue(EDIT + TEST_THE_EXECUTION, label.getText().contains("1s..2s"));
-
- label = verifyEditText(dp, "d", "d+3");
- assertTrue(EDIT + TEST_THE_EXECUTION, label.getText().contains("d..d+3"));
-
- getEMFCommandStack().undo();
- assertTrue(EDIT + TEST_THE_UNDO, label.getText().contains("1s..2s"));
-
- label = verifyEditText(dp, "1", "1");
- assertTrue(EDIT + TEST_THE_EXECUTION, label.getText().contains("1") && !label.getText().contains(SEP));
-
- }
-
- protected WrappingLabel verifyEditText(DurationConstraintEditPart dp, String min, String max) {
- DurationConstraintLabelEditPart lp = (DurationConstraintLabelEditPart)dp.getChildren().get(0);
- WrappingLabel label = performEditRequest(lp);
-
- Composite composite = (Composite)lp.getViewer().getControl();
- Text editor = findEditor(composite, label);
-
- editor.setText(min + SEP + max);
- input(editor, SWT.CR);
-
- DurationConstraint constraint = (DurationConstraint)dp.resolveSemanticElement();
- ValueSpecification spec = constraint.getSpecification();
- assertTrue(EDIT + TEST_THE_EXECUTION, min.equals(ValueSpecificationUtil.getSpecificationValue(((Interval)spec).getMin())));
- assertTrue(EDIT + TEST_THE_EXECUTION, max.equals(ValueSpecificationUtil.getSpecificationValue(((Interval)spec).getMax())));
-
- waitForComplete();
- return label;
- }
-
- protected void createDuraitonConstraint(final LifelineEditPart lifeline1, ActionExecutionSpecificationEditPart esp) {
- ActionExecutionSpecification aes = (ActionExecutionSpecification)esp.resolveSemanticElement();
-
- Map<String, Object> extendedData = new HashMap<String, Object>();
- List<OccurrenceSpecification> events = new ArrayList<OccurrenceSpecification>(2);
- events.add(aes.getStart());
- extendedData.put(NEAREST_OCCURRENCE_SPECIFICATION, events);
-
- events = new ArrayList<OccurrenceSpecification>(2);
- events.add(aes.getFinish());
- extendedData.put(NEAREST_OCCURRENCE_SPECIFICATION_2, events);
-
- createNode(UMLElementTypes.DurationConstraint_Shape, lifeline1, getAbsoluteBounds(esp).getBottom(), new Dimension(20, 40), extendedData);
- waitForComplete();
- }
-
- public void input(Widget widget, char... character) {
- if(widget.isDisposed()) {
- return;
- }
-
- for(char c : character) {
- Event e = createKeyEvent(widget, 0, c);
- e.type = SWT.KeyDown;
- widget.notifyListeners(SWT.KeyDown, e);
-
- e = createKeyEvent(widget, 0, c);
- e.type = SWT.KeyUp;
- widget.notifyListeners(SWT.KeyUp, e);
- }
- waitForComplete();
-
- Event e = new Event();
- e.type = SWT.DefaultSelection;
- widget.notifyListeners(SWT.DefaultSelection, e);
- }
-
- private Event createKeyEvent(Widget widget, int keyCode, char character) {
- Event event = new Event();
- event.time = (int)System.currentTimeMillis();
- event.widget = widget;
- event.display = Display.getDefault();
- event.keyCode = keyCode;
- event.character = character;
- return event;
- }
-
- private Text findEditor(Composite composite, WrappingLabel label) {
- for(Control c : composite.getChildren()) {
- if(c instanceof Text) {
- if(label.getText().equals(((Text)c).getText())) {
- return (Text)c;
- }
- }
- }
- return null;
- }
-
- protected WrappingLabel performEditRequest(DurationConstraintLabelEditPart lp) {
- WrappingLabel label = (WrappingLabel)lp.getFigure();
- Rectangle b = label.getBounds().getCopy();
- label.translateToAbsolute(b);
- DirectEditRequest req = new DirectEditRequest();
- req.setLocation(b.getCenter());
- lp.performRequest(req);
- return label;
- }
-
- public void createNode(IElementType type, EditPart parentPart, Point location, Dimension size, Map<String, Object> extendedData) {
- //CREATION
- CreateViewRequest requestcreation = CreateViewRequestFactory.getCreateShapeRequest(type, getRootEditPart().getDiagramPreferencesHint());
- requestcreation.setLocation(location);
- requestcreation.setSize(size);
- if(extendedData != null) {
- requestcreation.getExtendedData().putAll(extendedData);
- }
- Command command = parentPart.getCommand(requestcreation);
- assertNotNull(CREATION + COMMAND_NULL, command);
- assertTrue(CREATION + TEST_IF_THE_COMMAND_IS_CREATED, command != UnexecutableCommand.INSTANCE);
- assertTrue(CREATION + TEST_IF_THE_COMMAND_CAN_BE_EXECUTED, command.canExecute() == true);
-
- getDiagramCommandStack().execute(command);
- }
-
-}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDurationObservationDisplay.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDurationObservationDisplay.java
new file mode 100644
index 00000000000..97a03e90bda
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestDurationObservationDisplay.java
@@ -0,0 +1,83 @@
+/*****************************************************************************
+ * Copyright (c) 2018 CEA LIST, EclipseSource 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:
+ * EclipseSource - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils;
+import org.eclipse.papyrus.infra.services.edit.service.IElementEditService;
+import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
+import org.eclipse.papyrus.junit.utils.rules.PluginResource;
+import org.eclipse.papyrus.uml.diagram.sequence.figures.DurationLinkFigure;
+import org.eclipse.uml2.uml.DurationObservation;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.UMLPackage.Literals;
+
+/**
+ * Test class to verify that DurationObservation links are properly displayed, and properly
+ * react to changes in the diagram around them (Visual or semantic).
+ */
+@PluginResource({ "resource/bugs/bug536631-durationLinks.di", "resource/bugs/style.css" })
+@ActiveDiagram("durationObservationsLinksTest")
+public class TestDurationObservationDisplay extends AbstractOccurrenceLinkTest<DurationObservation> {
+
+ public TestDurationObservationDisplay() {
+ super(new String[] {
+ "DurationObservation1",
+ "DurationObservation2",
+ "DurationObservation3",
+ "DurationObservation4",
+ "DurationObservation5",
+ "DurationObservation6",
+ "DurationObservation7"
+ }, DurationObservation.class,
+ DurationLinkFigure.class);
+ }
+
+ @Override
+ protected void doUnrelatedChange(DurationObservation linkToChange) {
+ DurationObservation duration2 = (DurationObservation) EMFHelper.getEObject(links[1]);
+
+ List<Element> values = new ArrayList<>(linkToChange.getEvents());
+ values.add(duration2.getEvents().get(1));
+
+ IElementEditService provider = ElementEditServiceUtils.getCommandProvider(linkToChange);
+ SetRequest request = new SetRequest(linkToChange, Literals.DURATION_OBSERVATION__EVENT, values);
+ editor.execute(provider.getEditCommand(request));
+ }
+
+ @Override
+ protected void doChangeTarget(DurationObservation linkToChange) {
+ List<Element> values = new ArrayList<>(linkToChange.getEvents());
+ values.remove(1);
+
+ IElementEditService provider = ElementEditServiceUtils.getCommandProvider(linkToChange);
+ SetRequest request = new SetRequest(linkToChange, Literals.DURATION_OBSERVATION__EVENT, values);
+ editor.execute(provider.getEditCommand(request));
+ }
+
+ @Override
+ protected Element getSourceElement(DurationObservation link) {
+ return link.getEvents().get(0);
+ }
+
+ @Override
+ protected Element getTargetElement(DurationObservation link) {
+ return link.getEvents().size() == 1 ? link.getEvents().get(0) : link.getEvents().get(1);
+ }
+
+}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestGeneralOrderingDisplay.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestGeneralOrderingDisplay.java
new file mode 100644
index 00000000000..fecdc346bec
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TestGeneralOrderingDisplay.java
@@ -0,0 +1,76 @@
+/*****************************************************************************
+ * Copyright (c) 2018 CEA LIST, EclipseSource 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:
+ * EclipseSource - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
+
+import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest;
+import org.eclipse.papyrus.infra.emf.utils.EMFHelper;
+import org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils;
+import org.eclipse.papyrus.infra.services.edit.service.IElementEditService;
+import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
+import org.eclipse.papyrus.junit.utils.rules.PluginResource;
+import org.eclipse.papyrus.uml.diagram.sequence.figures.GeneralOrderingDescriptor;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.GeneralOrdering;
+import org.eclipse.uml2.uml.UMLPackage.Literals;
+
+/**
+ * Test class to verify that DurationObservation links are properly displayed, and properly
+ * react to changes in the diagram around them (Visual or semantic).
+ */
+@PluginResource({ "resource/bugs/bug536631-durationLinks.di", "resource/bugs/style.css" })
+@ActiveDiagram("generalOrderingLinksTest")
+public class TestGeneralOrderingDisplay extends AbstractOccurrenceLinkTest<GeneralOrdering> {
+
+ public TestGeneralOrderingDisplay() {
+ super(new String[] {
+ "GeneralOrdering1",
+ "GeneralOrdering2",
+ "GeneralOrdering3",
+ "GeneralOrdering4",
+ "GeneralOrdering5",
+ "GeneralOrdering6",
+ "GeneralOrdering7"
+ }, GeneralOrdering.class,
+ GeneralOrderingDescriptor.class);
+ }
+
+ @Override
+ protected void doUnrelatedChange(GeneralOrdering linkToChange) {
+ // Rename the GeneralOrdering (This part of the test doesn't make much sense for GO; it
+ // was mostly designed for DurationLinks, which use a generic list to hold their source/target)
+ IElementEditService provider = ElementEditServiceUtils.getCommandProvider(linkToChange);
+ SetRequest request = new SetRequest(linkToChange, Literals.NAMED_ELEMENT__NAME, linkToChange.getName() + "Renamed");
+ editor.execute(provider.getEditCommand(request));
+ }
+
+ @Override
+ protected void doChangeTarget(GeneralOrdering linkToChange) {
+ GeneralOrdering ordering2 = (GeneralOrdering) EMFHelper.getEObject(links[1]);
+
+ IElementEditService provider = ElementEditServiceUtils.getCommandProvider(linkToChange);
+ SetRequest request = new SetRequest(linkToChange, Literals.GENERAL_ORDERING__AFTER, ordering2.getAfter());
+ editor.execute(provider.getEditCommand(request));
+ }
+
+ @Override
+ protected Element getSourceElement(GeneralOrdering link) {
+ return link.getBefore();
+ }
+
+ @Override
+ protected Element getTargetElement(GeneralOrdering link) {
+ return link.getAfter();
+ }
+
+}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TimeElementCreationTest.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TimeElementCreationTest.java
new file mode 100644
index 00000000000..dc4c61f571b
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TimeElementCreationTest.java
@@ -0,0 +1,451 @@
+/*****************************************************************************
+ * Copyright (c) 2018 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
+
+import static org.eclipse.papyrus.junit.matchers.MoreMatchers.greaterThan;
+import static org.eclipse.papyrus.junit.matchers.MoreMatchers.lessThan;
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.util.Arrays;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import org.eclipse.draw2d.Connection;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.PointList;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.draw2d.geometry.Translatable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.commands.Command;
+import org.eclipse.gmf.runtime.diagram.core.edithelpers.CreateElementRequestAdapter;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
+import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequestFactory;
+import org.eclipse.gmf.runtime.emf.type.core.IElementType;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.papyrus.infra.gmfdiag.common.service.palette.AspectUnspecifiedTypeCreationTool;
+import org.eclipse.papyrus.infra.types.core.registries.ElementTypeSetConfigurationRegistry;
+import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
+import org.eclipse.papyrus.junit.matchers.CommandMatchers;
+import org.eclipse.papyrus.junit.matchers.DiagramMatchers;
+import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
+import org.eclipse.papyrus.junit.utils.rules.PapyrusEditorFixture;
+import org.eclipse.papyrus.junit.utils.rules.PluginResource;
+import org.eclipse.papyrus.uml.diagram.sequence.providers.UMLElementTypes;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.uml2.uml.DestructionOccurrenceSpecification;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.ExecutionOccurrenceSpecification;
+import org.eclipse.uml2.uml.ExecutionSpecification;
+import org.eclipse.uml2.uml.Lifeline;
+import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.MessageEnd;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.TimeConstraint;
+import org.eclipse.uml2.uml.TimeObservation;
+import org.hamcrest.CustomTypeSafeMatcher;
+import org.hamcrest.Matcher;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+/**
+ * Regression tests for creation of {@link TimeObservation}s and {@link TimeConstraint}s
+ * in the sequence diagram editor, especially those tracked under the umbrella of
+ * <a href="http://eclip.se/537571">bug 537571</a>.
+ *
+ * @author Christian W. Damus
+ * @see <a href="http://eclip.se/537571">bug 537571</a>
+ */
+@PluginResource("resource/bugs/bug537571-times.di")
+@ActiveDiagram("scenario")
+@RunWith(Parameterized.class)
+public class TimeElementCreationTest extends AbstractPapyrusTest {
+
+ @Rule
+ public final PapyrusEditorFixture editor = new PapyrusEditorFixture();
+
+ private final What what;
+
+ static {
+ // Kick the modeled element types registry that is needed by the tests
+ ElementTypeSetConfigurationRegistry.getInstance();
+ }
+
+ /**
+ * Initializes me.
+ *
+ * @param what
+ * what to create
+ */
+ public TimeElementCreationTest(What what) {
+ super();
+
+ this.what = what;
+ }
+
+ @Test
+ public void createOnMessageSendOnLifeline() {
+ EditPart lifelineEP = editor.findEditPart("foo", Lifeline.class);
+ EditPart messageEP = editor.findEditPart("message1", Message.class);
+ PointList points = getGeometry(messageEP, PointList.class);
+
+ EditPart timeEP = editor.createShape(lifelineEP, what.getElementType(),
+ points.getFirstPoint(), null);
+ Element timeElement = what.getSemanticElement(timeEP);
+
+ NamedElement event = what.getEvent(timeElement);
+ assertThat("Not a message-end observed", event, instanceOf(MessageEnd.class));
+ assertThat("Wrong message-end observed", event.getName(), is("message1-send"));
+ what.assertOwner(this, timeElement);
+
+ assertThat("Wrong parent edit-part", timeEP.getParent(), is(lifelineEP));
+ }
+
+ @Test
+ public void createOnMessageReceiveOnLifeline() {
+ EditPart lifelineEP = editor.findEditPart("foo", Lifeline.class);
+ EditPart messageEP = editor.findEditPart("reply1", Message.class);
+ PointList points = getGeometry(messageEP, PointList.class);
+
+ EditPart timeEP = editor.createShape(lifelineEP, what.getElementType(),
+ points.getLastPoint(), null);
+ Element timeElement = what.getSemanticElement(timeEP);
+
+ NamedElement event = what.getEvent(timeElement);
+ assertThat("Not a message-end observed", event, instanceOf(MessageEnd.class));
+ assertThat("Wrong message-end observed", event.getName(), is("reply1-recv"));
+ what.assertOwner(this, timeElement);
+
+ assertThat("Wrong parent edit-part", timeEP.getParent(), is(lifelineEP));
+ }
+
+ @Test
+ public void createOnMessageReceiveOnExecution() {
+ EditPart execEP = editor.findEditPart("exec2", ExecutionSpecification.class);
+ EditPart messageEP = editor.findEditPart("message4", Message.class);
+ Rectangle bounds = getGeometry(execEP, Rectangle.class);
+ PointList points = getGeometry(messageEP, PointList.class);
+
+ EditPart timeEP = editor.createShape(execEP, what.getElementType(),
+ new Point(bounds.getTop().x(), points.getLastPoint().y()), null);
+ Element timeElement = what.getSemanticElement(timeEP);
+
+ NamedElement event = what.getEvent(timeElement);
+ assertThat("Not a message-end observed", event, instanceOf(MessageEnd.class));
+ assertThat("Wrong message-end observed", event.getName(), is("message4-recv"));
+ what.assertOwner(this, timeElement);
+
+ EditPart lifelineEP = editor.findEditPart("foo", Lifeline.class);
+ assertThat("Wrong parent edit-part", timeEP.getParent(), is(lifelineEP));
+ }
+
+ @Test
+ public void createOnDestructionOccurrence() {
+ EditPart destructionEP = editor.findEditPart("destroy2", DestructionOccurrenceSpecification.class);
+ Rectangle bounds = getGeometry(destructionEP, Rectangle.class);
+
+ EditPart timeEP = editor.createShape(destructionEP, what.getElementType(),
+ bounds.getCenter(), null);
+ Element timeElement = what.getSemanticElement(timeEP);
+
+ NamedElement event = what.getEvent(timeElement);
+ assertThat("Not a destruction occurrence observed", event, instanceOf(DestructionOccurrenceSpecification.class));
+ assertThat("Wrong destruction occurrence observed", event.getName(), is("destroy2"));
+ what.assertOwner(this, timeElement);
+
+ assertThat("Wrong parent edit-part", timeEP.getParent(), is(destructionEP));
+ }
+
+ @Test
+ public void createOnExecutionStart() {
+ EditPart execEP = editor.findEditPart("exec2", ExecutionSpecification.class);
+ Rectangle bounds = getGeometry(execEP, Rectangle.class);
+
+ EditPart timeEP = editor.createShape(execEP, what.getElementType(),
+ bounds.getTop().getTranslated(0, 7), null); // Within threshold below the top
+ Element timeElement = what.getSemanticElement(timeEP);
+
+ NamedElement event = what.getEvent(timeElement);
+ assertThat("Not an execution occurrence observed", event, instanceOf(ExecutionOccurrenceSpecification.class));
+ assertThat("Wrong execution occurrence observed", event.getName(), is("exec2-start"));
+ what.assertOwner(this, timeElement);
+
+ assertThat("Wrong parent edit-part", timeEP.getParent(), is(execEP));
+ }
+
+ @Test
+ public void createOnExecutionFinish() {
+ EditPart execEP = editor.findEditPart("exec2", ExecutionSpecification.class);
+ Rectangle bounds = getGeometry(execEP, Rectangle.class);
+
+ EditPart timeEP = editor.createShape(execEP, what.getElementType(),
+ bounds.getBottom().getTranslated(0, -7), null); // Above the bottom
+ Element timeElement = what.getSemanticElement(timeEP);
+
+ NamedElement event = what.getEvent(timeElement);
+ assertThat("Not an execution occurrence observed", event, instanceOf(ExecutionOccurrenceSpecification.class));
+ assertThat("Wrong execution occurrence observed", event.getName(), is("exec2-finish"));
+ what.assertOwner(this, timeElement);
+
+ assertThat("Wrong parent edit-part", timeEP.getParent(), is(execEP));
+ }
+
+ /**
+ * Test placement of the time element on a lifeline creation where the creation message
+ * is incoming from the left.
+ */
+ @Test
+ public void createOnLifelineCreationLeftToRightCreateMessage() {
+ EditPart lifelineEP = editor.findEditPart("thing", Lifeline.class);
+ Point llTop = getGeometry(lifelineEP, Rectangle.class).getTop();
+
+ EditPart timeEP = editor.createShape(lifelineEP, what.getElementType(),
+ llTop.getTranslated(0, 7), null);
+ Element timeElement = what.getSemanticElement(timeEP);
+
+ NamedElement event = what.getEvent(timeElement);
+ assertThat("Not a message-end observed", event, instanceOf(MessageEnd.class));
+ assertThat("Wrong message-end observed", event.getName(), is("create1-recv"));
+ what.assertOwner(this, timeElement);
+
+ assertThat("Wrong parent edit-part", timeEP.getParent(), is(lifelineEP));
+
+ Rectangle timeBounds = getGeometry(timeEP, Rectangle.class);
+ assertThat("Wrong side of lifeline head", timeBounds.getCenter().x(), greaterThan(llTop.x()));
+ }
+
+ /**
+ * Test placement of the time element on a lifeline creation where the creation message
+ * is incoming from the right.
+ */
+ @Test
+ public void createOnLifelineCreationRightToLeftCreateMessage() {
+ EditPart lifelineEP = editor.findEditPart("whatsit", Lifeline.class);
+ Point llTop = getGeometry(lifelineEP, Rectangle.class).getTop();
+
+ EditPart timeEP = editor.createShape(lifelineEP, what.getElementType(),
+ llTop.getTranslated(0, 7), null);
+ Element timeElement = what.getSemanticElement(timeEP);
+
+ NamedElement event = what.getEvent(timeElement);
+ assertThat("Not a message-end observed", event, instanceOf(MessageEnd.class));
+ assertThat("Wrong message-end observed", event.getName(), is("create2-recv"));
+ what.assertOwner(this, timeElement);
+
+ assertThat("Wrong parent edit-part", timeEP.getParent(), is(lifelineEP));
+
+ Rectangle timeBounds = getGeometry(timeEP, Rectangle.class);
+ assertThat("Wrong side of lifeline head", timeBounds.getCenter().x(), lessThan(llTop.x()));
+ }
+
+ /**
+ * Verify that a time observation cannot be created just anywhere on the lifeline
+ * (it applies only to an occurrence specification).
+ */
+ @Test
+ public void noCreateOnLifeline() {
+ IGraphicalEditPart lifelineEP = (IGraphicalEditPart) editor.findEditPart("foo", Lifeline.class);
+ EditPart messageEP = editor.findEditPart("message1", Message.class);
+ PointList points = getGeometry(messageEP, PointList.class);
+
+ CreateViewRequest request = CreateViewRequestFactory.getCreateShapeRequest(
+ what.getElementType(),
+ lifelineEP.getDiagramPreferencesHint());
+
+ request.setLocation(points.getFirstPoint().getTranslated(0, -30));
+ // Default size
+
+ // The edit-parts depend on the tool setting this
+ CreateElementRequest semanticRequest = null;
+ if (!request.getViewDescriptors().isEmpty()) {
+ semanticRequest = (CreateElementRequest) ((CreateElementRequestAdapter) request.getViewDescriptors().get(0).getElementAdapter()).getAdapter(CreateElementRequest.class);
+ if (semanticRequest != null) {
+ semanticRequest.setParameter(AspectUnspecifiedTypeCreationTool.INITIAL_MOUSE_LOCATION_FOR_CREATION, request.getLocation().getCopy());
+ }
+ }
+
+ EditPart target = lifelineEP.getTargetEditPart(request);
+ assertThat("No target edit part", target, notNullValue());
+ Command command = target.getCommand(request);
+ assertThat("Should not be able to create", command, not(CommandMatchers.GEF.canExecute()));
+ }
+
+ //
+ // Test framework
+ //
+
+ @Parameters(name = "{0}")
+ public static Iterable<Object[]> parameters() {
+ return Stream.of(What.values()).map(l -> new Object[] { l }).collect(Collectors.toList());
+ }
+
+ @Before
+ public void maximizeEditor() {
+ IEditorPart editor = this.editor.getEditor();
+ IWorkbenchPage page = editor.getSite().getPage();
+ page.setPartState(page.getReference(editor), IWorkbenchPage.STATE_MAXIMIZED);
+ this.editor.flushDisplayEvents();
+ }
+
+ /**
+ * Work around the absence of an {@code equals} method in the {@link PointList} class.
+ *
+ * @param geometry
+ * a geometry to test for equality with an actual observed geometry
+ * @return the geometry matcher
+ */
+ static Matcher<Object> equalGeometry(Object geometry) {
+ return new CustomTypeSafeMatcher<Object>("equals " + geometry) {
+ @Override
+ protected boolean matchesSafely(Object item) {
+
+ return ((item instanceof PointList) && (geometry instanceof PointList))
+ ? Arrays.equals(((PointList) item).toIntArray(),
+ ((PointList) geometry).toIntArray())
+ : Objects.equals(item, geometry);
+ }
+ };
+ }
+
+ /**
+ * Query the geometry of an interaction element in the diagram.
+ *
+ * @param interactionElement
+ * an interaction element (interaction fragment or message)
+ * @param type
+ * the type, either {@link Rectangle} or {@link PointList}, of the geometry to get
+ *
+ * @return its geometry, either a {@link Rectangle}, {@link PointList}, or {@code null}
+ * for elements that have no geometry of their own but would be implied by others (such
+ * as execution occurrences)
+ *
+ * @throws IllegalArgumentException
+ * if the geometry {@link type} is not recognized
+ */
+ <T extends Translatable> T getGeometry(EObject interactionElement, Class<T> type) {
+ T result = null;
+ GraphicalEditPart editPart = Optional.ofNullable(editor.findEditPart(interactionElement))
+ .filter(GraphicalEditPart.class::isInstance).map(GraphicalEditPart.class::cast)
+ .orElse(null);
+
+ // Some things don't have edit-parts, such as execution occurrences
+ if (editPart != null) {
+ result = getGeometry(editPart, type);
+ }
+
+ return result;
+ }
+
+ /**
+ * Query the geometry of an edit-part in the diagram.
+ *
+ * @param editPart
+ * an edit-part
+ * @param type
+ * the type, either {@link Rectangle} or {@link PointList}, of the geometry to get
+ *
+ * @return its geometry, either a {@link Rectangle}, {@link PointList}, or {@code null}
+ * for elements that have no geometry of their own but would be implied by others (such
+ * as execution occurrences)
+ *
+ * @throws IllegalArgumentException
+ * if the geometry {@link type} is not recognized
+ */
+ static <T extends Translatable> T getGeometry(EditPart editPart, Class<T> type) {
+ if (!Rectangle.class.isAssignableFrom(type) && !PointList.class.isAssignableFrom(type)) {
+ throw new IllegalArgumentException("unrecognized geometry type: " + type.getName());
+ }
+
+ Object result = null;
+
+ // Some things don't have edit-parts, such as execution occurrences
+ if (editPart instanceof IGraphicalEditPart) {
+ IFigure figure = ((IGraphicalEditPart) editPart).getFigure();
+ result = (figure instanceof Connection)
+ ? ((Connection) figure).getPoints().getCopy()
+ : figure.getBounds().getCopy();
+ figure.getParent().translateToAbsolute((Translatable) result);
+ }
+
+ return type.cast(result);
+ }
+
+ //
+ // Nested types
+ //
+
+ enum What {
+ OBSERVATION(TimeObservation.class, UMLElementTypes.TimeObservation_Shape, TimeObservation::getEvent), //
+ CONSTRAINT(TimeConstraint.class, UMLElementTypes.TimeConstraint_Shape,
+ con -> con.getConstrainedElements().stream().filter(NamedElement.class::isInstance)
+ .map(NamedElement.class::cast).findFirst().orElse(null));
+
+ private final Class<?> type;
+ private final IElementType elementType;
+ private final Function<? super Element, ? extends NamedElement> eventFunction;
+
+ @SuppressWarnings("unchecked")
+ <T> What(Class<T> type, IElementType elementType, Function<? super T, ? extends NamedElement> eventFunction) {
+ this.type = type;
+ this.elementType = elementType;
+ this.eventFunction = (Function<? super Element, ? extends NamedElement>) eventFunction;
+ }
+
+ IElementType getElementType() {
+ return elementType;
+ }
+
+ Element getSemanticElement(EditPart editPart) {
+ assertThat(editPart, DiagramMatchers.semanticThat(instanceOf(type)));
+ return (Element) editPart.getAdapter(EObject.class);
+ }
+
+ NamedElement getEvent(Element timeElement) {
+ return eventFunction.apply(timeElement);
+ }
+
+ void assertOwner(TimeElementCreationTest test, Element timeElement) {
+ Element expectedOwner;
+
+ switch (this) {
+ case CONSTRAINT:
+ // The interaction
+ expectedOwner = (Element) test.editor.getActiveDiagram().resolveSemanticElement();
+ break;
+ default:
+ expectedOwner = test.editor.getModel();
+ break;
+ }
+
+ assertThat("Wrong owner", timeElement.getOwner(), is(expectedOwner));
+ }
+ }
+}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TimeElementMoveTest.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TimeElementMoveTest.java
new file mode 100644
index 00000000000..fa290a310f6
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/TimeElementMoveTest.java
@@ -0,0 +1,195 @@
+/*****************************************************************************
+ * Copyright (c) 2018 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
+
+import static org.eclipse.papyrus.uml.diagram.sequence.tests.bug.TimeElementCreationTest.getGeometry;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.util.Arrays;
+import java.util.Objects;
+import java.util.Optional;
+
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.PointList;
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.gef.ConnectionEditPart;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.gef.requests.BendpointRequest;
+import org.eclipse.gef.requests.ChangeBoundsRequest;
+import org.eclipse.papyrus.infra.types.core.registries.ElementTypeSetConfigurationRegistry;
+import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest;
+import org.eclipse.papyrus.junit.utils.rules.ActiveDiagram;
+import org.eclipse.papyrus.junit.utils.rules.PapyrusEditorFixture;
+import org.eclipse.papyrus.junit.utils.rules.PluginResource;
+import org.eclipse.papyrus.uml.diagram.sequence.tests.bug.TimeElementCreationTest.What;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.uml2.uml.ExecutionSpecification;
+import org.eclipse.uml2.uml.Lifeline;
+import org.eclipse.uml2.uml.Message;
+import org.eclipse.uml2.uml.TimeConstraint;
+import org.eclipse.uml2.uml.TimeObservation;
+import org.hamcrest.CustomTypeSafeMatcher;
+import org.hamcrest.Matcher;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+/**
+ * Regression tests for moving (with undo) of {@link TimeObservation}s and
+ * {@link TimeConstraint}s in the sequence diagram editor.
+ *
+ * @author Christian W. Damus
+ * @see <a href="http://eclip.se/537571">bug 537571</a>
+ */
+@PluginResource("resource/bugs/bug537571-times.di")
+@ActiveDiagram("scenario")
+@RunWith(Parameterized.class)
+public class TimeElementMoveTest extends AbstractPapyrusTest {
+ private static final boolean SEND = true;
+ private static final boolean RECV = true;
+
+ @Rule
+ public final PapyrusEditorFixture editor = new PapyrusEditorFixture();
+
+ private final What what;
+
+ static {
+ // Kick the modeled element types registry that is needed by the tests
+ ElementTypeSetConfigurationRegistry.getInstance();
+ }
+
+ /**
+ * Initializes me.
+ *
+ * @param what
+ * what to create
+ */
+ public TimeElementMoveTest(What what) {
+ super();
+
+ this.what = what;
+ }
+
+ @Test
+ public void moveOnMessageSendOnLifeline() {
+ EditPart lifelineEP = editor.findEditPart("foo", Lifeline.class);
+ EditPart messageEP = editor.findEditPart("message1", Message.class);
+ PointList points = getGeometry(messageEP, PointList.class);
+
+ EditPart timeEP = editor.createShape(lifelineEP, what.getElementType(),
+ points.getFirstPoint(), null);
+
+ moveMessageAssertion(messageEP, timeEP, SEND);
+ }
+
+ private void moveMessageAssertion(EditPart messageEP, EditPart timeEP, boolean sourceEnd) {
+ PointList messageGeom = getGeometry(messageEP, PointList.class);
+ int messageY = (sourceEnd ? messageGeom.getFirstPoint() : messageGeom.getLastPoint()).y();
+ Rectangle original = getGeometry(timeEP, Rectangle.class);
+ Rectangle expected = original.getCopy();
+ expected.setY(messageY - 20);
+
+ move(messageEP, 0, -20);
+
+ assertThat("Not moved correctly", getGeometry(timeEP, Rectangle.class), equalGeometry(expected));
+
+ expected.translate(0, 20);
+ editor.undo();
+
+ assertThat("Not tracked on undo", getGeometry(timeEP, Rectangle.class), equalGeometry(original));
+ }
+
+ @Test
+ public void moveOnMessageReceiveOnExecution() {
+ EditPart execEP = editor.findEditPart("exec2", ExecutionSpecification.class);
+ EditPart messageEP = editor.findEditPart("message4", Message.class);
+ Rectangle bounds = getGeometry(execEP, Rectangle.class);
+ PointList points = getGeometry(messageEP, PointList.class);
+
+ EditPart timeEP = editor.createShape(execEP, what.getElementType(),
+ new Point(bounds.getTop().x(), points.getLastPoint().y()), null);
+
+ moveMessageAssertion(messageEP, timeEP, RECV);
+ }
+
+ //
+ // Test framework
+ //
+
+ @Parameters(name = "{0}")
+ public static Iterable<Object[]> parameters() {
+ return TimeElementCreationTest.parameters();
+ }
+
+ @Before
+ public void maximizeEditor() {
+ IEditorPart editor = this.editor.getEditor();
+ IWorkbenchPage page = editor.getSite().getPage();
+ page.setPartState(page.getReference(editor), IWorkbenchPage.STATE_MAXIMIZED);
+ this.editor.flushDisplayEvents();
+ }
+
+ /**
+ * Work around the absence of an {@code equals} method in the {@link PointList} class.
+ *
+ * @param geometry
+ * a geometry to test for equality with an actual observed geometry
+ * @return the geometry matcher
+ */
+ static Matcher<Object> equalGeometry(Object geometry) {
+ return new CustomTypeSafeMatcher<Object>("equals " + geometry) {
+ @Override
+ protected boolean matchesSafely(Object item) {
+
+ return ((item instanceof PointList) && (geometry instanceof PointList))
+ ? Arrays.equals(((PointList) item).toIntArray(),
+ ((PointList) geometry).toIntArray())
+ : Objects.equals(item, geometry);
+ }
+ };
+ }
+
+ void move(EditPart editPart, int deltaX, int deltaY) {
+ Request move;
+ if (editPart instanceof ConnectionEditPart) {
+ ConnectionEditPart connection = (ConnectionEditPart) editPart;
+ Point mid = getGeometry(connection, PointList.class).getMidpoint();
+ mid.translate(deltaX, deltaY);
+
+ // Messages are moved by the gesture that creates bendpoints
+ BendpointRequest bendpoint = new BendpointRequest();
+ bendpoint.setType(RequestConstants.REQ_CREATE_BENDPOINT);
+ bendpoint.setSource(connection);
+ bendpoint.setLocation(mid);
+ move = bendpoint;
+ } else {
+ ChangeBoundsRequest bounds = new ChangeBoundsRequest(RequestConstants.REQ_MOVE);
+ bounds.setEditParts(editPart);
+ bounds.setConstrainedMove(false);
+ bounds.setMoveDelta(new Point(deltaX, deltaY));
+ move = bounds;
+ }
+
+ EditPart target = editPart.getTargetEditPart(move);
+ editor.execute(Optional.ofNullable(target).orElse(editPart).getCommand(move));
+ }
+}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/canonical/TestSequenceDiagramChildNode.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/canonical/TestSequenceDiagramChildNode.java
index 592168389df..08ca1cd2a13 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/canonical/TestSequenceDiagramChildNode.java
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/canonical/TestSequenceDiagramChildNode.java
@@ -79,10 +79,10 @@ public class TestSequenceDiagramChildNode extends TestChildNode {
testToManageChildNode(UMLElementTypes.BehaviorExecutionSpecification_Shape, lifelineProvider);
}
-// @Test
-// public void testToManageDestructionOccurrence() {
-// testToManageChildNode(UMLElementTypes.DestructionOccurrenceSpecification_Shape, lifelineProvider);
-// }
+ // @Test
+ // public void testToManageDestructionOccurrence() {
+ // testToManageChildNode(UMLElementTypes.DestructionOccurrenceSpecification_Shape, lifelineProvider);
+ // }
@@ -93,15 +93,6 @@ public class TestSequenceDiagramChildNode extends TestChildNode {
semanticChild = true;
}
-
- @Test
- public void testToManageTimeConstraint() {
- createChildNode(UMLElementTypes.ActionExecutionSpecification_Shape, lifelineProvider);
- semanticChild = false;
- testToManageChildNode(UMLElementTypes.TimeConstraint_Shape, executionProvider);
- semanticChild = true;
- }
-
@Test
public void testToManageDurationConstraint() {
createChildNode(UMLElementTypes.ActionExecutionSpecification_Shape, lifelineProvider);
@@ -109,7 +100,7 @@ public class TestSequenceDiagramChildNode extends TestChildNode {
testToCreateChildNode(UMLElementTypes.ActionExecutionSpecification_Shape, executionProvider);
{
- //DESTROY SEMANTIC+ VIEW
+ // DESTROY SEMANTIC+ VIEW
IChildTestProvider provider = executionProvider;
assertTrue(DESTROY_DELETION + INITIALIZATION_TEST, provider.getEditPartChildrenSize() == 1);
assertTrue(DESTROY_DELETION + INITIALIZATION_TEST, provider.getViewChildrenSize() == 1);
@@ -142,34 +133,42 @@ public class TestSequenceDiagramChildNode extends TestChildNode {
IChildTestProvider executionProvider = new IChildTestProvider() {
+ @Override
public int getEditPartChildrenSize() {
return TestSequenceDiagramChildNode.this.lifelineProvider.getEditPartChildrenSize() - 1; // ignore ActionExecution
}
+ @Override
public int getSemanticChildrenSize() {
return TestSequenceDiagramChildNode.this.lifelineProvider.getSemanticChildrenSize() - 1;
}
+ @Override
public int getViewChildrenSize() {
return TestSequenceDiagramChildNode.this.lifelineProvider.getViewChildrenSize() - 1;
}
+ @Override
public Element getDropElement() {
return null;
}
+ @Override
public GraphicalEditPart getParentEditPart() {
return TestSequenceDiagramChildNode.this.lifelineProvider.getParentEditPart();
}
+ @Override
public GraphicalEditPart getDestroyEditPart() {
- return (GraphicalEditPart)getParentEditPart().getChildren().get(2);
+ return (GraphicalEditPart) getParentEditPart().getChildren().get(2);
}
+ @Override
public boolean hasSemanticChild() {
return semanticChild;
}
+ @Override
public Point getChildLocation(GraphicalEditPart parentEditPart) {
return TestSequenceDiagramChildNode.this.lifelineProvider.getChildLocation(parentEditPart);
}
@@ -177,15 +176,17 @@ public class TestSequenceDiagramChildNode extends TestChildNode {
IChildTestProvider lifelineProvider = new IChildTestProvider() {
+ @Override
public int getEditPartChildrenSize() {
return getParentEditPart().getChildren().size() - 1; // ignore LifelineNameEditPart
}
+ @Override
public int getSemanticChildrenSize() {
- Lifeline lifeline = ((Lifeline)getParentEditPart().getNotationView().getElement());
+ Lifeline lifeline = ((Lifeline) getParentEditPart().getNotationView().getElement());
int count = 0;
- for(InteractionFragment f : lifeline.getCoveredBys()) {
- if(f instanceof DestructionOccurrenceSpecification || f instanceof ActionExecutionSpecification || f instanceof BehaviorExecutionSpecification) {
+ for (InteractionFragment f : lifeline.getCoveredBys()) {
+ if (f instanceof DestructionOccurrenceSpecification || f instanceof ActionExecutionSpecification || f instanceof BehaviorExecutionSpecification) {
count++;
}
}
@@ -193,41 +194,47 @@ public class TestSequenceDiagramChildNode extends TestChildNode {
return count;
}
+ @Override
public int getViewChildrenSize() {
int count = 0;
- Lifeline lifeline = ((Lifeline)getParentEditPart().getNotationView().getElement());
+ Lifeline lifeline = ((Lifeline) getParentEditPart().getNotationView().getElement());
EList children = getParentEditPart().getNotationView().getChildren();
- for(Object object : children) {
- View view = (View)object;
- if(lifeline != ViewUtil.resolveSemanticElement(view)) {
+ for (Object object : children) {
+ View view = (View) object;
+ if (lifeline != ViewUtil.resolveSemanticElement(view)) {
count++;
}
}
return count;
}
+ @Override
public Element getDropElement() {
return null;
}
+ @Override
public GraphicalEditPart getParentEditPart() {
- if(containerEditPart == null) {
- GraphicalEditPart ep = (GraphicalEditPart)getRootEditPart().getChildren().get(0);
+ if (containerEditPart == null) {
+ GraphicalEditPart ep = (GraphicalEditPart) getRootEditPart().getChildren().get(0);
containerEditPart = ep;
}
return containerEditPart;
}
+ @Override
public GraphicalEditPart getDestroyEditPart() {
- return (GraphicalEditPart)getParentEditPart().getChildren().get(1);
+ return (GraphicalEditPart) getParentEditPart().getChildren().get(1);
}
+ @Override
public boolean hasSemanticChild() {
return semanticChild;
}
+ @Override
public Point getChildLocation(GraphicalEditPart parentEditPart) {
- IFigure LifelineFigure = ((LifelineEditPart)parentEditPart).getPrimaryShape();
+ IFigure LifelineFigure = ((LifelineEditPart) parentEditPart).getPrimaryShape();
DisplayUtils.flushEventLoop();
Rectangle b = LifelineFigure.getBounds().getCopy();
LifelineFigure.translateToAbsolute(b);
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/canonical/TestSequenceDiagramInsideInteraction.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/canonical/TestSequenceDiagramInsideInteraction.java
index 9047b6bed50..ce98612832f 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/canonical/TestSequenceDiagramInsideInteraction.java
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/canonical/TestSequenceDiagramInsideInteraction.java
@@ -1,7 +1,7 @@
/*****************************************************************************
* Copyright (c) 2012 CEA LIST.
*
- *
+ *
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
@@ -66,11 +66,11 @@ public class TestSequenceDiagramInsideInteraction extends AbstractTestSequenceCh
if (name.length() < ((ITextAwareEditPart) namedEditPart).getEditText().length()) {
Assert.assertEquals(" the name must contain the name of the metaclass", name, ((ITextAwareEditPart) namedEditPart).getEditText().substring(0, name.length())); //$NON-NLS-1$
} else {
-
+
if(createdEditPart instanceof InteractionUseEditPart){
//this is a particularity of interactionUse
Assert.assertEquals(" the name must contain the name of the metaclass", "Ref", ((ITextAwareEditPart) namedEditPart).getEditText()); //$NON-NLS-1$
-
+
}
else{
// not the same it sure but display the mistake is important
@@ -110,7 +110,7 @@ public class TestSequenceDiagramInsideInteraction extends AbstractTestSequenceCh
@Override
protected boolean isSemanticTest() {
-
+
return false;
}
@@ -142,11 +142,6 @@ public class TestSequenceDiagramInsideInteraction extends AbstractTestSequenceCh
testToManageNode(UMLElementTypes.ConsiderIgnoreFragment_Shape, UMLPackage.eINSTANCE.getConsiderIgnoreFragment(),UMLElementTypes.Interaction_Shape, false);
}
- @Test
- public void testToManageDurationObservation() {
-
- testToManageNode(UMLElementTypes.DurationObservation_Shape,UMLPackage.eINSTANCE.getDurationObservation(),UMLElementTypes.Interaction_Shape ,false);
- }
/**
* Test to manage comment.
*/
@@ -159,7 +154,7 @@ public class TestSequenceDiagramInsideInteraction extends AbstractTestSequenceCh
public void testToManageInteractionUse() {
testToManageNode(UMLElementTypes.InteractionUse_Shape, UMLPackage.eINSTANCE.getInteractionUse(),UMLElementTypes.Interaction_Shape, false);
}
-
+
/**
* @see org.eclipse.papyrus.uml.diagram.tests.canonical.AbstractTestNode#testDrop(org.eclipse.gmf.runtime.emf.type.core.IElementType, org.eclipse.emf.ecore.EClass, int, int, int)
*
@@ -175,7 +170,7 @@ public class TestSequenceDiagramInsideInteraction extends AbstractTestSequenceCh
// DROP
assertEquals(DROP + INITIALIZATION_TEST, expectedGraphicalChildren, getRootView().getChildren().size());
DropObjectsRequest dropObjectsRequest = new DropObjectsRequest();
- ArrayList<Element> list = new ArrayList<Element>();
+ ArrayList<Element> list = new ArrayList<>();
for (Element element : getRootSemanticModel().getModel().getOwnedElements()) {
if (element != null && element.eClass().equals(eClass)) {
list.add(element);
@@ -201,7 +196,7 @@ public class TestSequenceDiagramInsideInteraction extends AbstractTestSequenceCh
super.testDrop(type, eClass, expectedGraphicalChildren, expectedSemanticChildren, addedGraphicalChildren);
}
}
-
+
/**
* @see org.eclipse.papyrus.uml.diagram.tests.canonical.AbstractTestNode#createViewRequestShapeContainer()
*

Back to the top