Bug 468073: [codegen] generator ignores exclusions (part 5)
* Exclusions in state machines
* Fixes to exclusions in structural elements to take into account the
new UML Extensions model
* Updated tests
Change-Id: I9945af14f71a20cdb84480e2d7bb926e2f6b98e8
Signed-off-by: Ernesto Posse <eposse@gmail.com>
diff --git a/models/samples/ComputerSystem/expected_src/CMakeLists.txt b/models/samples/ComputerSystem/expected_src/CMakeLists.txt
index a6c8d76..347e28c 100644
--- a/models/samples/ComputerSystem/expected_src/CMakeLists.txt
+++ b/models/samples/ComputerSystem/expected_src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Generated 2017-02-27 14:38:09
+# Generated 2017-03-09 17:30:03
cmake_minimum_required(VERSION 2.8.7)
set(TARGET TopMain)
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.uml b/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.uml
index 2f16724..c33a356 100644
--- a/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.uml
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.uml
@@ -15,8 +15,22 @@
<ownedAttribute xmi:type="uml:Property" xmi:id="_BGWLYPk3EeaxQe9AQrYHAg" name="c2" visibility="public" type="_R4WlcPk2EeaxQe9AQrYHAg" redefinedProperty="_bBqTUPk2EeaxQe9AQrYHAg"/>
<ownedAttribute xmi:type="uml:Property" xmi:id="_dFG8UPk3EeaxQe9AQrYHAg" name="c3" visibility="public" redefinedProperty="_cigbAPk2EeaxQe9AQrYHAg"/>
</packagedElement>
- <packagedElement xmi:type="uml:Class" xmi:id="_QnCHgPk2EeaxQe9AQrYHAg" name="C"/>
- <packagedElement xmi:type="uml:Class" xmi:id="_R4WlcPk2EeaxQe9AQrYHAg" name="D"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_QnCHgPk2EeaxQe9AQrYHAg" name="C">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_M2uq0AUMEeeC7eUse1vXQQ" name="a1" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QtHGgAUMEeeC7eUse1vXQQ" name="a2" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_SjgAYAUMEeeC7eUse1vXQQ" name="a3" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_R4WlcPk2EeaxQe9AQrYHAg" name="D">
+ <generalization xmi:type="uml:Generalization" xmi:id="_LqN0YAUMEeeC7eUse1vXQQ" general="_QnCHgPk2EeaxQe9AQrYHAg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_WBa4wAUMEeeC7eUse1vXQQ" name="a2" visibility="public" redefinedProperty="_QtHGgAUMEeeC7eUse1vXQQ"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ZwUzcAUMEeeC7eUse1vXQQ" name="a3" visibility="public" redefinedProperty="_SjgAYAUMEeeC7eUse1vXQQ"/>
+ </packagedElement>
<profileApplication xmi:type="uml:ProfileApplication" xmi:id="_4GtMUPk1EeaxQe9AQrYHAg">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4GwPoPk1EeaxQe9AQrYHAg" source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt#/"/>
@@ -31,4 +45,6 @@
<UMLRealTime:RTRedefinedElement xmi:id="_fpHxMPk3EeaxQe9AQrYHAg" base_RedefinableElement="_dFG8UPk3EeaxQe9AQrYHAg"/>
<UMLRealTime:CapsulePart xmi:id="_IjVE4Pk4EeaxQe9AQrYHAg" base_Property="_IjJesPk4EeaxQe9AQrYHAg"/>
<UMLRealTime:CapsulePart xmi:id="_JFEgAPk4EeaxQe9AQrYHAg" base_Property="_JFDR4Pk4EeaxQe9AQrYHAg"/>
+ <UMLRealTime:RTRedefinedElement xmi:id="_dvbGQAUMEeeC7eUse1vXQQ" base_RedefinableElement="_WBa4wAUMEeeC7eUse1vXQQ" rootFragment="_QtHGgAUMEeeC7eUse1vXQQ"/>
+ <UMLRealTime:RTRedefinedElement xmi:id="_lm5Y0AUMEeeC7eUse1vXQQ" base_RedefinableElement="_ZwUzcAUMEeeC7eUse1vXQQ"/>
</xmi:XMI>
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.cc b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.cc
index 140ce2d..c861ce8 100644
--- a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.cc
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.cc
@@ -7,9 +7,33 @@
const UMLRTObject_field C::fields[] =
{
+ {
+ "a1",
+ &UMLRTType_bool,
+ offsetof( C, a1 ),
+ 1,
+ 0
+ },
+ {
+ "a2",
+ &UMLRTType_int,
+ offsetof( C, a2 ),
+ 1,
+ 0
+ },
+ {
+ "a3",
+ &UMLRTType_double,
+ offsetof( C, a3 ),
+ 1,
+ 0
+ }
};
+
+
+
const UMLRTObject_class UMLRTType_C =
{
UMLRTObjectInitialize<C>,
@@ -22,7 +46,7 @@
NULL,
{
sizeof( C ),
- 0,
+ 3,
C::fields
},
UMLRTOBJECTCLASS_DEFAULT_VERSION,
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.hh b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.hh
index 6829884..f7f73e9 100644
--- a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.hh
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.hh
@@ -7,6 +7,9 @@
class C
{
public:
+ bool a1;
+ int a2;
+ double a3;
static const UMLRTObject_field fields[];
};
extern const UMLRTObject_class UMLRTType_C;
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/CMakeLists.txt
index 6725497..0ecdccb 100644
--- a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/CMakeLists.txt
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Generated 2017-02-22 17:52:08
+# Generated 2017-03-09 16:21:30
cmake_minimum_required(VERSION 2.8.7)
set(TARGET TopMain)
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.cc b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.cc
index ea545da..28b851c 100644
--- a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.cc
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.cc
@@ -7,9 +7,25 @@
const UMLRTObject_field D::fields[] =
{
+ {
+ "a2",
+ &UMLRTType_int,
+ offsetof( D, a2 ),
+ 1,
+ 0
+ },
+ {
+ "a1",
+ &UMLRTType_bool,
+ offsetof( D, a1 ),
+ 1,
+ 0
+ }
};
+
+
const UMLRTObject_class UMLRTType_D =
{
UMLRTObjectInitialize<D>,
@@ -22,7 +38,7 @@
NULL,
{
sizeof( D ),
- 0,
+ 2,
D::fields
},
UMLRTOBJECTCLASS_DEFAULT_VERSION,
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.hh b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.hh
index 4462386..07830eb 100644
--- a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.hh
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.hh
@@ -2,11 +2,14 @@
#ifndef D_HH
#define D_HH
+#include "C.hh"
#include "umlrtobjectclass.hh"
-class D
+class D : public C
{
public:
+ int a2;
+ bool a1;
static const UMLRTObject_field fields[];
};
extern const UMLRTObject_class UMLRTType_D;
diff --git a/models/tests/codepattern/structure/ExclusionsConnectors/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/ExclusionsConnectors/expected_src/CMakeLists.txt
index 85aa846..c00fea1 100644
--- a/models/tests/codepattern/structure/ExclusionsConnectors/expected_src/CMakeLists.txt
+++ b/models/tests/codepattern/structure/ExclusionsConnectors/expected_src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Generated 2017-02-16 14:45:13
+# Generated 2017-03-09 16:27:42
cmake_minimum_required(VERSION 2.8.7)
set(TARGET TopMain)
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/A.cc b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/A.cc
new file mode 100644
index 0000000..2931ce8
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/A.cc
@@ -0,0 +1,76 @@
+
+#include "A.hh"
+
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsuleclass.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_A::Capsule_A( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: UMLRTCapsule( NULL, cd, st, border, internal, isStat )
+{
+}
+
+
+void Capsule_A::bindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_A::unbindPort( bool isBorder, int portId, int index )
+{
+}
+
+C Capsule_A::op1( char * x, D y )
+{
+ /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsOperations/ExclusionsOperations.uml ExclusionsOperations::A operation op1 */
+ // op1
+ /* UMLRTGEN-USERREGION-END */
+}
+
+C Capsule_A::op2( char * x, D y )
+{
+ /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsOperations/ExclusionsOperations.uml ExclusionsOperations::A operation op2 */
+ /* UMLRTGEN-USERREGION-END */
+}
+
+C Capsule_A::op3( char * x, D y )
+{
+ /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsOperations/ExclusionsOperations.uml ExclusionsOperations::A operation op3 */
+ // op3
+ /* UMLRTGEN-USERREGION-END */
+}
+
+C Capsule_A::op4( char * x, D y )
+{
+ /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsOperations/ExclusionsOperations.uml ExclusionsOperations::A operation op4 */
+ /* UMLRTGEN-USERREGION-END */
+}
+
+void Capsule_A::initialize( const UMLRTMessage & msg )
+{
+}
+
+void Capsule_A::inject( const UMLRTMessage & msg )
+{
+}
+
+
+static void instantiate_A( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+ slot->capsule = new Capsule_A( &A, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass A =
+{
+ "A",
+ NULL,
+ instantiate_A,
+ 0,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ NULL
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/A.hh b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/A.hh
new file mode 100644
index 0000000..f22e200
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/A.hh
@@ -0,0 +1,32 @@
+
+#ifndef A_HH
+#define A_HH
+
+#include "C.hh"
+#include "D.hh"
+#include "umlrtcapsule.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_A : public UMLRTCapsule
+{
+public:
+ Capsule_A( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+ enum PartId
+ {
+ };
+ virtual void bindPort( bool isBorder, int portId, int index );
+ virtual void unbindPort( bool isBorder, int portId, int index );
+ C op1( char * x, D y );
+ C op2( char * x, D y );
+ C op3( char * x, D y );
+ C op4( char * x, D y );
+ virtual void initialize( const UMLRTMessage & msg );
+ virtual void inject( const UMLRTMessage & msg );
+};
+extern const UMLRTCapsuleClass A;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/B.cc b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/B.cc
new file mode 100644
index 0000000..6bdb5be
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/B.cc
@@ -0,0 +1,70 @@
+
+#include "B.hh"
+
+#include "A.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsuleclass.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_B::Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: Capsule_A( cd, st, border, internal, isStat )
+{
+}
+
+
+void Capsule_B::bindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_B::unbindPort( bool isBorder, int portId, int index )
+{
+}
+
+D Capsule_B::op2( char * x, C y )
+{
+ /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsOperations/ExclusionsOperations.uml ExclusionsOperations::B operation op2 */
+ // op2
+ /* UMLRTGEN-USERREGION-END */
+}
+
+C Capsule_B::op3( char * x, D y )
+{
+ /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsOperations/ExclusionsOperations.uml ExclusionsOperations::B operation op3 */
+ // rop3/* UMLRTGEN-USERREGION-END */
+}
+
+C Capsule_B::op4( char * x, D y )
+{
+ /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsOperations/ExclusionsOperations.uml ExclusionsOperations::B operation op4 */
+ // op4/* UMLRTGEN-USERREGION-END */
+}
+
+void Capsule_B::initialize( const UMLRTMessage & msg )
+{
+}
+
+void Capsule_B::inject( const UMLRTMessage & msg )
+{
+}
+
+
+static void instantiate_B( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+ slot->capsule = new Capsule_B( &B, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass B =
+{
+ "B",
+ &A,
+ instantiate_B,
+ 0,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ NULL
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/B.hh b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/B.hh
new file mode 100644
index 0000000..3349293
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/B.hh
@@ -0,0 +1,31 @@
+
+#ifndef B_HH
+#define B_HH
+
+#include "A.hh"
+#include "C.hh"
+#include "D.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_B : public Capsule_A
+{
+public:
+ Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+ enum PartId
+ {
+ };
+ virtual void bindPort( bool isBorder, int portId, int index );
+ virtual void unbindPort( bool isBorder, int portId, int index );
+ D op2( char * x, C y );
+ C op3( char * x, D y );
+ C op4( char * x, D y );
+ virtual void initialize( const UMLRTMessage & msg );
+ virtual void inject( const UMLRTMessage & msg );
+};
+extern const UMLRTCapsuleClass B;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/C.cc b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/C.cc
new file mode 100644
index 0000000..140ce2d
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/C.cc
@@ -0,0 +1,31 @@
+
+#include "C.hh"
+
+#include "umlrtobjectclass.hh"
+#include "umlrtobjectclassgeneric.hh"
+#include <cstddef>
+
+const UMLRTObject_field C::fields[] =
+{
+};
+
+
+const UMLRTObject_class UMLRTType_C =
+{
+ UMLRTObjectInitialize<C>,
+ UMLRTObjectCopy<C>,
+ UMLRTObject_decode,
+ UMLRTObject_encode,
+ UMLRTObjectDestroy<C>,
+ UMLRTObject_fprintf,
+ "C",
+ NULL,
+ {
+ sizeof( C ),
+ 0,
+ C::fields
+ },
+ UMLRTOBJECTCLASS_DEFAULT_VERSION,
+ UMLRTOBJECTCLASS_DEFAULT_BACKWARDS
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/C.hh b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/C.hh
new file mode 100644
index 0000000..6829884
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/C.hh
@@ -0,0 +1,15 @@
+
+#ifndef C_HH
+#define C_HH
+
+#include "umlrtobjectclass.hh"
+
+class C
+{
+public:
+ static const UMLRTObject_field fields[];
+};
+extern const UMLRTObject_class UMLRTType_C;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/CMakeLists.txt
new file mode 100644
index 0000000..4544ab3
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated 2017-03-09 16:31:15
+
+cmake_minimum_required(VERSION 2.8.7)
+set(TARGET TopMain)
+project(${TARGET})
+
+# require location of supporting RTS
+if (NOT UMLRTS_ROOT)
+ if (DEFINED ENV{UMLRTS_ROOT})
+ set(UMLRTS_ROOT $ENV{UMLRTS_ROOT})
+ else ()
+ set(UMLRTS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/umlrt.rts)
+ endif ()
+endif ()
+
+# setup primary envars - provides tooling config
+include(${UMLRTS_ROOT}/build/buildenv.cmake)
+
+# model sources
+set(SRCS TopMain.cc C.cc D.cc A.cc B.cc Top.cc TopControllers.cc )
+
+# specify target
+add_executable(${TARGET} ${SRCS})
+
+# setup lib dependency support after defining TARGET
+include(${UMLRTS_ROOT}/build/rtslib.cmake)
+
+# compiler parameters
+set_target_properties(${TARGET} PROPERTIES COMPILE_OPTIONS "${COPTS}")
+set_target_properties(${TARGET} PROPERTIES COMPILE_DEFINITIONS "${CDEFS}")
+include_directories(${INCS})
+
+# linker parameters
+set_target_properties(${TARGET} PROPERTIES CMAKE_EXE_LINKER_FLAGS "${LOPTS}")
+target_link_libraries(${TARGET} ${LIBS})
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/D.cc b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/D.cc
new file mode 100644
index 0000000..ea545da
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/D.cc
@@ -0,0 +1,31 @@
+
+#include "D.hh"
+
+#include "umlrtobjectclass.hh"
+#include "umlrtobjectclassgeneric.hh"
+#include <cstddef>
+
+const UMLRTObject_field D::fields[] =
+{
+};
+
+
+const UMLRTObject_class UMLRTType_D =
+{
+ UMLRTObjectInitialize<D>,
+ UMLRTObjectCopy<D>,
+ UMLRTObject_decode,
+ UMLRTObject_encode,
+ UMLRTObjectDestroy<D>,
+ UMLRTObject_fprintf,
+ "D",
+ NULL,
+ {
+ sizeof( D ),
+ 0,
+ D::fields
+ },
+ UMLRTOBJECTCLASS_DEFAULT_VERSION,
+ UMLRTOBJECTCLASS_DEFAULT_BACKWARDS
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/D.hh b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/D.hh
new file mode 100644
index 0000000..d271a92
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/D.hh
@@ -0,0 +1,16 @@
+
+#ifndef D_HH
+#define D_HH
+
+#include "C.hh"
+#include "umlrtobjectclass.hh"
+
+class D : public C
+{
+public:
+ static const UMLRTObject_field fields[];
+};
+extern const UMLRTObject_class UMLRTType_D;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Makefile b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Makefile
new file mode 100644
index 0000000..0bcbd22
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Makefile
@@ -0,0 +1,11 @@
+##################################################
+# Default makefile
+# Redirect make to target makefile
+##################################################
+
+all:
+ make -f MakefileTop.mk all
+clean:
+ make -f MakefileTop.mk clean
+.PHONY:
+ make -f MakefileTop.mk all clean
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/MakefileTop.mk b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/MakefileTop.mk
new file mode 100644
index 0000000..a92bc1f
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/MakefileTop.mk
@@ -0,0 +1,49 @@
+# set default value for TARGETOS if is it not defined
+ifeq ($(TARGETOS), )
+$(warning warning: TARGETOS not defined. Choosing linux)
+TARGETOS=linux
+endif
+
+# set default value for BUILDTOOLS if is it not defined
+ifeq ($(BUILDTOOLS), )
+$(warning warning: BUILDTOOLS not defined. Choosing x86-gcc-4.6.3)
+BUILDTOOLS=x86-gcc-4.6.3
+endif
+
+# Location of RTS root.
+UMLRTS_ROOT ?= ./umlrt.rts
+
+CONFIG=$(TARGETOS).$(BUILDTOOLS)
+
+# Destination directory for the RTS services library.
+LIBDEST=$(UMLRTS_ROOT)/lib/$(CONFIG)
+
+include $(UMLRTS_ROOT)/build/host/host.mk
+include $(UMLRTS_ROOT)/build/buildtools/$(BUILDTOOLS)/buildtools.mk
+
+LD_PATHS=$(LIBDEST)
+CC_INCLUDES+=$(UMLRTS_ROOT)/include
+
+CC_DEFINES:=$(foreach d, $(CC_DEFINES), $(CC_DEF)$d)
+CC_INCLUDES:=$(foreach i, $(CC_INCLUDES), $(CC_INC)$i)
+LD_LIBS:=$(foreach i, $(LD_LIBS), $(LD_LIB)$i)
+LD_PATHS:=$(foreach i, $(LD_PATHS), $(LD_LIBPATH)$i)
+
+SRCS = TopMain.cc C.cc D.cc A.cc B.cc Top.cc TopControllers.cc
+OBJS = $(subst $(CC_EXT),$(OBJ_EXT),$(SRCS))
+
+MAIN = TopMain$(EXE_EXT)
+
+all: $(MAIN)
+
+$(MAIN): $(OBJS) $(UMLRTS_ROOT)/lib/$(CONFIG)/$(LIB_PRFX)rts$(LIB_EXT)
+ $(LD) $(LD_FLAGS) $(OBJS) $(LD_PATHS) $(LD_LIBS) $(LD_OUT)$@
+
+%$(OBJ_EXT) : %$(CC_EXT)
+ $(CC) $< $(CC_FLAGS) $(CC_DEFINES) $(CC_INCLUDES) $(CC_OUT)$@
+
+clean :
+ @echo $(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+ @$(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+
+.PHONY: all clean
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top-connections.log b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top-connections.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top-connections.log
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top.cc b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top.cc
new file mode 100644
index 0000000..ce5dcb2
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top.cc
@@ -0,0 +1,81 @@
+
+#include "Top.hh"
+
+#include "A.hh"
+#include "B.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcapsulepart.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsulerole.hh"
+#include "umlrtframeservice.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_Top::Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: UMLRTCapsule( NULL, cd, st, border, internal, isStat )
+, a( &slot->parts[part_a] )
+, b( &slot->parts[part_b] )
+{
+}
+
+
+
+
+void Capsule_Top::bindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_Top::unbindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_Top::initialize( const UMLRTMessage & msg )
+{
+}
+
+void Capsule_Top::inject( const UMLRTMessage & msg )
+{
+}
+
+
+static const UMLRTCapsuleRole roles[] =
+{
+ {
+ "a",
+ &A,
+ 1,
+ 1,
+ false,
+ false
+ },
+ {
+ "b",
+ &B,
+ 1,
+ 1,
+ false,
+ false
+ }
+};
+
+static void instantiate_Top( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+ A.instantiate( NULL, slot->parts[Capsule_Top::part_a].slots[0], UMLRTFrameService::createBorderPorts( slot->parts[Capsule_Top::part_a].slots[0], A.numPortRolesBorder ) );
+ B.instantiate( NULL, slot->parts[Capsule_Top::part_b].slots[0], UMLRTFrameService::createBorderPorts( slot->parts[Capsule_Top::part_b].slots[0], B.numPortRolesBorder ) );
+ slot->capsule = new Capsule_Top( &Top, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass Top =
+{
+ "Top",
+ NULL,
+ instantiate_Top,
+ 2,
+ roles,
+ 0,
+ NULL,
+ 0,
+ NULL
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top.hh b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top.hh
new file mode 100644
index 0000000..2c5910f
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top.hh
@@ -0,0 +1,33 @@
+
+#ifndef TOP_HH
+#define TOP_HH
+
+#include "umlrtcapsule.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCapsulePart;
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_Top : public UMLRTCapsule
+{
+public:
+ Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+ enum PartId
+ {
+ part_a,
+ part_b
+ };
+protected:
+ const UMLRTCapsulePart * const a;
+ const UMLRTCapsulePart * const b;
+public:
+ virtual void bindPort( bool isBorder, int portId, int index );
+ virtual void unbindPort( bool isBorder, int portId, int index );
+ virtual void initialize( const UMLRTMessage & msg );
+ virtual void inject( const UMLRTMessage & msg );
+};
+extern const UMLRTCapsuleClass Top;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopControllers.cc b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopControllers.cc
new file mode 100644
index 0000000..942d143
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopControllers.cc
@@ -0,0 +1,97 @@
+
+#include "TopControllers.hh"
+
+#include "A.hh"
+#include "B.hh"
+#include "Top.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcapsulepart.hh"
+#include "umlrtcontroller.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+
+
+static UMLRTController DefaultController_( "DefaultController" );
+
+UMLRTController * DefaultController = &DefaultController_;
+
+static Capsule_Top top( &Top, &Top_slots[InstId_Top], NULL, NULL, true );
+
+static UMLRTSlot * slots_Top[] =
+{
+ &Top_slots[InstId_Top_a],
+ &Top_slots[InstId_Top_b]
+};
+
+static UMLRTCapsulePart parts_Top[] =
+{
+ {
+ &Top,
+ Capsule_Top::part_a,
+ 1,
+ &slots_Top[0]
+ },
+ {
+ &Top,
+ Capsule_Top::part_b,
+ 1,
+ &slots_Top[1]
+ }
+};
+
+static Capsule_A top_a( &A, &Top_slots[InstId_Top_a], NULL, NULL, true );
+
+static Capsule_B top_b( &B, &Top_slots[InstId_Top_b], NULL, NULL, true );
+
+UMLRTSlot Top_slots[] =
+{
+ {
+ "Top",
+ 0,
+ &Top,
+ NULL,
+ 0,
+ &top,
+ &DefaultController_,
+ 2,
+ parts_Top,
+ 0,
+ NULL,
+ NULL,
+ true,
+ false
+ },
+ {
+ "Top.a",
+ 0,
+ &A,
+ &Top,
+ Capsule_Top::part_a,
+ &top_a,
+ &DefaultController_,
+ 0,
+ NULL,
+ 0,
+ NULL,
+ NULL,
+ true,
+ false
+ },
+ {
+ "Top.b",
+ 0,
+ &B,
+ &Top,
+ Capsule_Top::part_b,
+ &top_b,
+ &DefaultController_,
+ 0,
+ NULL,
+ 0,
+ NULL,
+ NULL,
+ true,
+ false
+ }
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopControllers.hh b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopControllers.hh
new file mode 100644
index 0000000..b89ad3c
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopControllers.hh
@@ -0,0 +1,18 @@
+
+#ifndef TOPCONTROLLERS_HH
+#define TOPCONTROLLERS_HH
+
+class UMLRTController;
+struct UMLRTSlot;
+
+enum CapsuleInstanceId
+{
+ InstId_Top,
+ InstId_Top_a,
+ InstId_Top_b
+};
+extern UMLRTController * DefaultController;
+extern UMLRTSlot Top_slots[];
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopMain.cc b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopMain.cc
new file mode 100644
index 0000000..79261c7
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopMain.cc
@@ -0,0 +1,38 @@
+#include "umlrtmain.hh"
+
+#include "umlrtcontroller.hh"
+#include "TopControllers.hh"
+#include "umlrtcapsuletocontrollermap.hh"
+#include "umlrtmessagepool.hh"
+#include "umlrtsignalelementpool.hh"
+#include "umlrttimerpool.hh"
+#include "umlrtuserconfig.hh"
+#include <stdio.h>
+
+static UMLRTSignalElement signalElementBuffer[USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE];
+static UMLRTSignalElementPool signalElementPool( signalElementBuffer, USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE );
+
+static UMLRTMessage messageBuffer[USER_CONFIG_MESSAGE_POOL_SIZE];
+static UMLRTMessagePool messagePool( messageBuffer, USER_CONFIG_MESSAGE_POOL_SIZE );
+
+static UMLRTTimer timers[USER_CONFIG_TIMER_POOL_SIZE];
+static UMLRTTimerPool timerPool( timers, USER_CONFIG_TIMER_POOL_SIZE );
+
+int main( int argc, char * argv[] )
+{
+ UMLRTController::initializePools( &signalElementPool, &messagePool, &timerPool );
+ UMLRTMain::setArgs( argc, argv );
+ UMLRTCapsuleToControllerMap::setDefaultSlotList( Top_slots, 3 );
+
+ if( ! UMLRTMain::targetStartup() )
+ return EXIT_FAILURE;
+
+ DefaultController->spawn();
+
+ if( ! UMLRTMain::mainLoop() )
+ return UMLRTMain::targetShutdown( false );
+
+ DefaultController->join();
+
+ return UMLRTMain::targetShutdown( true );
+}
diff --git a/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.cc b/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.cc
index 23534d0..f8c47c5 100644
--- a/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.cc
+++ b/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.cc
@@ -15,8 +15,8 @@
Capsule_B::Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
: Capsule_A( cd, st, border, internal, isStat )
-, c2( &slot->parts[part_c2] )
, c1( &slot->parts[part_c1] )
+, c2( &slot->parts[part_c2] )
{
}
diff --git a/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.hh b/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.hh
index 3308b6b..ab523fa 100644
--- a/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.hh
+++ b/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.hh
@@ -20,8 +20,8 @@
part_c3
};
protected:
- const UMLRTCapsulePart * const c2;
const UMLRTCapsulePart * const c1;
+ const UMLRTCapsulePart * const c2;
public:
virtual void bindPort( bool isBorder, int portId, int index );
virtual void unbindPort( bool isBorder, int portId, int index );
diff --git a/models/tests/codepattern/structure/ExclusionsParts/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/ExclusionsParts/expected_src/CMakeLists.txt
index 0148ec5..7371efd 100644
--- a/models/tests/codepattern/structure/ExclusionsParts/expected_src/CMakeLists.txt
+++ b/models/tests/codepattern/structure/ExclusionsParts/expected_src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Generated 2017-02-16 14:48:30
+# Generated 2017-03-09 16:23:10
cmake_minimum_required(VERSION 2.8.7)
set(TARGET TopMain)
diff --git a/models/tests/codepattern/structure/ExclusionsParts/expected_src/TopControllers.cc b/models/tests/codepattern/structure/ExclusionsParts/expected_src/TopControllers.cc
index 8f7d96d..96e8491 100644
--- a/models/tests/codepattern/structure/ExclusionsParts/expected_src/TopControllers.cc
+++ b/models/tests/codepattern/structure/ExclusionsParts/expected_src/TopControllers.cc
@@ -82,21 +82,21 @@
static UMLRTSlot * slots_Top_b[] =
{
- &Top_slots[InstId_Top_b_c2],
- &Top_slots[InstId_Top_b_c1]
+ &Top_slots[InstId_Top_b_c1],
+ &Top_slots[InstId_Top_b_c2]
};
static UMLRTCapsulePart parts_Top_b[] =
{
{
&B,
- Capsule_B::part_c2,
+ Capsule_B::part_c1,
1,
&slots_Top_b[0]
},
{
&B,
- Capsule_B::part_c1,
+ Capsule_B::part_c2,
1,
&slots_Top_b[1]
}
diff --git a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.cc b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.cc
index a325762..8c91549 100644
--- a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.cc
+++ b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.cc
@@ -12,8 +12,8 @@
Capsule_B::Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
: Capsule_A( cd, st, border, internal, isStat )
-, q( borderPorts[borderport_q] )
, p( borderPorts[borderport_p] )
+, q( borderPorts[borderport_q] )
{
}
@@ -27,12 +27,12 @@
if( isBorder )
switch( portId )
{
- case borderport_q:
- UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_q, index, true );
- break;
case borderport_p:
UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_p, index, true );
break;
+ case borderport_q:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_q, index, true );
+ break;
}
}
@@ -41,14 +41,14 @@
if( isBorder )
switch( portId )
{
- case borderport_q:
- UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_q, index, false );
- UMLRTFrameService::disconnectPort( borderPorts[borderport_q], index );
- break;
case borderport_p:
UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_p, index, false );
UMLRTFrameService::disconnectPort( borderPorts[borderport_p], index );
break;
+ case borderport_q:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_q, index, false );
+ UMLRTFrameService::disconnectPort( borderPorts[borderport_q], index );
+ break;
}
}
@@ -64,20 +64,6 @@
static const UMLRTCommsPortRole portroles_border[] =
{
{
- Capsule_B::port_q,
- "Protocol1",
- "q",
- "",
- 1,
- true,
- false,
- false,
- true,
- false,
- false,
- true
- },
- {
Capsule_B::port_p,
"Protocol1",
"p",
@@ -90,6 +76,20 @@
false,
false,
true
+ },
+ {
+ Capsule_B::port_q,
+ "Protocol1",
+ "q",
+ "",
+ 1,
+ true,
+ false,
+ false,
+ true,
+ false,
+ false,
+ true
}
};
diff --git a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.hh b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.hh
index c056d04..036add5 100644
--- a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.hh
+++ b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.hh
@@ -14,15 +14,15 @@
public:
Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
protected:
- Protocol1::Base q;
+ Protocol1::Base p;
public:
enum BorderPortId
{
- borderport_q,
- borderport_p
+ borderport_p,
+ borderport_q
};
protected:
- Protocol1::Base p;
+ Protocol1::Base q;
public:
enum PartId
{
diff --git a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/CMakeLists.txt
index d45117a..c134127 100644
--- a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/CMakeLists.txt
+++ b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Generated 2017-02-16 14:52:46
+# Generated 2017-03-09 16:25:06
cmake_minimum_required(VERSION 2.8.7)
set(TARGET TopMain)
diff --git a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/TopControllers.cc b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/TopControllers.cc
index b1d7d1b..9d2a95f 100644
--- a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/TopControllers.cc
+++ b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/TopControllers.cc
@@ -149,7 +149,7 @@
{
{
&B,
- Capsule_B::borderport_q,
+ Capsule_B::borderport_p,
&Top_slots[InstId_Top_b],
1,
borderfarEndList_Top_b,
@@ -160,7 +160,7 @@
true,
true,
false,
- true,
+ false,
false,
false,
false,
@@ -170,7 +170,7 @@
},
{
&B,
- Capsule_B::borderport_p,
+ Capsule_B::borderport_q,
&Top_slots[InstId_Top_b],
1,
&borderfarEndList_Top_b[1],
@@ -181,7 +181,7 @@
true,
true,
false,
- false,
+ true,
false,
false,
false,
diff --git a/models/tests/codepattern/structure/ExclusionsProtocolMessages/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/ExclusionsProtocolMessages/expected_src/CMakeLists.txt
index 1be48ae..ca482d1 100644
--- a/models/tests/codepattern/structure/ExclusionsProtocolMessages/expected_src/CMakeLists.txt
+++ b/models/tests/codepattern/structure/ExclusionsProtocolMessages/expected_src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Generated 2017-02-27 14:22:22
+# Generated 2017-03-09 16:29:09
cmake_minimum_required(VERSION 2.8.7)
set(TARGET TopMain)
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/.project b/models/tests/codepattern/structure/ExclusionsTransitions/.project
new file mode 100644
index 0000000..80e16a3
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>ExclusionsTransitions</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ </buildSpec>
+ <natures>
+ </natures>
+</projectDescription>
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.di b/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.di
new file mode 100644
index 0000000..bf9abab
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.notation b/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.notation
new file mode 100644
index 0000000..345908d
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.notation
@@ -0,0 +1,1145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_-9JYIP31Eeaho99HbWPUFw" type="CompositeStructure" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_-9nSMP31Eeaho99HbWPUFw" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-9pHYP31Eeaho99HbWPUFw" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-9pucP31Eeaho99HbWPUFw" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-9pucf31Eeaho99HbWPUFw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-9pucv31Eeaho99HbWPUFw" type="Class_StructureCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_UBZOAP32Eeaho99HbWPUFw" type="Property_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UKv-UP32Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UKwlYP32Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UBZ1EP32Eeaho99HbWPUFw" type="Property_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UBZ1Ef32Eeaho99HbWPUFw" type="Property_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UBacIP32Eeaho99HbWPUFw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UBacIf32Eeaho99HbWPUFw" type="Property_StructureCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UBacIv32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UBacI_32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UC64AP32Eeaho99HbWPUFw" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_UC64Af32Eeaho99HbWPUFw" name="stereotype" stringValue="UMLRealTime::CapsulePart"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_EQwT4EhOEeO0lv5O1DTHOQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UC64Av32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UC7fEP32Eeaho99HbWPUFw" type="StereotypeBrace">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UC7fEf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_UC7fEv32Eeaho99HbWPUFw" name="stereotype" stringValue="UMLRealTime::CapsulePart"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_EQwT4EhOEeO0lv5O1DTHOQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UC7fE_32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UDA-oP32Eeaho99HbWPUFw" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UDA-of32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UDA-ov32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UDCz0P32Eeaho99HbWPUFw" type="StereotypeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UDCz0f32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_UDCz0v32Eeaho99HbWPUFw" name="stereotype" stringValue="UMLRealTime::CapsulePart"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_EQwT4EhOEeO0lv5O1DTHOQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UDCz0_32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UDb1YP32Eeaho99HbWPUFw" type="Port_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UKwlYf32Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UKwlYv32Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UDb1Yv32Eeaho99HbWPUFw" type="Port_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UDb1Y_32Eeaho99HbWPUFw" x="-12" y="11"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UDb1ZP32Eeaho99HbWPUFw" type="Port_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UDb1Zf32Eeaho99HbWPUFw" y="22"/>
+ </children>
+ <element xmi:type="uml:Port" href="ExclusionsTransitions.uml#_FpsvsP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UDb1Yf32Eeaho99HbWPUFw" x="-5" y="18" width="11" height="11"/>
+ </children>
+ <element xmi:type="uml:Property" href="ExclusionsTransitions.uml#_T9V0cP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UBZOAf32Eeaho99HbWPUFw" x="133" y="55" width="45" height="48"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UBy2oP32Eeaho99HbWPUFw" type="Property_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UK020P32Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UK020f32Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UBzdsP32Eeaho99HbWPUFw" type="Property_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UBzdsf32Eeaho99HbWPUFw" type="Property_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UBzdsv32Eeaho99HbWPUFw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UBzds_32Eeaho99HbWPUFw" type="Property_StructureCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UBzdtP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UBzdtf32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UEpWUP32Eeaho99HbWPUFw" type="StereotypeLabel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_UEpWUf32Eeaho99HbWPUFw" name="stereotype" stringValue="UMLRealTime::CapsulePart"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_EQwT4EhOEeO0lv5O1DTHOQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UEpWUv32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UEp9YP32Eeaho99HbWPUFw" type="StereotypeBrace">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UEp9Yf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_UEp9Yv32Eeaho99HbWPUFw" name="stereotype" stringValue="UMLRealTime::CapsulePart"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_EQwT4EhOEeO0lv5O1DTHOQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UEp9Y_32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UEp9ZP32Eeaho99HbWPUFw" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UEp9Zf32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UEp9Zv32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_UErykP32Eeaho99HbWPUFw" type="StereotypeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UErykf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_UErykv32Eeaho99HbWPUFw" name="stereotype" stringValue="UMLRealTime::CapsulePart"/>
+ <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_EQwT4EhOEeO0lv5O1DTHOQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UEryk_32Eeaho99HbWPUFw"/>
+ </children>
+ <element xmi:type="uml:Property" href="ExclusionsTransitions.uml#_UBdfcP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UBy2of32Eeaho99HbWPUFw" x="311" y="55" width="45" height="48"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UDBlsP32Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UDBlsf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UDBls_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="ExclusionsTransitions.uml#_T9V0cP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UDBlsv32Eeaho99HbWPUFw" x="375" y="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UEMDUP32Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UEMDUf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UEMDU_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ExclusionsTransitions.uml#_FpsvsP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UEMDUv32Eeaho99HbWPUFw" x="194" y="-6"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UEqkcP32Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_UEqkcf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UEqkc_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="ExclusionsTransitions.uml#_UBdfcP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UEqkcv32Eeaho99HbWPUFw" x="395" y="75"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-9puc_31Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-9pudP31Eeaho99HbWPUFw" x="41" y="60" width="287" height="163"/>
+ </children>
+ <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_-5oKEP31Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-9nSMf31Eeaho99HbWPUFw" x="40" y="40" width="500" height="250"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RTv8AP32Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RTv8Af32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_RTv8A_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ExclusionsTransitions.uml#_-5oKEP31Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RTv8Av32Eeaho99HbWPUFw" x="240" y="40"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_-9JYIf31Eeaho99HbWPUFw" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_-9JYIv31Eeaho99HbWPUFw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_-9JYI_31Eeaho99HbWPUFw">
+ <owner xmi:type="uml:Class" href="ExclusionsTransitions.uml#_-5oKEP31Eeaho99HbWPUFw"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.common/configuration/UMLRT.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+ </styles>
+ <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_-5oKEP31Eeaho99HbWPUFw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_RTwjEP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_-9nSMP31Eeaho99HbWPUFw" target="_RTv8AP32Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_RTwjEf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_RTwjFf32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="ExclusionsTransitions.uml#_-5oKEP31Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RTwjEv32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RTwjE_32Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RTwjFP32Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_UDBltP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_UBZOAP32Eeaho99HbWPUFw" target="_UDBlsP32Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_UDBltf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UDCMwP32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="ExclusionsTransitions.uml#_T9V0cP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UDBltv32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UDBlt_32Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UDBluP32Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_UEMDVP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_UDb1YP32Eeaho99HbWPUFw" target="_UEMDUP32Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_UEMDVf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UEMqYP32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Port" href="ExclusionsTransitions.uml#_FpsvsP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UEMDVv32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UEMDV_32Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UEMDWP32Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_UEqkdP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_UBy2oP32Eeaho99HbWPUFw" target="_UEqkcP32Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_UEqkdf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UErLgv32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Property" href="ExclusionsTransitions.uml#_UBdfcP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UEqkdv32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UErLgP32Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UErLgf32Eeaho99HbWPUFw"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_ANtBEP32Eeaho99HbWPUFw" type="CompositeStructure" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_ANtoIP32Eeaho99HbWPUFw" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ANtoIv32Eeaho99HbWPUFw" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ANtoI_32Eeaho99HbWPUFw" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ANtoJP32Eeaho99HbWPUFw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ANtoJf32Eeaho99HbWPUFw" type="Class_StructureCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ANtoJv32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ANtoJ_32Eeaho99HbWPUFw"/>
+ </children>
+ <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_ANBroP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ANtoIf32Eeaho99HbWPUFw" x="40" y="40" width="500" height="250"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ANtBEf32Eeaho99HbWPUFw" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ANtBEv32Eeaho99HbWPUFw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_ANtBE_32Eeaho99HbWPUFw">
+ <owner xmi:type="uml:Class" href="ExclusionsTransitions.uml#_ANBroP32Eeaho99HbWPUFw"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.common/configuration/UMLRT.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+ </styles>
+ <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_ANBroP32Eeaho99HbWPUFw"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_CfGb8P32Eeaho99HbWPUFw" type="CompositeStructure" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_CfHDAP32Eeaho99HbWPUFw" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CfHDAv32Eeaho99HbWPUFw" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CfHDA_32Eeaho99HbWPUFw" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CfHDBP32Eeaho99HbWPUFw" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CfHDBf32Eeaho99HbWPUFw" type="Class_StructureCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CfHDBv32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CfHDB_32Eeaho99HbWPUFw"/>
+ </children>
+ <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_CeeJ0P32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CfHDAf32Eeaho99HbWPUFw" x="40" y="40" width="500" height="250"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_CfGb8f32Eeaho99HbWPUFw" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_CfGb8v32Eeaho99HbWPUFw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_CfGb8_32Eeaho99HbWPUFw">
+ <owner xmi:type="uml:Class" href="ExclusionsTransitions.uml#_CeeJ0P32Eeaho99HbWPUFw"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.common/configuration/UMLRT.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+ </styles>
+ <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_CeeJ0P32Eeaho99HbWPUFw"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_PqamsP32Eeaho99HbWPUFw" type="PapyrusUMLStateMachineDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Pqamsf32Eeaho99HbWPUFw" type="StateMachine_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Pqamsv32Eeaho99HbWPUFw" type="StateMachine_NameLabel">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pqams_32Eeaho99HbWPUFw" width="700" height="16"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PqamtP32Eeaho99HbWPUFw" type="StateMachine_RegionCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_Pqamtf32Eeaho99HbWPUFw" type="Region_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pqamtv32Eeaho99HbWPUFw" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pqamt_32Eeaho99HbWPUFw" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PqamuP32Eeaho99HbWPUFw" type="Region_SubvertexCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cPNkAP32Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cPNkAf32Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_b1T2QP32Eeaho99HbWPUFw" type="Pseudostate_InitialShape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cPNkAv32Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cPNkA_32Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b1T2Qv32Eeaho99HbWPUFw" type="Pseudostate_InitialFloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_b1T2Q_32Eeaho99HbWPUFw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b1UdUP32Eeaho99HbWPUFw" type="Pseudostate_InitialStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_b1UdUf32Eeaho99HbWPUFw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#_Pn6sUP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b1T2Qf32Eeaho99HbWPUFw" x="51" y="82" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b1UdUv32Eeaho99HbWPUFw" type="State_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cPNkBP32Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cPNkBf32Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b1UdVP32Eeaho99HbWPUFw" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b1UdVf32Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_b1UdVv32Eeaho99HbWPUFw" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_b1UdV_32Eeaho99HbWPUFw" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b1UdWP32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_b1Z84P32Eeaho99HbWPUFw" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b1aj8P32Eeaho99HbWPUFw"/>
+ </children>
+ <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_PoVjEP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b1UdU_32Eeaho99HbWPUFw" x="91" y="123" width="40" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b5nHcP32Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b5nHcf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b5nugP32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#_Pn6sUP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b5nHcv32Eeaho99HbWPUFw" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b6eqIv32Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b6eqI_32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b6eqJf32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_PoVjEP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b6eqJP32Eeaho99HbWPUFw" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_esjJIP32Eeaho99HbWPUFw" type="State_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_esjwMP32Eeaho99HbWPUFw" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_esjwMf32Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_esjwMv32Eeaho99HbWPUFw" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_esjwM_32Eeaho99HbWPUFw" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_esjwNP32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_esjwNf32Eeaho99HbWPUFw" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_esjwNv32Eeaho99HbWPUFw"/>
+ </children>
+ <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_esL8wP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_esjJIf32Eeaho99HbWPUFw" x="261" y="44"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_esxLk_32Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_esxLlP32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_esxLlv32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_esL8wP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_esxLlf32Eeaho99HbWPUFw" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fORWIP32Eeaho99HbWPUFw" type="State_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_fORWIv32Eeaho99HbWPUFw" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fOR9MP32Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fOR9Mf32Eeaho99HbWPUFw" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fOR9Mv32Eeaho99HbWPUFw" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fOR9M_32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_fOR9NP32Eeaho99HbWPUFw" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fOR9Nf32Eeaho99HbWPUFw"/>
+ </children>
+ <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_fN1RQP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fORWIf32Eeaho99HbWPUFw" x="261" y="123"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fOhNwP32Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fOhNwf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fOhNw_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_fN1RQP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fOhNwv32Eeaho99HbWPUFw" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nD51oP32Eeaho99HbWPUFw" type="State_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nD51ov32Eeaho99HbWPUFw" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nD51o_32Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nD51pP32Eeaho99HbWPUFw" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nD51pf32Eeaho99HbWPUFw" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nD51pv32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_nD51p_32Eeaho99HbWPUFw" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nD51qP32Eeaho99HbWPUFw"/>
+ </children>
+ <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_nDkecP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nD51of32Eeaho99HbWPUFw" x="261" y="202"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nEC_kP32Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nEC_kf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nEC_k_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_nDkecP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nEC_kv32Eeaho99HbWPUFw" x="200"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pqamuf32Eeaho99HbWPUFw" width="64" height="116"/>
+ </children>
+ <element xmi:type="uml:Region" href="ExclusionsTransitions.uml#_PntQ8P32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pqamuv32Eeaho99HbWPUFw" width="700" height="287"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b1L6cP32Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b1L6cf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b1L6c_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Region" href="ExclusionsTransitions.uml#_PntQ8P32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b1L6cv32Eeaho99HbWPUFw" x="200"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pqamu_32Eeaho99HbWPUFw" y="16" width="700" height="284"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Pm-4MP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PqamvP32Eeaho99HbWPUFw" x="28" y="29" width="700" height="300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b1DXkP32Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_b1DXkf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b1DXk_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Pm-4MP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b1DXkv32Eeaho99HbWPUFw" x="230" y="30"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Pqamvf32Eeaho99HbWPUFw" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Pqamvv32Eeaho99HbWPUFw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Pqamv_32Eeaho99HbWPUFw">
+ <owner xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Pm-4MP32Eeaho99HbWPUFw"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/configuration/RTStateMachine.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+ </styles>
+ <element xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Pm-4MP32Eeaho99HbWPUFw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_b1D-oP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_Pqamsf32Eeaho99HbWPUFw" target="_b1DXkP32Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_b1D-of32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b1D-pf32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Pm-4MP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_b1D-ov32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b1D-o_32Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b1D-pP32Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_b1MhgP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_Pqamtf32Eeaho99HbWPUFw" target="_b1L6cP32Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_b1Mhgf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b1Mhhf32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Region" href="ExclusionsTransitions.uml#_PntQ8P32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_b1Mhgv32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b1Mhg_32Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b1MhhP32Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_b5nugf32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_b1T2QP32Eeaho99HbWPUFw" target="_b5nHcP32Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_b5nugv32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b5nuhv32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#_Pn6sUP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_b5nug_32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b5nuhP32Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b5nuhf32Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_b6eqJv32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_b1UdUv32Eeaho99HbWPUFw" target="_b6eqIv32Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_b6eqJ_32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b6fRMv32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_PoVjEP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_b6eqKP32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b6fRMP32Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b6fRMf32Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cMXrYP32Eeaho99HbWPUFw" type="Transition_Edge" source="_b1T2QP32Eeaho99HbWPUFw" target="_b1UdUv32Eeaho99HbWPUFw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cS4jEP32Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cS4jEf32Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cMYScP32Eeaho99HbWPUFw" type="Transition_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_cpDnYP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cMYScf32Eeaho99HbWPUFw" x="-3" y="-7"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cMYScv32Eeaho99HbWPUFw" type="Transition_GuardLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_cpeeIP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cMYSc_32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cMYSdP32Eeaho99HbWPUFw" type="Transition_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_cpzOQP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cMYSdf32Eeaho99HbWPUFw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cMXrYf32Eeaho99HbWPUFw"/>
+ <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_Pomo0P32Eeaho99HbWPUFw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cMXrYv32Eeaho99HbWPUFw" points="[31, 48, -643984, -643984]$[31, 48, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cMZgkP32Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cMZgkf32Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_esxLl_32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_esjJIP32Eeaho99HbWPUFw" target="_esxLk_32Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_esxLmP32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_esxyov32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_esL8wP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_esxLmf32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_esxyoP32Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_esxyof32Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_fOhNxP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_fORWIP32Eeaho99HbWPUFw" target="_fOhNwP32Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_fOhNxf32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fOhNyf32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_fN1RQP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fOhNxv32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fOhNx_32Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fOhNyP32Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_i9WP8P32Eeaho99HbWPUFw" type="Transition_Edge" source="_b1UdUv32Eeaho99HbWPUFw" target="_esjJIP32Eeaho99HbWPUFw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_i9W3AP32Eeaho99HbWPUFw" type="Transition_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pC4q0P32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_i9W3Af32Eeaho99HbWPUFw" x="-16" y="-15"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_i9W3Av32Eeaho99HbWPUFw" type="Transition_GuardLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pC5R4P32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_i9W3A_32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_i9W3BP32Eeaho99HbWPUFw" type="Transition_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pC548P32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_i9W3Bf32Eeaho99HbWPUFw" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_i9WP8f32Eeaho99HbWPUFw"/>
+ <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_i86LEP32Eeaho99HbWPUFw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_i9WP8v32Eeaho99HbWPUFw" points="[157, 159, -643984, -643984]$[300, 89, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i-am8P32Eeaho99HbWPUFw" id="(0.575,0.225)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i-am8f32Eeaho99HbWPUFw" id="(0.4,0.3)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_mKlA8P32Eeaho99HbWPUFw" type="Transition_Edge" source="_b1UdUv32Eeaho99HbWPUFw" target="_fORWIP32Eeaho99HbWPUFw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_mKloAP32Eeaho99HbWPUFw" type="Transition_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_mrsxAP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mKloAf32Eeaho99HbWPUFw" x="-1" y="-9"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mKloAv32Eeaho99HbWPUFw" type="Transition_GuardLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_msHnwP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mKloA_32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mKloBP32Eeaho99HbWPUFw" type="Transition_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_msgCQP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mKloBf32Eeaho99HbWPUFw" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_mKlA8f32Eeaho99HbWPUFw"/>
+ <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_mKKxQP32Eeaho99HbWPUFw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mKlA8v32Eeaho99HbWPUFw" points="[160, 183, -643984, -643984]$[295, 207, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mLkfcP32Eeaho99HbWPUFw" id="(0.675,0.575)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mLkfcf32Eeaho99HbWPUFw" id="(0.425,0.6)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nEDmoP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_nD51oP32Eeaho99HbWPUFw" target="_nEC_kP32Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_nEDmof32Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nEDmpf32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_nDkecP32Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nEDmov32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nEDmo_32Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nEDmpP32Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nxG54P32Eeaho99HbWPUFw" type="Transition_Edge" source="_b1UdUv32Eeaho99HbWPUFw" target="_nD51oP32Eeaho99HbWPUFw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nxHg8P32Eeaho99HbWPUFw" type="Transition_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pC6gAP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nxHg8f32Eeaho99HbWPUFw" x="3" y="-9"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nxHg8v32Eeaho99HbWPUFw" type="Transition_GuardLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pC6gAf32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nxHg8_32Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nxHg9P32Eeaho99HbWPUFw" type="Transition_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pC7HEP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nxHg9f32Eeaho99HbWPUFw" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_nxG54f32Eeaho99HbWPUFw"/>
+ <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_nwvGcP32Eeaho99HbWPUFw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nxG54v32Eeaho99HbWPUFw" points="[153, 195, -643984, -643984]$[305, 287, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nx9OcP32Eeaho99HbWPUFw" id="(0.375,0.725)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nx9Ocf32Eeaho99HbWPUFw" id="(0.475,0.6)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_MyPDMP33Eeaho99HbWPUFw" type="PapyrusUMLStateMachineDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_MyPDMf33Eeaho99HbWPUFw" type="StateMachine_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MyPDMv33Eeaho99HbWPUFw" type="StateMachine_NameLabel">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MyPDM_33Eeaho99HbWPUFw" width="700" height="16"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MyPDNP33Eeaho99HbWPUFw" type="StateMachine_RegionCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_MyPDNf33Eeaho99HbWPUFw" type="Region_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MyPDNv33Eeaho99HbWPUFw" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MyPDN_33Eeaho99HbWPUFw" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MyPDOP33Eeaho99HbWPUFw" type="Region_SubvertexCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nu7U8P33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nu7U8f33Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_Nld28P33Eeaho99HbWPUFw" type="Pseudostate_InitialShape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nu78AP33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nu78Af33Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Nld28v33Eeaho99HbWPUFw" type="Pseudostate_InitialFloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Nld28_33Eeaho99HbWPUFw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Nld29P33Eeaho99HbWPUFw" type="Pseudostate_InitialStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Nld29f33Eeaho99HbWPUFw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#_Pn6sUP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nld28f33Eeaho99HbWPUFw" x="51" y="82" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NleeAP33Eeaho99HbWPUFw" type="State_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nu78Av33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nu78A_33Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NleeAv33Eeaho99HbWPUFw" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NleeA_33Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NleeBP33Eeaho99HbWPUFw" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NleeBf33Eeaho99HbWPUFw" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NleeBv33Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_NleeB_33Eeaho99HbWPUFw" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NleeCP33Eeaho99HbWPUFw"/>
+ </children>
+ <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_PoVjEP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NleeAf33Eeaho99HbWPUFw" x="91" y="123" width="40" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NleeCf33Eeaho99HbWPUFw" type="State_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nu78BP33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nu78Bf33Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NleeC_33Eeaho99HbWPUFw" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NleeDP33Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NleeDf33Eeaho99HbWPUFw" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NleeDv33Eeaho99HbWPUFw" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NleeD_33Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_NleeEP33Eeaho99HbWPUFw" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NleeEf33Eeaho99HbWPUFw"/>
+ </children>
+ <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_esL8wP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NleeCv33Eeaho99HbWPUFw" x="261" y="44"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NlfFEP33Eeaho99HbWPUFw" type="State_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nu78Bv33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nu78B_33Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NlfFEv33Eeaho99HbWPUFw" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NlfFE_33Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NlfFFP33Eeaho99HbWPUFw" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NlfFFf33Eeaho99HbWPUFw" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlfFFv33Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_NlfFF_33Eeaho99HbWPUFw" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlfFGP33Eeaho99HbWPUFw"/>
+ </children>
+ <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_fN1RQP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlfFEf33Eeaho99HbWPUFw" x="261" y="123"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NlfFGf33Eeaho99HbWPUFw" type="State_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nu78CP33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nu78Cf33Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NlfFG_33Eeaho99HbWPUFw" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NlfFHP33Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NlfFHf33Eeaho99HbWPUFw" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NlfFHv33Eeaho99HbWPUFw" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlfFH_33Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_NlfsIP33Eeaho99HbWPUFw" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlfsIf33Eeaho99HbWPUFw"/>
+ </children>
+ <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_nDkecP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlfFGv33Eeaho99HbWPUFw" x="261" y="202"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NlynEP33Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NlynEf33Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NlynE_33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#/-1"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlynEv33Eeaho99HbWPUFw" x="251" y="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Nl_bYP33Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Nl_bYf33Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Nl_bY_33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nl_bYv33Eeaho99HbWPUFw" x="291" y="123"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NmKagP33Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NmKagf33Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NmKag_33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NmKagv33Eeaho99HbWPUFw" x="461" y="44"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NmTkc_33Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NmTkdP33Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NmULgP33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NmTkdf33Eeaho99HbWPUFw" x="461" y="123"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NmdVcP33Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NmdVcf33Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NmdVc_33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NmdVcv33Eeaho99HbWPUFw" x="461" y="202"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MyPDOf33Eeaho99HbWPUFw" width="136" height="208"/>
+ </children>
+ <element xmi:type="uml:Region" href="ExclusionsTransitions.uml#_PntQ8P32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MyPDOv33Eeaho99HbWPUFw" width="700" height="287"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NlXwUP33Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NlXwUf33Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NlXwU_33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Region" href="ExclusionsTransitions.uml#/-1"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlXwUv33Eeaho99HbWPUFw" x="200"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MyPDO_33Eeaho99HbWPUFw" y="16" width="700" height="284"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Mw5mcP33Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MyPDPP33Eeaho99HbWPUFw" x="28" y="29" width="700" height="300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NlP0gP33Eeaho99HbWPUFw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NlP0gf33Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NlP0g_33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Mw5mcP33Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlP0gv33Eeaho99HbWPUFw" x="228" y="29"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_MyPDPf33Eeaho99HbWPUFw" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_MyPDPv33Eeaho99HbWPUFw"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_MyPDP_33Eeaho99HbWPUFw">
+ <owner xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Mw5mcP33Eeaho99HbWPUFw"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/configuration/RTStateMachine.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+ </styles>
+ <element xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Mw5mcP33Eeaho99HbWPUFw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_NlP0hP33Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_MyPDMf33Eeaho99HbWPUFw" target="_NlP0gP33Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NlP0hf33Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NlQbkP33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Mw5mcP33Eeaho99HbWPUFw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NlP0hv33Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NlP0h_33Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NlP0iP33Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NlXwVP33Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_MyPDNf33Eeaho99HbWPUFw" target="_NlXwUP33Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NlXwVf33Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NlXwWf33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Region" href="ExclusionsTransitions.uml#/-1"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NlXwVv33Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NlXwV_33Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NlXwWP33Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NlynFP33Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_Nld28P33Eeaho99HbWPUFw" target="_NlynEP33Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NlynFf33Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NlynGf33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#/-1"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NlynFv33Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NlynF_33Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NlynGP33Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Nl_bZP33Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_NleeAP33Eeaho99HbWPUFw" target="_Nl_bYP33Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Nl_bZf33Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Nl_baf33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nl_bZv33Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nl_bZ_33Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nl_baP33Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NmKahP33Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_NleeCf33Eeaho99HbWPUFw" target="_NmKagP33Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NmKahf33Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NmKaif33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NmKahv33Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NmKah_33Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NmKaiP33Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NmULgf33Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_NlfFEP33Eeaho99HbWPUFw" target="_NmTkc_33Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NmULgv33Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NmULhv33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NmULg_33Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NmULhP33Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NmULhf33Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NmdVdP33Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_NlfFGf33Eeaho99HbWPUFw" target="_NmdVcP33Eeaho99HbWPUFw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NmdVdf33Eeaho99HbWPUFw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NmdVef33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NmdVdv33Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NmdVd_33Eeaho99HbWPUFw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NmdVeP33Eeaho99HbWPUFw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NtCekP33Eeaho99HbWPUFw" type="Transition_Edge" source="_Nld28P33Eeaho99HbWPUFw" target="_NleeAP33Eeaho99HbWPUFw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxDb4P33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NxDb4f33Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NtDFoP33Eeaho99HbWPUFw" type="Transition_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NtDFof33Eeaho99HbWPUFw" x="-3" y="-7"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NtDFov33Eeaho99HbWPUFw" type="Transition_GuardLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NtDFo_33Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NtDFpP33Eeaho99HbWPUFw" type="Transition_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NtDFpf33Eeaho99HbWPUFw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NtCekf33Eeaho99HbWPUFw"/>
+ <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_Pomo0P32Eeaho99HbWPUFw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NtCekv33Eeaho99HbWPUFw" points="[31, 48, -643984, -643984]$[31, 48, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NtDssP33Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NtDssf33Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NuGOgP33Eeaho99HbWPUFw" type="Transition_Edge" target="_NleeCf33Eeaho99HbWPUFw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxSFYP33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NxSFYf33Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NuGOg_33Eeaho99HbWPUFw" type="Transition_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NuGOhP33Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NuGOhf33Eeaho99HbWPUFw" type="Transition_GuardLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NuGOhv33Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NuGOh_33Eeaho99HbWPUFw" type="Transition_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NuGOiP33Eeaho99HbWPUFw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NuGOgf33Eeaho99HbWPUFw"/>
+ <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_i86LEP32Eeaho99HbWPUFw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NuGOgv33Eeaho99HbWPUFw" points="[2, 3, -168, 82]$[174, -78, 4, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NuHcoP33Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NuHcof33Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NuHcov33Eeaho99HbWPUFw" type="Transition_Edge" target="_NlfFEP33Eeaho99HbWPUFw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxSFYv33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NxSFY_33Eeaho99HbWPUFw" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NuHcpf33Eeaho99HbWPUFw" type="Transition_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NuHcpv33Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NuHcp_33Eeaho99HbWPUFw" type="Transition_GuardLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NuHcqP33Eeaho99HbWPUFw"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NuIDsP33Eeaho99HbWPUFw" type="Transition_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NuIDsf33Eeaho99HbWPUFw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NuHco_33Eeaho99HbWPUFw"/>
+ <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_mKKxQP32Eeaho99HbWPUFw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NuHcpP33Eeaho99HbWPUFw" points="[2, 3, -168, 3]$[173, 2, 3, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NuIDsv33Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NuIDs_33Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_sOb8gP-FEeagDfx54OupdQ" type="CompositeStructure" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_sOe_0P-FEeagDfx54OupdQ" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_sOgN8P-FEeagDfx54OupdQ" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sOg1AP-FEeagDfx54OupdQ" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sOg1Af-FEeagDfx54OupdQ" y="5"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sOg1Av-FEeagDfx54OupdQ" type="Class_StructureCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sOg1A_-FEeagDfx54OupdQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sOg1BP-FEeagDfx54OupdQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_sNUiMP-FEeagDfx54OupdQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sOe_0f-FEeagDfx54OupdQ" x="40" y="40" width="500" height="250"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_sOb8gf-FEeagDfx54OupdQ" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_sOb8gv-FEeagDfx54OupdQ"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_sOb8g_-FEeagDfx54OupdQ">
+ <owner xmi:type="uml:Class" href="ExclusionsTransitions.uml#_sNUiMP-FEeagDfx54OupdQ"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.common/configuration/UMLRT.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+ </styles>
+ <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_sNUiMP-FEeagDfx54OupdQ"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_vTfo8P-FEeagDfx54OupdQ" type="PapyrusUMLStateMachineDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_vTfo8f-FEeagDfx54OupdQ" type="StateMachine_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vTfo8v-FEeagDfx54OupdQ" type="StateMachine_NameLabel">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vTfo8_-FEeagDfx54OupdQ" width="700" height="16"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vTfo9P-FEeagDfx54OupdQ" type="StateMachine_RegionCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_vTfo9f-FEeagDfx54OupdQ" type="Region_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTfo9v-FEeagDfx54OupdQ" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vTfo9_-FEeagDfx54OupdQ" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vTfo-P-FEeagDfx54OupdQ" type="Region_SubvertexCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wWog8P-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wWog8f-FEeagDfx54OupdQ" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_wKMAYP-FEeagDfx54OupdQ" type="Pseudostate_InitialShape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wWog8v-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wWog8_-FEeagDfx54OupdQ" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wKMAYv-FEeagDfx54OupdQ" type="Pseudostate_InitialFloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wKMAY_-FEeagDfx54OupdQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wKMAZP-FEeagDfx54OupdQ" type="Pseudostate_InitialStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wKMAZf-FEeagDfx54OupdQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#_Pn6sUP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKMAYf-FEeagDfx54OupdQ" x="51" y="82" width="20" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wKMncP-FEeagDfx54OupdQ" type="State_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wWog9P-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wWog9f-FEeagDfx54OupdQ" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wKMncv-FEeagDfx54OupdQ" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wKMnc_-FEeagDfx54OupdQ" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wKMndP-FEeagDfx54OupdQ" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wKMndf-FEeagDfx54OupdQ" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKMndv-FEeagDfx54OupdQ"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_wKNOgP-FEeagDfx54OupdQ" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKNOgf-FEeagDfx54OupdQ"/>
+ </children>
+ <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_PoVjEP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKMncf-FEeagDfx54OupdQ" x="91" y="123" width="40" height="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wKNOgv-FEeagDfx54OupdQ" type="State_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wWog9v-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wWog9_-FEeagDfx54OupdQ" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wKNOhP-FEeagDfx54OupdQ" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wKNOhf-FEeagDfx54OupdQ" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wKNOhv-FEeagDfx54OupdQ" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wKNOh_-FEeagDfx54OupdQ" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKNOiP-FEeagDfx54OupdQ"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_wKNOif-FEeagDfx54OupdQ" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKNOiv-FEeagDfx54OupdQ"/>
+ </children>
+ <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_esL8wP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKNOg_-FEeagDfx54OupdQ" x="261" y="44"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wKN1kP-FEeagDfx54OupdQ" type="State_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wWog-P-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wWog-f-FEeagDfx54OupdQ" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wKN1kv-FEeagDfx54OupdQ" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wKN1k_-FEeagDfx54OupdQ" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wKN1lP-FEeagDfx54OupdQ" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wKN1lf-FEeagDfx54OupdQ" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKN1lv-FEeagDfx54OupdQ"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_wKN1l_-FEeagDfx54OupdQ" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKN1mP-FEeagDfx54OupdQ"/>
+ </children>
+ <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_fN1RQP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKN1kf-FEeagDfx54OupdQ" x="261" y="123"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wKN1mf-FEeagDfx54OupdQ" type="State_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wWpIAP-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wWpIAf-FEeagDfx54OupdQ" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wKN1m_-FEeagDfx54OupdQ" type="State_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wKN1nP-FEeagDfx54OupdQ" type="State_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wKN1nf-FEeagDfx54OupdQ" x="40"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wKN1nv-FEeagDfx54OupdQ" type="State_RegionCompartment">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKN1n_-FEeagDfx54OupdQ"/>
+ </children>
+ <children xmi:type="notation:Compartment" xmi:id="_wKN1oP-FEeagDfx54OupdQ" type="InternalTransitions">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKN1of-FEeagDfx54OupdQ"/>
+ </children>
+ <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_nDkecP32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKN1mv-FEeagDfx54OupdQ" x="261" y="202"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wKjz0P-FEeagDfx54OupdQ" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wKjz0f-FEeagDfx54OupdQ"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wKjz0_-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#_vSp7cv-FEeagDfx54OupdQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKjz0v-FEeagDfx54OupdQ" x="251" y="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wKwoIP-FEeagDfx54OupdQ" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wKwoIf-FEeagDfx54OupdQ"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wKwoI_-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSqigf-FEeagDfx54OupdQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKwoIv-FEeagDfx54OupdQ" x="291" y="123"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wK7nQP-FEeagDfx54OupdQ" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wK7nQf-FEeagDfx54OupdQ"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wK7nQ_-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSrJkf-FEeagDfx54OupdQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wK7nQv-FEeagDfx54OupdQ" x="461" y="44"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wLGmYP-FEeagDfx54OupdQ" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wLGmYf-FEeagDfx54OupdQ"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wLGmY_-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSrwof-FEeagDfx54OupdQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wLGmYv-FEeagDfx54OupdQ" x="461" y="123"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wLSMkP-FEeagDfx54OupdQ" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wLSMkf-FEeagDfx54OupdQ"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wLSMk_-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSs-wP-FEeagDfx54OupdQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wLSMkv-FEeagDfx54OupdQ" x="461" y="202"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vTfo-f-FEeagDfx54OupdQ" width="136" height="208"/>
+ </children>
+ <element xmi:type="uml:Region" href="ExclusionsTransitions.uml#_PntQ8P32Eeaho99HbWPUFw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vTfo-v-FEeagDfx54OupdQ" width="700" height="287"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wKBBQP-FEeagDfx54OupdQ" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wKBBQf-FEeagDfx54OupdQ"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wKBoUP-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Region" href="ExclusionsTransitions.uml#_vSpUYf-FEeagDfx54OupdQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKBBQv-FEeagDfx54OupdQ" x="200"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vTfo-_-FEeagDfx54OupdQ" y="16" width="700" height="284"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_vShYkP-FEeagDfx54OupdQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vTfo_P-FEeagDfx54OupdQ" x="28" y="29" width="700" height="300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wJ33UP-FEeagDfx54OupdQ" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wJ33Uf-FEeagDfx54OupdQ"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wJ4eYP-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_vShYkP-FEeagDfx54OupdQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wJ33Uv-FEeagDfx54OupdQ" x="228" y="29"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_vTfo_f-FEeagDfx54OupdQ" name="diagram_compatibility_version" stringValue="1.2.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_vTfo_v-FEeagDfx54OupdQ"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_vTfo__-FEeagDfx54OupdQ">
+ <owner xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_vShYkP-FEeagDfx54OupdQ"/>
+ <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/configuration/RTStateMachine.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+ </styles>
+ <element xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_vShYkP-FEeagDfx54OupdQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_wJ4eYf-FEeagDfx54OupdQ" type="StereotypeCommentLink" source="_vTfo8f-FEeagDfx54OupdQ" target="_wJ33UP-FEeagDfx54OupdQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_wJ4eYv-FEeagDfx54OupdQ"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wJ5Fcv-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_vShYkP-FEeagDfx54OupdQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wJ4eY_-FEeagDfx54OupdQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wJ5FcP-FEeagDfx54OupdQ"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wJ5Fcf-FEeagDfx54OupdQ"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wKBoUf-FEeagDfx54OupdQ" type="StereotypeCommentLink" source="_vTfo9f-FEeagDfx54OupdQ" target="_wKBBQP-FEeagDfx54OupdQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_wKBoUv-FEeagDfx54OupdQ"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wKBoVv-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Region" href="ExclusionsTransitions.uml#_vSpUYf-FEeagDfx54OupdQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wKBoU_-FEeagDfx54OupdQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wKBoVP-FEeagDfx54OupdQ"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wKBoVf-FEeagDfx54OupdQ"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wKjz1P-FEeagDfx54OupdQ" type="StereotypeCommentLink" source="_wKMAYP-FEeagDfx54OupdQ" target="_wKjz0P-FEeagDfx54OupdQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_wKjz1f-FEeagDfx54OupdQ"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wKjz2f-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#_vSp7cv-FEeagDfx54OupdQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wKjz1v-FEeagDfx54OupdQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wKjz1_-FEeagDfx54OupdQ"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wKjz2P-FEeagDfx54OupdQ"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wKwoJP-FEeagDfx54OupdQ" type="StereotypeCommentLink" source="_wKMncP-FEeagDfx54OupdQ" target="_wKwoIP-FEeagDfx54OupdQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_wKwoJf-FEeagDfx54OupdQ"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wKwoKf-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSqigf-FEeagDfx54OupdQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wKwoJv-FEeagDfx54OupdQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wKwoJ_-FEeagDfx54OupdQ"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wKwoKP-FEeagDfx54OupdQ"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wK7nRP-FEeagDfx54OupdQ" type="StereotypeCommentLink" source="_wKNOgv-FEeagDfx54OupdQ" target="_wK7nQP-FEeagDfx54OupdQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_wK7nRf-FEeagDfx54OupdQ"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wK7nSf-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSrJkf-FEeagDfx54OupdQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wK7nRv-FEeagDfx54OupdQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wK7nR_-FEeagDfx54OupdQ"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wK7nSP-FEeagDfx54OupdQ"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wLGmZP-FEeagDfx54OupdQ" type="StereotypeCommentLink" source="_wKN1kP-FEeagDfx54OupdQ" target="_wLGmYP-FEeagDfx54OupdQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_wLGmZf-FEeagDfx54OupdQ"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wLGmaf-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSrwof-FEeagDfx54OupdQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wLGmZv-FEeagDfx54OupdQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wLGmZ_-FEeagDfx54OupdQ"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wLGmaP-FEeagDfx54OupdQ"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wLSMlP-FEeagDfx54OupdQ" type="StereotypeCommentLink" source="_wKN1mf-FEeagDfx54OupdQ" target="_wLSMkP-FEeagDfx54OupdQ">
+ <styles xmi:type="notation:FontStyle" xmi:id="_wLSMlf-FEeagDfx54OupdQ"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wLSMmf-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSs-wP-FEeagDfx54OupdQ"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wLSMlv-FEeagDfx54OupdQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wLSMl_-FEeagDfx54OupdQ"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wLSMmP-FEeagDfx54OupdQ"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wVkJ8P-FEeagDfx54OupdQ" type="Transition_Edge" source="_wKMAYP-FEeagDfx54OupdQ" target="_wKMncP-FEeagDfx54OupdQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wkZ3MP-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wkaeQP-FEeagDfx54OupdQ" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wVkJ8_-FEeagDfx54OupdQ" type="Transition_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wVkJ9P-FEeagDfx54OupdQ" x="-3" y="-7"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wVkJ9f-FEeagDfx54OupdQ" type="Transition_GuardLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wVkJ9v-FEeagDfx54OupdQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wVkJ9_-FEeagDfx54OupdQ" type="Transition_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wVkJ-P-FEeagDfx54OupdQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wVkJ8f-FEeagDfx54OupdQ"/>
+ <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_Pomo0P32Eeaho99HbWPUFw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wVkJ8v-FEeagDfx54OupdQ" points="[31, 48, -643984, -643984]$[31, 48, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wVlYEP-FEeagDfx54OupdQ" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wVl_IP-FEeagDfx54OupdQ" id="(0.0,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wV3r8P-FEeagDfx54OupdQ" type="Transition_Edge" source="_wKMncP-FEeagDfx54OupdQ" target="_wKNOgv-FEeagDfx54OupdQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wkq88P-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wkq88f-FEeagDfx54OupdQ" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wV4TAP-FEeagDfx54OupdQ" type="Transition_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wV4TAf-FEeagDfx54OupdQ" x="-16" y="-15"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wV4TAv-FEeagDfx54OupdQ" type="Transition_GuardLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wV4TA_-FEeagDfx54OupdQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wV4TBP-FEeagDfx54OupdQ" type="Transition_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wV4TBf-FEeagDfx54OupdQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wV3r8f-FEeagDfx54OupdQ"/>
+ <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_i86LEP32Eeaho99HbWPUFw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wV3r8v-FEeagDfx54OupdQ" points="[157, 159, -643984, -643984]$[300, 89, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wV46EP-FEeagDfx54OupdQ" id="(0.575,0.225)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wV46Ef-FEeagDfx54OupdQ" id="(0.4,0.3)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wV5hIP-FEeagDfx54OupdQ" type="Transition_Edge" source="_wKMncP-FEeagDfx54OupdQ" target="_wKN1kP-FEeagDfx54OupdQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wkq88v-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wkq88_-FEeagDfx54OupdQ" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wV5hI_-FEeagDfx54OupdQ" type="Transition_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wV5hJP-FEeagDfx54OupdQ" x="-1" y="-9"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wV5hJf-FEeagDfx54OupdQ" type="Transition_GuardLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wV5hJv-FEeagDfx54OupdQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wV5hJ_-FEeagDfx54OupdQ" type="Transition_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wV5hKP-FEeagDfx54OupdQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wV5hIf-FEeagDfx54OupdQ"/>
+ <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_mKKxQP32Eeaho99HbWPUFw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wV5hIv-FEeagDfx54OupdQ" points="[160, 183, -643984, -643984]$[295, 207, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wV6IMP-FEeagDfx54OupdQ" id="(0.675,0.575)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wV6IMf-FEeagDfx54OupdQ" id="(0.425,0.6)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.uml b/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.uml
new file mode 100644
index 0000000..c17bcc7
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.uml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:UMLRTStateMachines="http://www.eclipse.org/papyrus/umlrt/statemachine" xmlns:UMLRealTime="http://www.eclipse.org/papyrus/umlrt" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <uml:Model xmi:id="_1a7bAP31Eeaho99HbWPUFw" name="ExclusionsTransitions">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1a7bAf31Eeaho99HbWPUFw" source="http://www.eclipse.org/papyrus-rt/language/1.0.0">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1a7bAv31Eeaho99HbWPUFw" key="language" value="umlrt-cpp"/>
+ </eAnnotations>
+ <packagedElement xmi:type="uml:Package" xmi:id="_7h5ZQP31Eeaho99HbWPUFw" name="Protocol1">
+ <packagedElement xmi:type="uml:Collaboration" xmi:id="_7bz_YP31Eeaho99HbWPUFw" name="Protocol1">
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_7ii5gP31Eeaho99HbWPUFw" client="_7bz_YP31Eeaho99HbWPUFw" supplier="_7iWsQP31Eeaho99HbWPUFw" contract="_7iWsQP31Eeaho99HbWPUFw"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_7i10cP31Eeaho99HbWPUFw" client="_7bz_YP31Eeaho99HbWPUFw" supplier="_7iwU4P31Eeaho99HbWPUFw" contract="_7iwU4P31Eeaho99HbWPUFw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_7iWsQP31Eeaho99HbWPUFw" name="Protocol1">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_I2CI0P32Eeaho99HbWPUFw" name="m1">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_5_hyIP32Eeaho99HbWPUFw" name="data">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_zL7x0OmKEeG_gcDHG3asaQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_K-x-AP32Eeaho99HbWPUFw" name="m2">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_8LWwgP32Eeaho99HbWPUFw" name="data">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_V3dAkOmJEeG_gcDHG3asaQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_klkyAP32Eeaho99HbWPUFw" name="m3">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_9S7ckP32Eeaho99HbWPUFw" name="data">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_yJpD0OmJEeG_gcDHG3asaQ"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_7inK8P31Eeaho99HbWPUFw" name="Protocol1~"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_7it4oP31Eeaho99HbWPUFw" client="_7bz_YP31Eeaho99HbWPUFw" supplier="_7inK8P31Eeaho99HbWPUFw"/>
+ <packagedElement xmi:type="uml:AnyReceiveEvent" xmi:id="_7ivGwP31Eeaho99HbWPUFw" name="*"/>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_7iwU4P31Eeaho99HbWPUFw" name="Protocol1IO"/>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_7i3CkP31Eeaho99HbWPUFw" client="_7bz_YP31Eeaho99HbWPUFw" supplier="_7iwU4P31Eeaho99HbWPUFw"/>
+ <packagedElement xmi:type="uml:CallEvent" xmi:id="_I2bxcP32Eeaho99HbWPUFw" operation="_I2CI0P32Eeaho99HbWPUFw"/>
+ <packagedElement xmi:type="uml:CallEvent" xmi:id="_K-4EoP32Eeaho99HbWPUFw" operation="_K-x-AP32Eeaho99HbWPUFw"/>
+ <packagedElement xmi:type="uml:CallEvent" xmi:id="_klpqgP32Eeaho99HbWPUFw" operation="_klkyAP32Eeaho99HbWPUFw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-5oKEP31Eeaho99HbWPUFw" name="Top" isActive="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_T9V0cP32Eeaho99HbWPUFw" name="a" visibility="protected" type="_ANBroP32Eeaho99HbWPUFw" isOrdered="true" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_UBdfcP32Eeaho99HbWPUFw" name="b" visibility="protected" type="_sNUiMP-FEeagDfx54OupdQ" isOrdered="true" aggregation="composite"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ANBroP32Eeaho99HbWPUFw" name="A" classifierBehavior="_Pm-4MP32Eeaho99HbWPUFw" isActive="true">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_FpsvsP32Eeaho99HbWPUFw" name="p" visibility="public" type="_7bz_YP31Eeaho99HbWPUFw" isOrdered="true" aggregation="composite" isBehavior="true"/>
+ <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_Pm-4MP32Eeaho99HbWPUFw" name="StateMachine" isReentrant="false">
+ <region xmi:type="uml:Region" xmi:id="_PntQ8P32Eeaho99HbWPUFw" name="Region">
+ <transition xmi:type="uml:Transition" xmi:id="_Pomo0P32Eeaho99HbWPUFw" name="" source="_Pn6sUP32Eeaho99HbWPUFw" target="_PoVjEP32Eeaho99HbWPUFw"/>
+ <transition xmi:type="uml:Transition" xmi:id="_i86LEP32Eeaho99HbWPUFw" name="" source="_PoVjEP32Eeaho99HbWPUFw" target="_esL8wP32Eeaho99HbWPUFw">
+ <trigger xmi:type="uml:Trigger" xmi:id="_FSFrgP33Eeaho99HbWPUFw" event="_I2bxcP32Eeaho99HbWPUFw" port="_FpsvsP32Eeaho99HbWPUFw"/>
+ </transition>
+ <transition xmi:type="uml:Transition" xmi:id="_mKKxQP32Eeaho99HbWPUFw" name="" source="_PoVjEP32Eeaho99HbWPUFw" target="_fN1RQP32Eeaho99HbWPUFw">
+ <trigger xmi:type="uml:Trigger" xmi:id="_HFRgYP33Eeaho99HbWPUFw" event="_K-4EoP32Eeaho99HbWPUFw" port="_FpsvsP32Eeaho99HbWPUFw"/>
+ </transition>
+ <transition xmi:type="uml:Transition" xmi:id="_nwvGcP32Eeaho99HbWPUFw" name="" source="_PoVjEP32Eeaho99HbWPUFw" target="_nDkecP32Eeaho99HbWPUFw">
+ <trigger xmi:type="uml:Trigger" xmi:id="_I6O24P33Eeaho99HbWPUFw" event="_klpqgP32Eeaho99HbWPUFw" port="_FpsvsP32Eeaho99HbWPUFw"/>
+ </transition>
+ <subvertex xmi:type="uml:Pseudostate" xmi:id="_Pn6sUP32Eeaho99HbWPUFw" name=""/>
+ <subvertex xmi:type="uml:State" xmi:id="_PoVjEP32Eeaho99HbWPUFw" name="State1"/>
+ <subvertex xmi:type="uml:State" xmi:id="_esL8wP32Eeaho99HbWPUFw" name="State2"/>
+ <subvertex xmi:type="uml:State" xmi:id="_fN1RQP32Eeaho99HbWPUFw" name="State3"/>
+ <subvertex xmi:type="uml:State" xmi:id="_nDkecP32Eeaho99HbWPUFw" name="State4"/>
+ </region>
+ </ownedBehavior>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_sNUiMP-FEeagDfx54OupdQ" name="B" classifierBehavior="_vShYkP-FEeagDfx54OupdQ" isActive="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_uPdZEP-FEeagDfx54OupdQ" general="_ANBroP32Eeaho99HbWPUFw"/>
+ <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_vShYkP-FEeagDfx54OupdQ" name="StateMachine" redefinedClassifier="_Pm-4MP32Eeaho99HbWPUFw" isReentrant="false" extendedStateMachine="_Pm-4MP32Eeaho99HbWPUFw">
+ <region xmi:type="uml:Region" xmi:id="_vSpUYf-FEeagDfx54OupdQ" extendedRegion="_PntQ8P32Eeaho99HbWPUFw">
+ <transition xmi:type="uml:Transition" xmi:id="_vSuz8P-FEeagDfx54OupdQ" guard="_yIJh4P-FEeagDfx54OupdQ" redefinedTransition="_mKKxQP32Eeaho99HbWPUFw">
+ <ownedRule xmi:type="uml:Constraint" xmi:id="_yIJh4P-FEeagDfx54OupdQ">
+ <specification xmi:type="uml:OpaqueExpression" xmi:id="_0w8JEP-FEeagDfx54OupdQ">
+ <language>C++</language>
+ <body>return data < 0xFF00;</body>
+ </specification>
+ </ownedRule>
+ </transition>
+ <transition xmi:type="uml:Transition" xmi:id="_vSvbAP-FEeagDfx54OupdQ" redefinedTransition="_nwvGcP32Eeaho99HbWPUFw"/>
+ </region>
+ </ownedBehavior>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_1a7bA_31Eeaho99HbWPUFw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1a7bBP31Eeaho99HbWPUFw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_1h74oEeVEeO0lv5O1DTHOQ"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_1a7bBf31Eeaho99HbWPUFw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1a7bBv31Eeaho99HbWPUFw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt/statemachine#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/UMLRealTimeSM-addendum.profile.uml#_KLcn0FDtEeOA4ecmvfqvaw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_1a7bB_31Eeaho99HbWPUFw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1a7bCP31Eeaho99HbWPUFw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt/cppproperties#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UMLRT_CPP/RTCppProperties.profile.uml#_vl5LALs8EeSTjNEQkASznQ"/>
+ </profileApplication>
+ </uml:Model>
+ <UMLRealTime:ProtocolContainer xmi:id="_7iBVEP31Eeaho99HbWPUFw" base_Package="_7h5ZQP31Eeaho99HbWPUFw"/>
+ <UMLRealTime:RTMessageSet xmi:id="_7icy4P31Eeaho99HbWPUFw" base_Interface="_7iWsQP31Eeaho99HbWPUFw"/>
+ <UMLRealTime:RTMessageSet xmi:id="_7ircYP31Eeaho99HbWPUFw" base_Interface="_7inK8P31Eeaho99HbWPUFw" rtMsgKind="out"/>
+ <UMLRealTime:RTMessageSet xmi:id="_7iz_QP31Eeaho99HbWPUFw" base_Interface="_7iwU4P31Eeaho99HbWPUFw" rtMsgKind="inOut"/>
+ <UMLRealTime:Protocol xmi:id="_7i6F4P31Eeaho99HbWPUFw" base_Collaboration="_7bz_YP31Eeaho99HbWPUFw"/>
+ <UMLRealTime:Capsule xmi:id="_-9v1EP31Eeaho99HbWPUFw" base_Class="_-5oKEP31Eeaho99HbWPUFw"/>
+ <UMLRealTime:Capsule xmi:id="_ANvdUP32Eeaho99HbWPUFw" base_Class="_ANBroP32Eeaho99HbWPUFw"/>
+ <UMLRealTime:RTPort xmi:id="_FqLQ0P32Eeaho99HbWPUFw" base_Port="_FpsvsP32Eeaho99HbWPUFw"/>
+ <UMLRTStateMachines:RTPseudostate xmi:id="_PoEdUP32Eeaho99HbWPUFw" base_Pseudostate="_Pn6sUP32Eeaho99HbWPUFw"/>
+ <UMLRTStateMachines:RTState xmi:id="_PobCoP32Eeaho99HbWPUFw" base_State="_PoVjEP32Eeaho99HbWPUFw"/>
+ <UMLRTStateMachines:RTRegion xmi:id="_PosvcP32Eeaho99HbWPUFw" base_Region="_PntQ8P32Eeaho99HbWPUFw"/>
+ <UMLRTStateMachines:RTStateMachine xmi:id="_PqdqAP32Eeaho99HbWPUFw" base_StateMachine="_Pm-4MP32Eeaho99HbWPUFw"/>
+ <UMLRealTime:CapsulePart xmi:id="_T9e-YP32Eeaho99HbWPUFw" base_Property="_T9V0cP32Eeaho99HbWPUFw"/>
+ <UMLRealTime:CapsulePart xmi:id="_UBgiwP32Eeaho99HbWPUFw" base_Property="_UBdfcP32Eeaho99HbWPUFw"/>
+ <UMLRTStateMachines:RTState xmi:id="_esPnIP32Eeaho99HbWPUFw" base_State="_esL8wP32Eeaho99HbWPUFw"/>
+ <UMLRTStateMachines:RTState xmi:id="_fN3tgP32Eeaho99HbWPUFw" base_State="_fN1RQP32Eeaho99HbWPUFw"/>
+ <UMLRTStateMachines:RTState xmi:id="_nDnhwP32Eeaho99HbWPUFw" base_State="_nDkecP32Eeaho99HbWPUFw"/>
+ <UMLRealTime:Capsule xmi:id="_sOkfYP-FEeagDfx54OupdQ" base_Class="_sNUiMP-FEeagDfx54OupdQ"/>
+ <UMLRealTime:RTRedefinedElement xmi:id="_vSwpIP-FEeagDfx54OupdQ" base_RedefinableElement="_vShYkP-FEeagDfx54OupdQ" rootFragment="_Pm-4MP32Eeaho99HbWPUFw"/>
+ <UMLRTStateMachines:RTStateMachine xmi:id="_vTg3EP-FEeagDfx54OupdQ" base_StateMachine="_vShYkP-FEeagDfx54OupdQ"/>
+ <UMLRTStateMachines:RTRegion xmi:id="_vSp7cP-FEeagDfx54OupdQ" base_Region="_vSpUYf-FEeagDfx54OupdQ"/>
+ <UMLRealTime:RTRedefinedElement xmi:id="_yH_J0P-FEeagDfx54OupdQ" base_RedefinableElement="_vSpUYf-FEeagDfx54OupdQ" rootFragment="_PntQ8P32Eeaho99HbWPUFw"/>
+ <UMLRealTime:RTRedefinedElement xmi:id="_yH_w4P-FEeagDfx54OupdQ" base_RedefinableElement="_vSuz8P-FEeagDfx54OupdQ" rootFragment="_mKKxQP32Eeaho99HbWPUFw"/>
+ <UMLRealTime:RTRedefinedElement xmi:id="_2oZZ8P-FEeagDfx54OupdQ" base_RedefinableElement="_vSvbAP-FEeagDfx54OupdQ"/>
+</xmi:XMI>
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/A.cc b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/A.cc
new file mode 100644
index 0000000..78f31b9
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/A.cc
@@ -0,0 +1,189 @@
+
+#include "A.hh"
+
+#include "Protocol1.hh"
+#include "umlrtcommsportrole.hh"
+#include "umlrtmessage.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsuleclass.hh"
+#include "umlrtframeservice.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_A::Capsule_A( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: UMLRTCapsule( NULL, cd, st, border, internal, isStat )
+, p( borderPorts[borderport_p] )
+, currentState( SPECIAL_INTERNAL_STATE_UNVISITED )
+{
+ stateNames[State1] = "State1";
+ stateNames[State2] = "State2";
+ stateNames[State3] = "State3";
+ stateNames[State4] = "State4";
+ stateNames[SPECIAL_INTERNAL_STATE_TOP] = "<top>";
+ stateNames[SPECIAL_INTERNAL_STATE_UNVISITED] = "<uninitialized>";
+}
+
+
+
+
+
+void Capsule_A::bindPort( bool isBorder, int portId, int index )
+{
+ if( isBorder )
+ switch( portId )
+ {
+ case borderport_p:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_p, index, true );
+ break;
+ }
+}
+
+void Capsule_A::unbindPort( bool isBorder, int portId, int index )
+{
+ if( isBorder )
+ switch( portId )
+ {
+ case borderport_p:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_p, index, false );
+ UMLRTFrameService::disconnectPort( borderPorts[borderport_p], index );
+ break;
+ }
+}
+
+void Capsule_A::inject( const UMLRTMessage & message )
+{
+ msg = &message;
+ switch( currentState )
+ {
+ case State1:
+ currentState = state_____State1( &message );
+ break;
+ case State2:
+ currentState = state_____State2( &message );
+ break;
+ case State3:
+ currentState = state_____State3( &message );
+ break;
+ case State4:
+ currentState = state_____State4( &message );
+ break;
+ default:
+ break;
+ }
+}
+
+void Capsule_A::initialize( const UMLRTMessage & message )
+{
+ msg = &message;
+ currentState = State1;
+}
+
+const char * Capsule_A::getCurrentStateString() const
+{
+ return stateNames[currentState];
+}
+
+
+
+
+void Capsule_A::update_state( Capsule_A::State newState )
+{
+ currentState = newState;
+}
+
+Capsule_A::State Capsule_A::state_____State1( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ case port_p:
+ switch( msg->getSignalId() )
+ {
+ case Protocol1::signal_m1:
+ return State2;
+ case Protocol1::signal_m2:
+ return State3;
+ case Protocol1::signal_m3:
+ return State4;
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_A::State Capsule_A::state_____State2( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_A::State Capsule_A::state_____State3( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_A::State Capsule_A::state_____State4( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+
+static const UMLRTCommsPortRole portroles_border[] =
+{
+ {
+ Capsule_A::port_p,
+ "Protocol1",
+ "p",
+ "",
+ 1,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ }
+};
+
+static void instantiate_A( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+ slot->capsule = new Capsule_A( &A, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass A =
+{
+ "A",
+ NULL,
+ instantiate_A,
+ 0,
+ NULL,
+ 1,
+ portroles_border,
+ 0,
+ NULL
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/A.hh b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/A.hh
new file mode 100644
index 0000000..c3e72d3
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/A.hh
@@ -0,0 +1,56 @@
+
+#ifndef A_HH
+#define A_HH
+
+#include "Protocol1.hh"
+#include "umlrtcapsule.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_A : public UMLRTCapsule
+{
+public:
+ Capsule_A( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+protected:
+ Protocol1::Base p;
+public:
+ enum BorderPortId
+ {
+ borderport_p
+ };
+ enum PartId
+ {
+ };
+ enum PortId
+ {
+ port_p
+ };
+ virtual void bindPort( bool isBorder, int portId, int index );
+ virtual void unbindPort( bool isBorder, int portId, int index );
+ virtual void inject( const UMLRTMessage & message );
+ virtual void initialize( const UMLRTMessage & message );
+ const char * getCurrentStateString() const;
+private:
+ enum State
+ {
+ State1,
+ State2,
+ State3,
+ State4,
+ SPECIAL_INTERNAL_STATE_TOP,
+ SPECIAL_INTERNAL_STATE_UNVISITED
+ };
+ const char * stateNames[6];
+ State currentState;
+ void update_state( State newState );
+ State state_____State1( const UMLRTMessage * msg );
+ State state_____State2( const UMLRTMessage * msg );
+ State state_____State3( const UMLRTMessage * msg );
+ State state_____State4( const UMLRTMessage * msg );
+};
+extern const UMLRTCapsuleClass A;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/B.cc b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/B.cc
new file mode 100644
index 0000000..bb888c8
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/B.cc
@@ -0,0 +1,202 @@
+
+#include "B.hh"
+
+#include "A.hh"
+#include "Protocol1.hh"
+#include "umlrtcommsportrole.hh"
+#include "umlrtmessage.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsuleclass.hh"
+#include "umlrtframeservice.hh"
+#include <stdint.h>
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_B::Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: Capsule_A( cd, st, border, internal, isStat )
+, p( borderPorts[borderport_p] )
+, currentState( SPECIAL_INTERNAL_STATE_UNVISITED )
+{
+ stateNames[State1] = "State1";
+ stateNames[State2] = "State2";
+ stateNames[State3] = "State3";
+ stateNames[State4] = "State4";
+ stateNames[SPECIAL_INTERNAL_STATE_TOP] = "<top>";
+ stateNames[SPECIAL_INTERNAL_STATE_UNVISITED] = "<uninitialized>";
+}
+
+
+
+
+
+void Capsule_B::bindPort( bool isBorder, int portId, int index )
+{
+ if( isBorder )
+ switch( portId )
+ {
+ case borderport_p:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_p, index, true );
+ break;
+ }
+}
+
+void Capsule_B::unbindPort( bool isBorder, int portId, int index )
+{
+ if( isBorder )
+ switch( portId )
+ {
+ case borderport_p:
+ UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_p, index, false );
+ UMLRTFrameService::disconnectPort( borderPorts[borderport_p], index );
+ break;
+ }
+}
+
+void Capsule_B::inject( const UMLRTMessage & message )
+{
+ msg = &message;
+ switch( currentState )
+ {
+ case State1:
+ currentState = state_____State1( &message );
+ break;
+ case State2:
+ currentState = state_____State2( &message );
+ break;
+ case State3:
+ currentState = state_____State3( &message );
+ break;
+ case State4:
+ currentState = state_____State4( &message );
+ break;
+ default:
+ break;
+ }
+}
+
+void Capsule_B::initialize( const UMLRTMessage & message )
+{
+ msg = &message;
+ currentState = State1;
+}
+
+const char * Capsule_B::getCurrentStateString() const
+{
+ return stateNames[currentState];
+}
+
+
+
+
+void Capsule_B::update_state( Capsule_B::State newState )
+{
+ currentState = newState;
+}
+
+bool Capsule_B::guard_____transition0( const UMLRTMessage * msg )
+{
+ #define data ( *(const int16_t * )msg->getParam( 0 ) )
+ #define rtdata ( (const int16_t * )msg->getParam( 0 ) )
+ /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsTransitions/ExclusionsTransitions.uml ExclusionsTransitions::B guard State1,State3,m2:p */
+ return data < 0xFF00;
+ /* UMLRTGEN-USERREGION-END */
+ #undef rtdata
+ #undef data
+}
+
+Capsule_B::State Capsule_B::state_____State1( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ case port_p:
+ switch( msg->getSignalId() )
+ {
+ case Protocol1::signal_m2:
+ if( guard_____transition0( msg ) )
+ return State3;
+ break;
+ case Protocol1::signal_m1:
+ return State2;
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_B::State Capsule_B::state_____State2( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_B::State Capsule_B::state_____State3( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+Capsule_B::State Capsule_B::state_____State4( const UMLRTMessage * msg )
+{
+ switch( msg->destPort->role()->id )
+ {
+ default:
+ this->unexpectedMessage();
+ break;
+ }
+ return currentState;
+}
+
+
+static const UMLRTCommsPortRole portroles_border[] =
+{
+ {
+ Capsule_B::port_p,
+ "Protocol1",
+ "p",
+ "",
+ 1,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ }
+};
+
+static void instantiate_B( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+ slot->capsule = new Capsule_B( &B, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass B =
+{
+ "B",
+ &A,
+ instantiate_B,
+ 0,
+ NULL,
+ 1,
+ portroles_border,
+ 0,
+ NULL
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/B.hh b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/B.hh
new file mode 100644
index 0000000..37e0f7f
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/B.hh
@@ -0,0 +1,58 @@
+
+#ifndef B_HH
+#define B_HH
+
+#include "A.hh"
+#include "Protocol1.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_B : public Capsule_A
+{
+public:
+ Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+protected:
+ Protocol1::Base p;
+public:
+ enum BorderPortId
+ {
+ borderport_p
+ };
+ enum PartId
+ {
+ };
+ enum PortId
+ {
+ port_p,
+ port_p
+ };
+ virtual void bindPort( bool isBorder, int portId, int index );
+ virtual void unbindPort( bool isBorder, int portId, int index );
+ virtual void inject( const UMLRTMessage & message );
+ virtual void initialize( const UMLRTMessage & message );
+ const char * getCurrentStateString() const;
+private:
+ enum State
+ {
+ State1,
+ State2,
+ State3,
+ State4,
+ SPECIAL_INTERNAL_STATE_TOP,
+ SPECIAL_INTERNAL_STATE_UNVISITED
+ };
+ const char * stateNames[6];
+ State currentState;
+ void update_state( State newState );
+ bool guard_____transition0( const UMLRTMessage * msg );
+ State state_____State1( const UMLRTMessage * msg );
+ State state_____State2( const UMLRTMessage * msg );
+ State state_____State3( const UMLRTMessage * msg );
+ State state_____State4( const UMLRTMessage * msg );
+};
+extern const UMLRTCapsuleClass B;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/CMakeLists.txt
new file mode 100644
index 0000000..70e5f0e
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated 2017-03-09 17:19:00
+
+cmake_minimum_required(VERSION 2.8.7)
+set(TARGET TopMain)
+project(${TARGET})
+
+# require location of supporting RTS
+if (NOT UMLRTS_ROOT)
+ if (DEFINED ENV{UMLRTS_ROOT})
+ set(UMLRTS_ROOT $ENV{UMLRTS_ROOT})
+ else ()
+ set(UMLRTS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/umlrt.rts)
+ endif ()
+endif ()
+
+# setup primary envars - provides tooling config
+include(${UMLRTS_ROOT}/build/buildenv.cmake)
+
+# model sources
+set(SRCS TopMain.cc Protocol1.cc A.cc B.cc Top.cc TopControllers.cc )
+
+# specify target
+add_executable(${TARGET} ${SRCS})
+
+# setup lib dependency support after defining TARGET
+include(${UMLRTS_ROOT}/build/rtslib.cmake)
+
+# compiler parameters
+set_target_properties(${TARGET} PROPERTIES COMPILE_OPTIONS "${COPTS}")
+set_target_properties(${TARGET} PROPERTIES COMPILE_DEFINITIONS "${CDEFS}")
+include_directories(${INCS})
+
+# linker parameters
+set_target_properties(${TARGET} PROPERTIES CMAKE_EXE_LINKER_FLAGS "${LOPTS}")
+target_link_libraries(${TARGET} ${LIBS})
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Makefile b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Makefile
new file mode 100644
index 0000000..0bcbd22
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Makefile
@@ -0,0 +1,11 @@
+##################################################
+# Default makefile
+# Redirect make to target makefile
+##################################################
+
+all:
+ make -f MakefileTop.mk all
+clean:
+ make -f MakefileTop.mk clean
+.PHONY:
+ make -f MakefileTop.mk all clean
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/MakefileTop.mk b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/MakefileTop.mk
new file mode 100644
index 0000000..b62ddd0
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/MakefileTop.mk
@@ -0,0 +1,49 @@
+# set default value for TARGETOS if is it not defined
+ifeq ($(TARGETOS), )
+$(warning warning: TARGETOS not defined. Choosing linux)
+TARGETOS=linux
+endif
+
+# set default value for BUILDTOOLS if is it not defined
+ifeq ($(BUILDTOOLS), )
+$(warning warning: BUILDTOOLS not defined. Choosing x86-gcc-4.6.3)
+BUILDTOOLS=x86-gcc-4.6.3
+endif
+
+# Location of RTS root.
+UMLRTS_ROOT ?= ./umlrt.rts
+
+CONFIG=$(TARGETOS).$(BUILDTOOLS)
+
+# Destination directory for the RTS services library.
+LIBDEST=$(UMLRTS_ROOT)/lib/$(CONFIG)
+
+include $(UMLRTS_ROOT)/build/host/host.mk
+include $(UMLRTS_ROOT)/build/buildtools/$(BUILDTOOLS)/buildtools.mk
+
+LD_PATHS=$(LIBDEST)
+CC_INCLUDES+=$(UMLRTS_ROOT)/include
+
+CC_DEFINES:=$(foreach d, $(CC_DEFINES), $(CC_DEF)$d)
+CC_INCLUDES:=$(foreach i, $(CC_INCLUDES), $(CC_INC)$i)
+LD_LIBS:=$(foreach i, $(LD_LIBS), $(LD_LIB)$i)
+LD_PATHS:=$(foreach i, $(LD_PATHS), $(LD_LIBPATH)$i)
+
+SRCS = TopMain.cc Protocol1.cc A.cc B.cc Top.cc TopControllers.cc
+OBJS = $(subst $(CC_EXT),$(OBJ_EXT),$(SRCS))
+
+MAIN = TopMain$(EXE_EXT)
+
+all: $(MAIN)
+
+$(MAIN): $(OBJS) $(UMLRTS_ROOT)/lib/$(CONFIG)/$(LIB_PRFX)rts$(LIB_EXT)
+ $(LD) $(LD_FLAGS) $(OBJS) $(LD_PATHS) $(LD_LIBS) $(LD_OUT)$@
+
+%$(OBJ_EXT) : %$(CC_EXT)
+ $(CC) $< $(CC_FLAGS) $(CC_DEFINES) $(CC_INCLUDES) $(CC_OUT)$@
+
+clean :
+ @echo $(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+ @$(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+
+.PHONY: all clean
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Protocol1.cc b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Protocol1.cc
new file mode 100644
index 0000000..5838e83
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Protocol1.cc
@@ -0,0 +1,94 @@
+
+#include "Protocol1.hh"
+
+#include "umlrtobjectclass.hh"
+#include "umlrtoutsignal.hh"
+#include <stdint.h>
+struct UMLRTCommsPort;
+
+static UMLRTObject_field fields_m1[] =
+{
+ {
+ "data",
+ &UMLRTType_int8_t,
+ 0,
+ 1,
+ 0
+ }
+};
+
+static UMLRTObject payload_m1 =
+{
+ sizeof( int8_t ),
+ 1,
+ fields_m1
+};
+
+static UMLRTObject_field fields_m2[] =
+{
+ {
+ "data",
+ &UMLRTType_int16_t,
+ 0,
+ 1,
+ 0
+ }
+};
+
+static UMLRTObject payload_m2 =
+{
+ sizeof( int16_t ),
+ 1,
+ fields_m2
+};
+
+static UMLRTObject_field fields_m3[] =
+{
+ {
+ "data",
+ &UMLRTType_int32_t,
+ 0,
+ 1,
+ 0
+ }
+};
+
+static UMLRTObject payload_m3 =
+{
+ sizeof( int32_t ),
+ 1,
+ fields_m3
+};
+
+Protocol1::Base::Base( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+Protocol1::Conj::Conj( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+UMLRTOutSignal Protocol1::Conj::m1( const int8_t & data ) const
+{
+ UMLRTOutSignal signal;
+ signal.initialize( "m1", signal_m1, srcPort, &payload_m1, &data );
+ return signal;
+}
+
+UMLRTOutSignal Protocol1::Conj::m2( const int16_t & data ) const
+{
+ UMLRTOutSignal signal;
+ signal.initialize( "m2", signal_m2, srcPort, &payload_m2, &data );
+ return signal;
+}
+
+UMLRTOutSignal Protocol1::Conj::m3( const int32_t & data ) const
+{
+ UMLRTOutSignal signal;
+ signal.initialize( "m3", signal_m3, srcPort, &payload_m3, &data );
+ return signal;
+}
+
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Protocol1.hh b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Protocol1.hh
new file mode 100644
index 0000000..aab40f2
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Protocol1.hh
@@ -0,0 +1,35 @@
+
+#ifndef PROTOCOL1_HH
+#define PROTOCOL1_HH
+
+#include "umlrtoutsignal.hh"
+#include "umlrtprotocol.hh"
+#include "umlrtsignal.hh"
+#include <stdint.h>
+struct UMLRTCommsPort;
+
+namespace Protocol1
+{
+ class Base : public UMLRTProtocol
+ {
+ public:
+ Base( const UMLRTCommsPort * & srcPort );
+ };
+ class Conj : public UMLRTProtocol
+ {
+ public:
+ Conj( const UMLRTCommsPort * & srcPort );
+ UMLRTOutSignal m1( const int8_t & data ) const;
+ UMLRTOutSignal m2( const int16_t & data ) const;
+ UMLRTOutSignal m3( const int32_t & data ) const;
+ };
+ enum SignalId
+ {
+ signal_m1 = UMLRTSignal::FIRST_PROTOCOL_SIGNAL_ID,
+ signal_m2,
+ signal_m3
+ };
+};
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top-connections.log b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top-connections.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top-connections.log
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top.cc b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top.cc
new file mode 100644
index 0000000..ce5dcb2
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top.cc
@@ -0,0 +1,81 @@
+
+#include "Top.hh"
+
+#include "A.hh"
+#include "B.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcapsulepart.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsulerole.hh"
+#include "umlrtframeservice.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_Top::Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: UMLRTCapsule( NULL, cd, st, border, internal, isStat )
+, a( &slot->parts[part_a] )
+, b( &slot->parts[part_b] )
+{
+}
+
+
+
+
+void Capsule_Top::bindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_Top::unbindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_Top::initialize( const UMLRTMessage & msg )
+{
+}
+
+void Capsule_Top::inject( const UMLRTMessage & msg )
+{
+}
+
+
+static const UMLRTCapsuleRole roles[] =
+{
+ {
+ "a",
+ &A,
+ 1,
+ 1,
+ false,
+ false
+ },
+ {
+ "b",
+ &B,
+ 1,
+ 1,
+ false,
+ false
+ }
+};
+
+static void instantiate_Top( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+ A.instantiate( NULL, slot->parts[Capsule_Top::part_a].slots[0], UMLRTFrameService::createBorderPorts( slot->parts[Capsule_Top::part_a].slots[0], A.numPortRolesBorder ) );
+ B.instantiate( NULL, slot->parts[Capsule_Top::part_b].slots[0], UMLRTFrameService::createBorderPorts( slot->parts[Capsule_Top::part_b].slots[0], B.numPortRolesBorder ) );
+ slot->capsule = new Capsule_Top( &Top, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass Top =
+{
+ "Top",
+ NULL,
+ instantiate_Top,
+ 2,
+ roles,
+ 0,
+ NULL,
+ 0,
+ NULL
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top.hh b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top.hh
new file mode 100644
index 0000000..2c5910f
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top.hh
@@ -0,0 +1,33 @@
+
+#ifndef TOP_HH
+#define TOP_HH
+
+#include "umlrtcapsule.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCapsulePart;
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_Top : public UMLRTCapsule
+{
+public:
+ Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+ enum PartId
+ {
+ part_a,
+ part_b
+ };
+protected:
+ const UMLRTCapsulePart * const a;
+ const UMLRTCapsulePart * const b;
+public:
+ virtual void bindPort( bool isBorder, int portId, int index );
+ virtual void unbindPort( bool isBorder, int portId, int index );
+ virtual void initialize( const UMLRTMessage & msg );
+ virtual void inject( const UMLRTMessage & msg );
+};
+extern const UMLRTCapsuleClass Top;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopControllers.cc b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopControllers.cc
new file mode 100644
index 0000000..76b0f3b
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopControllers.cc
@@ -0,0 +1,175 @@
+
+#include "TopControllers.hh"
+
+#include "A.hh"
+#include "B.hh"
+#include "Top.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcapsulepart.hh"
+#include "umlrtcommsport.hh"
+#include "umlrtcommsportfarend.hh"
+#include "umlrtcontroller.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+
+
+static UMLRTController DefaultController_( "DefaultController" );
+
+UMLRTController * DefaultController = &DefaultController_;
+
+static Capsule_Top top( &Top, &Top_slots[InstId_Top], NULL, NULL, true );
+
+static UMLRTSlot * slots_Top[] =
+{
+ &Top_slots[InstId_Top_a],
+ &Top_slots[InstId_Top_b]
+};
+
+static UMLRTCapsulePart parts_Top[] =
+{
+ {
+ &Top,
+ Capsule_Top::part_a,
+ 1,
+ &slots_Top[0]
+ },
+ {
+ &Top,
+ Capsule_Top::part_b,
+ 1,
+ &slots_Top[1]
+ }
+};
+
+static UMLRTCommsPortFarEnd borderfarEndList_Top_a[] =
+{
+ {
+ 0,
+ NULL
+ }
+};
+
+UMLRTCommsPort borderports_Top_a[] =
+{
+ {
+ &A,
+ Capsule_A::borderport_p,
+ &Top_slots[InstId_Top_a],
+ 1,
+ borderfarEndList_Top_a,
+ NULL,
+ NULL,
+ "",
+ true,
+ true,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ }
+};
+
+static const UMLRTCommsPort * borderports_Top_a_ptrs[] =
+{
+ &borderports_Top_a[0]
+};
+
+static Capsule_A top_a( &A, &Top_slots[InstId_Top_a], borderports_Top_a_ptrs, NULL, true );
+
+static UMLRTCommsPortFarEnd borderfarEndList_Top_b[] =
+{
+ {
+ 0,
+ NULL
+ }
+};
+
+UMLRTCommsPort borderports_Top_b[] =
+{
+ {
+ &B,
+ Capsule_B::borderport_p,
+ &Top_slots[InstId_Top_b],
+ 1,
+ borderfarEndList_Top_b,
+ NULL,
+ NULL,
+ "",
+ true,
+ true,
+ true,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ false,
+ true
+ }
+};
+
+static const UMLRTCommsPort * borderports_Top_b_ptrs[] =
+{
+ &borderports_Top_b[0]
+};
+
+static Capsule_B top_b( &B, &Top_slots[InstId_Top_b], borderports_Top_b_ptrs, NULL, true );
+
+UMLRTSlot Top_slots[] =
+{
+ {
+ "Top",
+ 0,
+ &Top,
+ NULL,
+ 0,
+ &top,
+ &DefaultController_,
+ 2,
+ parts_Top,
+ 0,
+ NULL,
+ NULL,
+ true,
+ false
+ },
+ {
+ "Top.a",
+ 0,
+ &A,
+ &Top,
+ Capsule_Top::part_a,
+ &top_a,
+ &DefaultController_,
+ 0,
+ NULL,
+ 1,
+ borderports_Top_a,
+ NULL,
+ true,
+ false
+ },
+ {
+ "Top.b",
+ 0,
+ &B,
+ &Top,
+ Capsule_Top::part_b,
+ &top_b,
+ &DefaultController_,
+ 0,
+ NULL,
+ 1,
+ borderports_Top_b,
+ NULL,
+ true,
+ false
+ }
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopControllers.hh b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopControllers.hh
new file mode 100644
index 0000000..8c7f55b
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopControllers.hh
@@ -0,0 +1,21 @@
+
+#ifndef TOPCONTROLLERS_HH
+#define TOPCONTROLLERS_HH
+
+class UMLRTController;
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+enum CapsuleInstanceId
+{
+ InstId_Top,
+ InstId_Top_a,
+ InstId_Top_b
+};
+extern UMLRTController * DefaultController;
+extern UMLRTCommsPort borderports_Top_a[];
+extern UMLRTCommsPort borderports_Top_b[];
+extern UMLRTSlot Top_slots[];
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopMain.cc b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopMain.cc
new file mode 100644
index 0000000..79261c7
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopMain.cc
@@ -0,0 +1,38 @@
+#include "umlrtmain.hh"
+
+#include "umlrtcontroller.hh"
+#include "TopControllers.hh"
+#include "umlrtcapsuletocontrollermap.hh"
+#include "umlrtmessagepool.hh"
+#include "umlrtsignalelementpool.hh"
+#include "umlrttimerpool.hh"
+#include "umlrtuserconfig.hh"
+#include <stdio.h>
+
+static UMLRTSignalElement signalElementBuffer[USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE];
+static UMLRTSignalElementPool signalElementPool( signalElementBuffer, USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE );
+
+static UMLRTMessage messageBuffer[USER_CONFIG_MESSAGE_POOL_SIZE];
+static UMLRTMessagePool messagePool( messageBuffer, USER_CONFIG_MESSAGE_POOL_SIZE );
+
+static UMLRTTimer timers[USER_CONFIG_TIMER_POOL_SIZE];
+static UMLRTTimerPool timerPool( timers, USER_CONFIG_TIMER_POOL_SIZE );
+
+int main( int argc, char * argv[] )
+{
+ UMLRTController::initializePools( &signalElementPool, &messagePool, &timerPool );
+ UMLRTMain::setArgs( argc, argv );
+ UMLRTCapsuleToControllerMap::setDefaultSlotList( Top_slots, 3 );
+
+ if( ! UMLRTMain::targetStartup() )
+ return EXIT_FAILURE;
+
+ DefaultController->spawn();
+
+ if( ! UMLRTMain::mainLoop() )
+ return UMLRTMain::targetShutdown( false );
+
+ DefaultController->join();
+
+ return UMLRTMain::targetShutdown( true );
+}
diff --git a/models/tests/executable/PingPong/expected_src/CMakeLists.txt b/models/tests/executable/PingPong/expected_src/CMakeLists.txt
index 482a41b..8a1db13 100644
--- a/models/tests/executable/PingPong/expected_src/CMakeLists.txt
+++ b/models/tests/executable/PingPong/expected_src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Generated 2017-02-27 14:36:43
+# Generated 2017-03-09 17:28:38
cmake_minimum_required(VERSION 2.8.7)
set(TARGET TopMain)
diff --git a/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/internal/SerializableClassGenerator.java b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/internal/SerializableClassGenerator.java
index 1c3a954..cb45c28 100644
--- a/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/internal/SerializableClassGenerator.java
+++ b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/internal/SerializableClassGenerator.java
@@ -26,6 +26,7 @@
import org.eclipse.papyrusrt.codegen.lang.cpp.external.StandardLibrary;
import org.eclipse.papyrusrt.xtumlrt.common.Attribute;
import org.eclipse.papyrusrt.xtumlrt.common.StructuredType;
+import org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTUtil;
/**
* Serializable classes are basic classes that can be encoded and sent across
@@ -59,7 +60,7 @@
ElementList elements = cpp.getElementList(CppCodePattern.Output.BasicClass, data);
BlockInitializer fieldsInit = new BlockInitializer(UMLRTRuntime.UMLRTObject.getFieldType().const_().arrayOf(null));
- for (Attribute attr : data.getAttributes()) {
+ for (Attribute attr : XTUMLRTUtil.getAllAttributes(data)) {
// Bug 470881: Static fields should not be serialized.
if (!attr.isStatic()) {
String typeStr = RTCppGenerationProperties.getAttributePropType(attr);
diff --git a/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/FlatteningTransformer.xtend b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/FlatteningTransformer.xtend
index 6b75403..2e57b6f 100644
--- a/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/FlatteningTransformer.xtend
+++ b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/FlatteningTransformer.xtend
@@ -82,6 +82,8 @@
QualifiedNames.resetCounter
// We flatten (expand) the inheritance hierarchy
+// val expandedStateMachine = stateMachine
+ // TODO: disable inheritance flattener as it is now redundant. It cannot be done yet, because the user tags generation requires it.
val expandedStateMachine = inheritanceFlattener.transform( stateMachine, context )
result = expandedStateMachine !== null
if (!result) return new TransformationResult( result, expandedStateMachine, null )
diff --git a/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/StateMachineInheritanceFlattener.xtend b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/StateMachineInheritanceFlattener.xtend
index 2af8e09..eac8da6 100644
--- a/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/StateMachineInheritanceFlattener.xtend
+++ b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/StateMachineInheritanceFlattener.xtend
@@ -176,7 +176,7 @@
val targetInContainer = transition.getTransitionTargetInState( container as CompositeState )
sourceVertex = getExpanded( sourceInContainer ) as Vertex
targetVertex = getExpanded( targetInContainer ) as Vertex
- triggers.addAll( transition.triggers.map [ it.triggerCopy ] )
+ triggers.addAll( transition.allTriggers.map [ it.triggerCopy ] )
guard = if (transition.guard !== null) getGuardCopy( transition.guard )
actionChain = if (transition.actionChain !== null) getActionChainCopy( transition.actionChain )
}
diff --git a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/META-INF/MANIFEST.MF b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/META-INF/MANIFEST.MF
index 5795792..c8de12d 100644
--- a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/META-INF/MANIFEST.MF
+++ b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/META-INF/MANIFEST.MF
@@ -13,6 +13,7 @@
org.eclipse.papyrusrt.xtumlrt.util;bundle-version="0.9.0",
org.eclipse.uml2.uml,
org.eclipse.uml2.uml.resources,
- org.eclipse.xtend.lib;bundle-version="2.10.0"
+ org.eclipse.xtend.lib;bundle-version="2.10.0",
+ org.eclipse.xtext.xbase.lib
Export-Package: org.eclipse.papyrusrt.xtumlrt.external,
org.eclipse.papyrusrt.xtumlrt.external.predefined
diff --git a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTProfileUtil.java b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTProfileUtil.java
index db5204c..3ee467b 100644
--- a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTProfileUtil.java
+++ b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTProfileUtil.java
@@ -9,6 +9,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Set;
import java.util.TreeSet;
import org.eclipse.papyrusrt.umlrt.profile.UMLRealTime.Capsule;
@@ -21,7 +22,6 @@
import org.eclipse.papyrusrt.umlrt.profile.UMLRealTime.RTPort;
import org.eclipse.papyrusrt.umlrt.profile.UMLRealTime.RTRedefinedElement;
import org.eclipse.papyrusrt.xtumlrt.util.UML2NamesUtil;
-//import org.eclipse.papyrus.umlrt.UMLRealTime.RTRExcludedElement;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Collaboration;
import org.eclipse.uml2.uml.Connector;
@@ -34,6 +34,7 @@
import org.eclipse.uml2.uml.Property;
import org.eclipse.uml2.uml.Stereotype;
import org.eclipse.uml2.uml.Type;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
/**
* This class provides a facade to the UML-RT profile.
@@ -301,7 +302,7 @@
Iterable<Interface> interfaces,
RTMessageKind messageKind,
boolean includeInOut) {
- final TreeSet<Operation> operations = new TreeSet<>(new UML2NamesUtil.NameComparator());
+ final Set<Operation> operations = new TreeSet<>(new UML2NamesUtil.NameComparator());
if (interfaces != null) {
for (Interface iface : interfaces) {
final RTMessageSet rtMessageSet = getRTMessageSet(iface);
@@ -449,8 +450,8 @@
// Ports are put into a sorted list to make sure that the order is
// stable between
// different parts of the generator (as well as between invocations).
- final TreeSet<Property> parts = new TreeSet<>(new UML2NamesUtil.NameComparator());
- for (Property attr : classifier.getOwnedAttributes()) {
+ final Set<Property> parts = new TreeSet<>(new UML2NamesUtil.NameComparator());
+ for (Property attr : IterableExtensions.filter(classifier.getOwnedMembers(), Property.class)) {
if (isCapsulePart(attr)) {
parts.add(attr);
}
@@ -470,8 +471,8 @@
// Ports are put into a sorted list to make sure that the order is
// stable between
// different parts of the generator (as well as between invocations).
- final TreeSet<Port> ports = new TreeSet<>(new UML2NamesUtil.NameComparator());
- for (Port port : classifier.getOwnedPorts()) {
+ final Set<Port> ports = new TreeSet<>(new UML2NamesUtil.NameComparator());
+ for (Port port : IterableExtensions.filter(classifier.getOwnedMembers(), Port.class)) {
if (isRTPort(port) && getProtocol(port) != null) {
ports.add(port);
}
@@ -488,7 +489,7 @@
* @return An {@link Iterable} of {@link Port}(ies) that have the {@link RTPort} stereotype.
*/
public static Iterable<Port> getAllRTPorts(Class klass) {
- final TreeSet<Port> allPorts = new TreeSet<>(new UML2NamesUtil.NameComparator());
+ final Set<Port> allPorts = new TreeSet<>(new UML2NamesUtil.NameComparator());
if (klass != null) {
for (Port p : getRTPorts(klass)) {
allPorts.add(p);
@@ -517,8 +518,8 @@
// Connectors are put into a sorted list to make sure that the order is
// stable between
// different parts of the generator (as well as between invocations).
- final TreeSet<Connector> connectors = new TreeSet<>(new UML2NamesUtil.NameComparator());
- for (Connector connector : classifier.getOwnedConnectors()) {
+ final Set<Connector> connectors = new TreeSet<>(new UML2NamesUtil.NameComparator());
+ for (Connector connector : IterableExtensions.filter(classifier.getOwnedMembers(), Connector.class)) {
if (isRTConnector(connector)) {
connectors.add(connector);
}
@@ -535,7 +536,7 @@
* @return An {@link Iterable} of {@link Connector}(ies) that have the {@link RTConnector} stereotype.
*/
public static Iterable<Connector> getAllRTConnectors(Class klass) {
- final TreeSet<Connector> allConnectors = new TreeSet<>(new UML2NamesUtil.NameComparator());
+ final Set<Connector> allConnectors = new TreeSet<>(new UML2NamesUtil.NameComparator());
if (klass != null) {
for (Connector c : getRTConnectors(klass)) {
allConnectors.add(c);
diff --git a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTStateMachProfileUtil.xtend b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTStateMachProfileUtil.xtend
index 7ab0731..341cdb0 100644
--- a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTStateMachProfileUtil.xtend
+++ b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTStateMachProfileUtil.xtend
@@ -7,6 +7,7 @@
*******************************************************************************/
package org.eclipse.papyrusrt.xtumlrt.external.predefined
+import org.eclipse.papyrusrt.umlrt.profile.statemachine.UMLRTStateMachines.RTGuard
import org.eclipse.papyrusrt.umlrt.profile.statemachine.UMLRTStateMachines.RTTrigger
import org.eclipse.uml2.uml.Element
import org.eclipse.uml2.uml.Pseudostate
@@ -15,8 +16,6 @@
import org.eclipse.uml2.uml.Region
import org.eclipse.uml2.uml.StateMachine
import org.eclipse.uml2.uml.Transition
-import org.eclipse.uml2.uml.Stereotype
-import org.eclipse.papyrusrt.umlrt.profile.statemachine.UMLRTStateMachines.RTGuard
class UMLRTStateMachProfileUtil
{
@@ -24,6 +23,25 @@
/** Name of the trigger guard stereotype. */
static val UML_REAL_TIME_RT_GUARD = "UMLRTStateMachines::RTGuard";
+ static def Iterable<Pseudostate> getConnectionPoints( State state )
+ {
+ state?.ownedMembers?.filter( Pseudostate )
+ }
+
+ static def Iterable<Pseudostate> getInternalPseudostates( Region region )
+ {
+ region?.ownedMembers?.filter( Pseudostate )
+ }
+
+ static def Iterable<Pseudostate> getInternalPseudostates( State state )
+ {
+ state?.ownedRegion?.internalPseudostates
+ }
+
+ static def Iterable<Pseudostate> getInternalPseudostates( StateMachine stateMachine )
+ {
+ stateMachine?.ownedRegion?.internalPseudostates
+ }
static def Iterable<Pseudostate> getChoicePoints( Region region )
{
@@ -57,12 +75,12 @@
static def Iterable<Pseudostate> getEntryPoints( State state )
{
- state.connectionPoints.filter [ it.kind == PseudostateKind.ENTRY_POINT_LITERAL ]
+ getConnectionPoints( state )?.filter [ it.kind == PseudostateKind.ENTRY_POINT_LITERAL ]
}
static def Iterable<Pseudostate> getExitPoints( State state )
{
- state.connectionPoints.filter [ it.kind == PseudostateKind.EXIT_POINT_LITERAL ]
+ getConnectionPoints( state )?.filter [ it.kind == PseudostateKind.EXIT_POINT_LITERAL ]
}
static def Pseudostate getInitialPoint( Region region )
@@ -80,21 +98,6 @@
stateMachine?.ownedRegion?.initialPoint
}
- static def Iterable<Pseudostate> getInternalPseudostates( Region region )
- {
- region?.subvertices?.filter( Pseudostate )
- }
-
- static def Iterable<Pseudostate> getInternalPseudostates( State state )
- {
- state?.ownedRegion?.internalPseudostates
- }
-
- static def Iterable<Pseudostate> getInternalPseudostates( StateMachine stateMachine )
- {
- stateMachine?.ownedRegion?.internalPseudostates
- }
-
static def Iterable<Pseudostate> getJunctionPoints( Region region )
{
region?.internalPseudostates?.filter[ it.kind == PseudostateKind.JUNCTION_LITERAL ]
@@ -124,65 +127,66 @@
regions.get(0)
}
- static def RTTrigger getRTTrigger(Element el) {
- val s = el.getAppliedStereotype("UMLRealTime::RTTrigger")
- if (s == null)
- {
- return null
- }
- return el.getStereotypeApplication(s) as RTTrigger
- }
-
static def Iterable<State> getSubstates( Region region )
{
- region?.subvertices?.filter( State )
+ region?.ownedMembers?.filter( State )
}
static def Iterable<State> getSubstates( State state )
{
- state?.ownedRegion?.substates
+ getSubstates( state?.ownedRegion )
}
static def Iterable<State> getSubstates( StateMachine stateMachine )
{
- stateMachine?.ownedRegion?.substates
+ getSubstates( stateMachine?.ownedRegion )
}
static def Iterable<Transition> getTransitions( Region region )
{
- region?.subvertices?.filter( Transition )
+ region?.ownedMembers?.filter( Transition )
}
static def Iterable<Transition> getTransitions( State state )
{
- state?.ownedRegion?.transitions
+ getTransitions( state?.ownedRegion )
}
static def Iterable<Transition> getTransitions( StateMachine stateMachine )
{
- stateMachine?.ownedRegion?.transitions
+ getTransitions( stateMachine?.ownedRegion)
+ }
+
+ static def boolean isRTGuard( Element el )
+ {
+ val s = el.getApplicableStereotype(UML_REAL_TIME_RT_GUARD)
+ s !== null && el.isStereotypeApplied(s)
}
static def boolean isRTTrigger( Element el )
{
val s = el.getApplicableStereotype("UMLRealTime::RTTrigger")
- if (s != null)
+ if (s !== null)
{
return el.isStereotypeApplied(s)
}
return false;
}
- static def boolean isRTGuard( Element el )
- {
- val s = el.getApplicableStereotype(UML_REAL_TIME_RT_GUARD)
- s !== null && el.isStereotypeApplied(s)
- }
+ static def RTGuard getRTGuard( Element el )
+ {
+ val s = el.getAppliedStereotype(UML_REAL_TIME_RT_GUARD)
+ if (s === null) null else el.getStereotypeApplication(s) as RTGuard
+ }
- static def RTGuard getRTGuard( Element el )
- {
- val s = el.getAppliedStereotype(UML_REAL_TIME_RT_GUARD)
- if (s === null) null else el.getStereotypeApplication(s) as RTGuard
- }
+ static def RTTrigger getRTTrigger(Element el)
+ {
+ val s = el.getAppliedStereotype("UMLRealTime::RTTrigger")
+ if (s === null)
+ {
+ return null
+ }
+ return el.getStereotypeApplication(s) as RTTrigger
+ }
}
\ No newline at end of file
diff --git a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTAnnotations.xtend b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTAnnotations.xtend
index cdf36b4..a34ce4e 100644
--- a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTAnnotations.xtend
+++ b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTAnnotations.xtend
@@ -26,6 +26,9 @@
*/
class XTUMLRTAnnotations
{
+ public static val ANN_EXCLUSION = "Excluded"
+ public static val ANN_PARAM_EXCLUDED = "excluded"
+
/** Maps each xtumlrt element to the list of UML stereotype applications from the C++ Properties Set profile */
static val annotationsMap = new HashMap<CommonElement, EList<EObject>>
diff --git a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTSMVirtualInheritanceExtensions.xtend b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTSMVirtualInheritanceExtensions.xtend
index 1a93f05..46eb1c7 100644
--- a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTSMVirtualInheritanceExtensions.xtend
+++ b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTSMVirtualInheritanceExtensions.xtend
@@ -7,6 +7,9 @@
*******************************************************************************/
package org.eclipse.papyrusrt.xtumlrt.util
+import java.util.Collection
+import java.util.LinkedHashSet
+import java.util.List
import org.eclipse.papyrusrt.xtumlrt.statemach.CompositeState
import org.eclipse.papyrusrt.xtumlrt.statemach.ChoicePoint
import org.eclipse.papyrusrt.xtumlrt.statemach.DeepHistory
@@ -20,8 +23,8 @@
import org.eclipse.papyrusrt.xtumlrt.statemach.Transition
import org.eclipse.papyrusrt.xtumlrt.statemach.Vertex
import static extension org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTStateMachineUtil.*
-import java.util.Collection
-import java.util.List
+import static extension org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTUtil.*
+import org.eclipse.papyrusrt.xtumlrt.statemach.Trigger
/**
* This class provides extension methods that implement "virtual state machine
@@ -496,7 +499,7 @@
val List<State> allStates = newArrayList
if (state !== null)
{
- allStates.addAll( state.substates )
+ allStates.addAll( state.actualSubstates )
val redefinedState = state.redefinedState
if (redefinedState !== null)
{
@@ -512,17 +515,27 @@
}
/**
+ * Returns the set of substates of the given composite state that have not been excluded.
+ */
+ static def Iterable<State> getActualSubstates( CompositeState state )
+ {
+ val substates = new LinkedHashSet<State>
+ substates.addAll( state.substates.filter[ !isExcluded ] )
+ substates
+ }
+
+ /**
* Returns the union of:
*
* <ol>
* <li> the set inherited transitions that have not been redefined,
- * <li> the set of transitions that are redefinitions of states in the extended region, and
+ * <li> the set of transitions that are redefinitions of transitions in the extended region, and
* <li> the set of new transitions which are neither inherited, not redefinitions
* </ol>
*
* <p> The last two sets are already present in the given region, so this method takes
- * those states in the current region and adds all inherited states for which there is
- * no state in the given region redefining them.
+ * those transitions in the current region and adds all inherited transitions for which there is
+ * no transition in the given region redefining them.
*/
static def dispatch Iterable<Transition> getAllTransitions( StateMachine stateMachine )
{
@@ -540,7 +553,7 @@
val List<Transition> allTransitions = newArrayList
if (state !== null)
{
- allTransitions.addAll( state.transitions )
+ allTransitions.addAll( state.actualTransitions )
val redefinedState = state.redefinedState
if (redefinedState !== null)
{
@@ -556,6 +569,59 @@
}
/**
+ * Returns the set of transitions of the given composite state that have not been excluded.
+ */
+ static def Iterable<Transition> getActualTransitions( CompositeState state )
+ {
+ val transitions = new LinkedHashSet<Transition>
+ transitions.addAll( state.transitions.filter[ !isExcluded ] )
+ transitions
+ }
+
+ /**
+ * Returns the union of:
+ *
+ * <ol>
+ * <li> the set inherited triggers that have not been excluded,
+ * <li> the set of new triggers which are neither inherited, not excluded
+ * </ol>
+ *
+ * <p> The last set is already present in the given transition, so this method takes
+ * those triggers in the current transition and adds all inherited triggers that have not
+ * been excluded.
+ */
+ static def Iterable<Trigger> getAllTriggers( Transition transition )
+ {
+ val List<Trigger> allTriggers = newArrayList
+ if (transition !== null)
+ {
+ allTriggers.addAll( transition.actualTriggers )
+ val redefinedTransition = transition.redefinedTransition
+ if (redefinedTransition !== null)
+ {
+ val inheritedTriggers = redefinedTransition.allTriggers
+ for (trig : inheritedTriggers)
+ {
+ if (!transition.excludes( trig ))
+ allTriggers.add( trig )
+ }
+ }
+ }
+ allTriggers
+ }
+
+ /**
+ * Returns the set of triggers of the given transition that have not been excluded.
+ */
+ static def Iterable<Trigger> getActualTriggers( Transition transition )
+ {
+ val triggers = new LinkedHashSet<Trigger>
+ triggers.addAll( transition.triggers.filter[ !isExcluded ] )
+ triggers
+ }
+
+
+ /**
* Returns the state redefined by the given state or null if it doesn't
* redefine any.
*/
@@ -850,4 +916,4 @@
compositeState.redefinedTransitions.exists [it == transition]
}
-}
\ No newline at end of file
+}
diff --git a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTUtil.xtend b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTUtil.xtend
index 7a4410f..9793bab 100644
--- a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTUtil.xtend
+++ b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTUtil.xtend
@@ -43,6 +43,7 @@
import org.eclipse.papyrusrt.xtumlrt.umlrt.RTPort
import static extension org.eclipse.papyrusrt.xtumlrt.util.GeneralUtil.*
import static extension org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTAnnotations.*
+import org.eclipse.papyrusrt.xtumlrt.common.Annotation
class XTUMLRTUtil
{
@@ -711,4 +712,21 @@
return false
}
+ static def excludedElements( NamedElement container )
+ {
+ var Iterable<CommonElement> elements = newArrayList
+ val ann = getAnnotation( container, XTUMLRTAnnotations.ANN_EXCLUSION )
+ if (ann instanceof Annotation)
+ {
+ val param = ann.parameters.findFirst[ name == XTUMLRTAnnotations.ANN_PARAM_EXCLUDED ]
+ elements = param.value as Iterable<CommonElement>
+ }
+ return elements
+ }
+
+ static def excludes( NamedElement container, CommonElement element )
+ {
+ container.excludedElements.exists[ it == element ]
+ }
+
}
\ No newline at end of file
diff --git a/plugins/xtumlrt/metamodel/org.eclipse.papyrusrt.xtumlrt.umlrt.model/.settings/.gitignore b/plugins/xtumlrt/metamodel/org.eclipse.papyrusrt.xtumlrt.umlrt.model/.settings/.gitignore
new file mode 100644
index 0000000..5f2445c
--- /dev/null
+++ b/plugins/xtumlrt/metamodel/org.eclipse.papyrusrt.xtumlrt.umlrt.model/.settings/.gitignore
@@ -0,0 +1 @@
+/org.eclipse.xtend.core.Xtend.prefs
diff --git a/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtModelTranslator.xtend b/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtModelTranslator.xtend
index 6f49bbf..6343b42 100644
--- a/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtModelTranslator.xtend
+++ b/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtModelTranslator.xtend
@@ -413,12 +413,12 @@
protected dispatch def initStructuredType( Class klass, StructuredType newType )
{
- for (attribute : klass.ownedAttributes)
+ for (attribute : klass.ownedMembers.filter(org.eclipse.uml2.uml.Property))
{
if (!attribute.isRTPort && !attribute.isCapsulePart)
newType.attributes.add( translateElement(attribute) as Attribute )
}
- for (operation : klass.ownedOperations)
+ for (operation : klass.ownedMembers.filter(org.eclipse.uml2.uml.Operation))
{
newType.operations.add( translateElement(operation) as Operation )
}
@@ -440,7 +440,7 @@
else if (klass.ownedBehaviors !== null
&& !klass.ownedBehaviors.empty)
{
- stateMachine = klass.ownedBehaviors.findFirst[ it instanceof org.eclipse.uml2.uml.StateMachine ]
+ stateMachine = klass.ownedMembers.findFirst[ it instanceof org.eclipse.uml2.uml.StateMachine ]
as org.eclipse.uml2.uml.StateMachine
}
if (stateMachine !== null)
diff --git a/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtSMTranslator.xtend b/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtSMTranslator.xtend
index b049f7a..274c90b 100644
--- a/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtSMTranslator.xtend
+++ b/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtSMTranslator.xtend
@@ -22,6 +22,7 @@
import org.eclipse.papyrusrt.xtumlrt.statemach.JunctionPoint
import org.eclipse.papyrusrt.xtumlrt.statemach.Pseudostate
import org.eclipse.papyrusrt.xtumlrt.statemach.SimpleState
+import org.eclipse.papyrusrt.xtumlrt.statemach.State
import org.eclipse.papyrusrt.xtumlrt.statemach.StateMachine
import org.eclipse.papyrusrt.xtumlrt.statemach.StatemachFactory
import org.eclipse.papyrusrt.xtumlrt.statemach.Transition
@@ -38,14 +39,7 @@
import org.eclipse.papyrusrt.xtumlrt.util.ActionLangUtils
import org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTAnnotations
import org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTLogger
-import org.eclipse.uml2.uml.AnyReceiveEvent
-import org.eclipse.uml2.uml.Behavior
-import org.eclipse.uml2.uml.CallEvent
-import org.eclipse.uml2.uml.Constraint
-import org.eclipse.uml2.uml.Element
import org.eclipse.uml2.uml.PseudostateKind
-import org.eclipse.uml2.uml.Region
-import org.eclipse.uml2.uml.State
import static extension org.eclipse.papyrusrt.xtumlrt.util.GeneralUtil.*
import static extension org.eclipse.papyrusrt.xtumlrt.util.NamesUtil.*
@@ -62,7 +56,7 @@
this.uml2xtumlrtTranslator = uml2xtumlrtTranslator
}
- dispatch def CommonElement translate( Element element )
+ dispatch def CommonElement translate( org.eclipse.uml2.uml.Element element )
{
}
@@ -93,25 +87,25 @@
create
if (region === null) null
else StatemachFactory.eINSTANCE.createCompositeState
- translate( Region region )
+ translate( org.eclipse.uml2.uml.Region region )
{
if (region !== null)
{
initial = translateOptionalElement( region.initialPoint ) as InitialPoint
deepHistory = translateOptionalElement( region.deepHistoryPoint ) as DeepHistory
- for (element : region.choicePoints)
+ for (element : getChoicePoints( region ))
{
choicePoints.addIfNotNull( translateElement(element) as ChoicePoint )
}
- for (element : region.junctionPoints)
+ for (element : getJunctionPoints( region ))
{
junctionPoints.addIfNotNull( translateElement(element) as JunctionPoint )
}
- for (element : region.substates)
+ for (element : getSubstates( region ))
{
- substates.addIfNotNull( translateElement(element) as org.eclipse.papyrusrt.xtumlrt.statemach.State )
+ substates.addIfNotNull( translateElement(element) as State )
}
- for (element : region.transitions)
+ for (element : getTransitions( region ) )
{
transitions.addIfNotNull( translateElement(element) as Transition )
}
@@ -128,24 +122,24 @@
*
* @param originalState - the UML2 state element in the original model
*/
- dispatch def org.eclipse.papyrusrt.xtumlrt.statemach.State
+ dispatch def State
create
if (originalState.isSimpleState)
translateSimpleState( originalState )
else
translateCompositeState( originalState )
- translate( State originalState )
+ translate( org.eclipse.uml2.uml.State originalState )
{
if (it !== null)
{
name = originalState.effectiveName
- entryAction = translateFeature( originalState, "entry", Behavior, EntryAction, true ) as EntryAction
- exitAction = translateFeature( originalState, "exit", Behavior, ExitAction, true ) as ExitAction
- for (entryPoint : originalState.entryPoints)
+ entryAction = translateFeature( originalState, "entry", org.eclipse.uml2.uml.Behavior, EntryAction, true ) as EntryAction
+ exitAction = translateFeature( originalState, "exit", org.eclipse.uml2.uml.Behavior, ExitAction, true ) as ExitAction
+ for (entryPoint : getEntryPoints( originalState ))
{
entryPoints.addIfNotNull( translateElement(entryPoint) as EntryPoint )
}
- for (exitPoint : originalState.exitPoints)
+ for (exitPoint : getExitPoints( originalState ))
{
exitPoints.addIfNotNull( translateElement(exitPoint) as ExitPoint )
}
@@ -153,17 +147,17 @@
}
}
- def isSimpleState( State originalState )
+ def isSimpleState( org.eclipse.uml2.uml.State originalState )
{
originalState.simple
|| originalState.composite
&& (originalState.regions === null
|| originalState.regions.empty
|| (originalState.regions.size == 1
- && (originalState.regions.get(0) as Region).isEmpty))
+ && (originalState.regions.get(0) as org.eclipse.uml2.uml.Region).isEmpty))
}
- def boolean isEmpty( Region region )
+ def boolean isEmpty( org.eclipse.uml2.uml.Region region )
{
if (region.extendedRegion === null)
region.ownedElements === null || region.ownedElements.empty
@@ -174,7 +168,7 @@
/**
* Translates a simple state.
*/
- protected def SimpleState translateSimpleState( State originalState )
+ protected def SimpleState translateSimpleState( org.eclipse.uml2.uml.State originalState )
{
StatemachFactory.eINSTANCE.createSimpleState
}
@@ -186,7 +180,7 @@
* <p>When traversing the sub-states, the translation is applied recursively.
*/
protected def CompositeState
- translateCompositeState( State originalState )
+ translateCompositeState( org.eclipse.uml2.uml.State originalState )
{
translate( originalState.ownedRegion ) as CompositeState
}
@@ -225,9 +219,9 @@
if (behaviour === null) null
else if (behaviour.owner !== null)
{
- if (behaviour.owner instanceof State)
+ if (behaviour.owner instanceof org.eclipse.uml2.uml.State)
{
- val state = behaviour.owner as State
+ val state = behaviour.owner as org.eclipse.uml2.uml.State
if (behaviour === state.entry)
StatemachextFactory.eINSTANCE.createEntryAction
else if (behaviour === state.exit)
@@ -242,7 +236,7 @@
}
else
throw new RuntimeException( "Behavior '" + behaviour.qualifiedName + "' has no owner.")
- translate( Behavior behaviour )
+ translate( org.eclipse.uml2.uml.Behavior behaviour )
{
if (it !== null && behaviour !== null)
{
@@ -262,9 +256,9 @@
{
triggers.addIfNotNull( translateElement(trigger) as Trigger )
}
- guard = translateFeature( originalTransition, "guard", Constraint, Guard, true ) as Guard
+ guard = translateFeature( originalTransition, "guard", org.eclipse.uml2.uml.Constraint, Guard, true ) as Guard
actionChain = StatemachFactory.eINSTANCE.createActionChain
- actionChain.actions.addIfNotNull( translateFeature( originalTransition, "effect", Behavior, TransitionAction, true ) as TransitionAction )
+ actionChain.actions.addIfNotNull( translateFeature( originalTransition, "effect", org.eclipse.uml2.uml.Behavior, TransitionAction, true ) as TransitionAction )
translateRedefinableElement( originalTransition, it )
}
@@ -292,7 +286,7 @@
val triggerPort = uml2xtumlrtTranslator.translateElement(port) as RTPort
if (PortKind.RELAY == triggerPort.kind)
{
- XTUMLRTLogger.warning("Ignoring replay port from the trigger '" + trigger.qualifiedName + "'")
+ XTUMLRTLogger.warning("Ignoring relay port from the trigger '" + trigger.qualifiedName + "'")
}
else
{
@@ -306,11 +300,11 @@
{
XTUMLRTLogger.error( "The trigger '" + trigger.qualifiedName + "' has a null event" )
}
- if (event instanceof AnyReceiveEvent)
+ if (event instanceof org.eclipse.uml2.uml.AnyReceiveEvent)
{
signal = UmlrtFactory.eINSTANCE.createAnyEvent
}
- else if (event instanceof CallEvent)
+ else if (event instanceof org.eclipse.uml2.uml.CallEvent)
{
val operation = event.operation
if (operation === null)
@@ -334,6 +328,7 @@
triggerGuard = translateElement( constraint ) as Guard
}
}
+ addExcludedAnnotation( owner, excludedElements( owner ) )
}
it
}
@@ -341,7 +336,7 @@
dispatch def create
if (originalGuard === null) null
else StatemachFactory.eINSTANCE.createGuard
- translate( Constraint originalGuard )
+ translate( org.eclipse.uml2.uml.Constraint originalGuard )
{
if (it !== null)
{
diff --git a/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtTranslator.xtend b/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtTranslator.xtend
index 56c2e26..0ea693e 100644
--- a/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtTranslator.xtend
+++ b/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtTranslator.xtend
@@ -16,6 +16,7 @@
import java.util.ArrayList
import java.util.Collection
import java.util.Collections
+import java.util.LinkedHashSet
import java.util.List
import java.util.Map
import java.util.Set
@@ -30,17 +31,18 @@
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
import org.eclipse.papyrusrt.xtumlrt.util.DetailedException
import org.eclipse.papyrusrt.xtumlrt.common.CommonElement
+import org.eclipse.papyrusrt.xtumlrt.common.NamedElement
import org.eclipse.papyrusrt.xtumlrt.common.RedefinableElement
import org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTAnnotations
import org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTLogger
import org.eclipse.uml2.uml.Element
import org.eclipse.uml2.uml.Enumeration
-import org.eclipse.uml2.uml.NamedElement
import org.eclipse.xtend.lib.annotations.Accessors
import org.eclipse.xtend.lib.annotations.Data
import static extension org.eclipse.papyrusrt.xtumlrt.external.predefined.RTSModelLibraryUtils.*
import static extension org.eclipse.papyrusrt.xtumlrt.external.predefined.UMLRTProfileUtil.*
+import org.eclipse.papyrusrt.xtumlrt.common.CommonFactory
/**
* This is the base class for translators from UML2 to xtUMLrt.
@@ -395,6 +397,38 @@
}
}
+ protected def addExcludedAnnotation( org.eclipse.uml2.uml.RedefinableElement container, Iterable<org.eclipse.uml2.uml.Element> excluded )
+ {
+ val translatedContainer = translateElement( container ) as NamedElement
+ val translatedExcluded = excluded.map [ translateElement ]
+ val ann = CommonFactory.eINSTANCE.createAnnotation => [ name = XTUMLRTAnnotations.ANN_EXCLUSION ]
+ val param =
+ CommonFactory.eINSTANCE.createAnnotationParameter => [
+ name = XTUMLRTAnnotations.ANN_PARAM_EXCLUDED
+ value = translatedExcluded
+ ]
+ ann.parameters.add( param )
+ translatedContainer.annotations.add( ann )
+ }
+
+ protected def Iterable<org.eclipse.uml2.uml.Element> excludedElements( org.eclipse.uml2.uml.RedefinableElement container )
+ {
+ val set = new LinkedHashSet<org.eclipse.uml2.uml.Element>();
+ for (constraint : container.ownedElements.filter(org.eclipse.uml2.uml.Constraint))
+ {
+ val spec = constraint.specification
+ if (spec instanceof org.eclipse.uml2.uml.LiteralBoolean)
+ {
+ if (!spec.value)
+ {
+ set.addAll(constraint.constrainedElements)
+ }
+ }
+ }
+ set
+ }
+
+
@Data
static class TranslationException extends DetailedException
{
@@ -425,7 +459,7 @@
def String getUMLElementInfoStr()
{
if (element === null) return "null UML element"
- if (element instanceof NamedElement)
+ if (element instanceof org.eclipse.uml2.uml.NamedElement)
return element.qualifiedName
if (element instanceof Enum<?>)
return element.name