Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'extraplugins/qompass-designer/tracing')
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.classpath7
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.project28
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/META-INF/MANIFEST.MF29
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/about.html28
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/build.properties13
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_16x16.gifbin0 -> 197 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_9x9.gifbin0 -> 179 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp.gifbin0 -> 361 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp_disabled.gifbin0 -> 173 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_16x16.gifbin0 -> 139 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_9x9.gifbin0 -> 123 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/debug.gifbin0 -> 348 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/properties.gifbin0 -> 577 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_11x12.gifbin0 -> 313 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_16x16.gifbin0 -> 348 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_11x12.gifbin0 -> 302 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_16x16.gifbin0 -> 316 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.properties12
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.xml193
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/schema/traceMechanism.exsd109
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/Activator.java90
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/ITraceMechanism.java74
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/MarkerUtils.java84
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceActions.java206
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceFunctions.java112
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceMechanism.java88
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceState.java20
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TracepointConstants.java32
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/AbstractTracepointCommand.java168
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointActivationCommand.java40
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointCommand.java41
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointActivationCommand.java41
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointCommand.java52
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/TracepointPropertiesCommand.java81
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/dialogs/TraceActionSelection.java293
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/AbstractCommandHandler.java165
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointActivationHandler.java33
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointHandler.java33
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointActivationHandler.java33
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointHandler.java33
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/TracepointPropertiesHandler.java33
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/BinaryEncodedMChoiceFieldEditor.java132
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/MultipleChoiceFieldEditor.java234
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceConstants.java51
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceInitializer.java53
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferencePage.java106
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.classpath7
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.project34
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/META-INF/MANIFEST.MF19
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/about.html28
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.acceleo26
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.properties13
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/help/tocconcepts.xml7
-rwxr-xr-xextraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image001.gifbin0 -> 2182 bytes
-rwxr-xr-xextraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image002.gifbin0 -> 2123 bytes
-rwxr-xr-xextraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image003.gifbin0 -> 1323 bytes
-rwxr-xr-xextraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image004.jpgbin0 -> 3340 bytes
-rwxr-xr-xextraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image005.jpgbin0 -> 36908 bytes
-rwxr-xr-xextraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image006.jpgbin0 -> 4937 bytes
-rwxr-xr-xextraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image007.gifbin0 -> 21539 bytes
-rwxr-xr-xextraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image008.jpgbin0 -> 44181 bytes
-rwxr-xr-xextraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image009.jpgbin0 -> 43754 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/userguide.htm213
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.di76
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.notation1315
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.uml428
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.di53
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.notation1090
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.uml457
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.di52
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.notation1078
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.uml771
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.properties12
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.xml54
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/Activator.java51
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/ClientServerTraceTestModelWizard.java11
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorOTF.java53
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorTrace.java40
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/QompassTraceMechanism.java181
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceUtils.java45
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/traceCout.mtl14
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/traceLTTng.mtl172
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/traceOTF.mtl28
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/.classpath7
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/.project28
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/META-INF/MANIFEST.MF22
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/about.html28
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/build.properties10
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/contexts.xml13
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/breakpoint_view.gifbin0 -> 204 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/gotoobj_tsk.gifbin0 -> 372 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/skip_brkp.gifbin0 -> 204 bytes
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.properties12
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.xml34
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/Activator.java78
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TraceViewImages.java44
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TracepointView.java521
97 files changed, 9872 insertions, 0 deletions
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.classpath b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.classpath
new file mode 100644
index 00000000000..9d5026e8ffd
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.project b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.project
new file mode 100644
index 00000000000..07350fea43f
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.services.tracepoints</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/META-INF/MANIFEST.MF b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..ee75c7c3f8c
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/META-INF/MANIFEST.MF
@@ -0,0 +1,29 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.emf;bundle-version="2.6.0",
+ org.eclipse.emf.ecore;bundle-version="2.6.1",
+ org.eclipse.core.resources;bundle-version="3.6.0",
+ org.apache.commons.lang;bundle-version="2.3.0",
+ org.eclipse.emf.edit.ui;bundle-version="2.6.0",
+ org.eclipse.gmf.runtime.emf.commands.core;bundle-version="1.0.100",
+ org.eclipse.emf.facet.infra.browser.uicore;bundle-version="0.1.0",
+ org.eclipse.papyrus.infra.core;bundle-version="0.9.2",
+ org.eclipse.papyrus.infra.widgets;bundle-version="0.9.2",
+ org.eclipse.papyrus.infra.services.decoration;bundle-version="0.9.2",
+ org.eclipse.gef;bundle-version="3.8.1",
+ org.eclipse.gmf.runtime.notation;bundle-version="1.5.0",
+ org.eclipse.uml2.uml;bundle-version="4.0.0"
+Export-Package: org.eclipse.papyrus.infra.services.tracepoints,
+ org.eclipse.papyrus.infra.services.tracepoints.commands,
+ org.eclipse.papyrus.infra.services.tracepoints.dialogs,
+ org.eclipse.papyrus.infra.services.tracepoints.preferences
+Bundle-Vendor: %pluginProvider
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 0.9.2.qualifier
+Bundle-Name: %pluginName
+Bundle-ManifestVersion: 2
+Bundle-Activator: org.eclipse.papyrus.infra.services.tracepoints.Activator
+Bundle-SymbolicName: org.eclipse.papyrus.infra.services.tracepoints;singleton:=true
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Localization: plugin
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/about.html b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/build.properties b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/build.properties
new file mode 100644
index 00000000000..8e1f07ccf86
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/build.properties
@@ -0,0 +1,13 @@
+#
+#Mon Sep 12 09:30:24 CEST 2011
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ plugin.properties,\
+ plugin.xml,\
+ icons/,\
+ schema/
+output..=bin/
+src.includes = about.html
+source..=src/
+bin..=bin/
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_16x16.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_16x16.gif
new file mode 100644
index 00000000000..a831fe72782
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_16x16.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_9x9.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_9x9.gif
new file mode 100644
index 00000000000..3678b09c6bf
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_9x9.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp.gif
new file mode 100644
index 00000000000..173661c5df7
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp_disabled.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp_disabled.gif
new file mode 100644
index 00000000000..5ea466bcb2a
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkp_grp_disabled.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_16x16.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_16x16.gif
new file mode 100644
index 00000000000..74b26c31a4d
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_16x16.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_9x9.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_9x9.gif
new file mode 100644
index 00000000000..d6d8d31b06f
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/brkpd_9x9.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/debug.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/debug.gif
new file mode 100644
index 00000000000..d90a29fead8
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/debug.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/properties.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/properties.gif
new file mode 100644
index 00000000000..1dc19a31a0f
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/properties.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_11x12.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_11x12.gif
new file mode 100644
index 00000000000..c04edf8e83e
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_11x12.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_16x16.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_16x16.gif
new file mode 100644
index 00000000000..29ec606076f
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcp_16x16.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_11x12.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_11x12.gif
new file mode 100644
index 00000000000..f3e7b3d6791
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_11x12.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_16x16.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_16x16.gif
new file mode 100644
index 00000000000..76c65b6196f
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/icons/etool16/trcpd_16x16.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.properties b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.properties
new file mode 100644
index 00000000000..3cabfa42274
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2010 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus Tracepoint Integration (Incubation)
+pluginProvider=Eclipse Modeling Project
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.xml b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.xml
new file mode 100644
index 00000000000..80dceda93de
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/plugin.xml
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+
+<plugin>
+ <extension-point id="traceMechanism" name="traceMechanism" schema="schema/traceMechanism.exsd"/>
+
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ allPopups="true"
+ locationURI="popup:org.eclipse.papyrus.views.modelexplorer.modelexplorer.popup">
+ <menu
+ icon="icons/etool16/debug.gif"
+ id="org.eclipse.papyrus.views.modelexplorer.popup.tracing"
+ label="Tracing">
+ </menu>
+ </menuContribution>
+ <menuContribution
+ allPopups="true"
+ locationURI="popup:org.eclipse.papyrus.views.modelexplorer.popup.tracing">
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.togglebreakpoint"
+ icon="icons/etool16/brkp_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.togglebreakpoint"
+ label="Toggle breakpoint">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.togglebreakpointactivation"
+ icon="icons/etool16/brkpd_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.togglebreakpointactivation"
+ label="Toggle breakpoint activation">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.toggletracepoint"
+ icon="icons/etool16/trcp_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.toggletracepoint"
+ label="Toggle tracepoint">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.toggletracepointactivation"
+ icon="icons/etool16/trcpd_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.toggletracepointactivation"
+ label="Toggle tracepoint activation">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.tracepointproperties"
+ icon="icons/etool16/properties.gif"
+ id="org.eclipse.papyrus.tracepoints.tracepointproperties"
+ label="Tracepoint properties">
+ </command>
+ </menuContribution>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ allPopups="true"
+ locationURI="popup:org.eclipse.gmf.runtime.diagram.ui.DiagramEditorContextMenu?after=filtersMenu">
+ <menu
+ icon="icons/etool16/debug.gif"
+ id="org.eclipse.papyrus.views.gmf.popup.tracing"
+ label="Tracing">
+ </menu>
+ </menuContribution>
+ <menuContribution
+ allPopups="true"
+ locationURI="popup:org.eclipse.papyrus.views.gmf.popup.tracing">
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.togglebreakpoint"
+ icon="icons/etool16/brkp_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.toggletracepoint"
+ label="Toggle breakpoint">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.togglebreakpointactivation"
+ icon="icons/etool16/brkpd_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.togglebreakpointactivation"
+ label="Toggle breakpoint activation">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.toggletracepoint"
+ icon="icons/etool16/trcp_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.toggletracepoint"
+ label="Toggle tracepoint">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.toggletracepointactivation"
+ icon="icons/etool16/trcpd_16x16.gif"
+ id="org.eclipse.papyrus.tracepoints.toggletracepointactivation"
+ label="Toggle tracepoint activation">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.tracepoints.tracepointproperties"
+ icon="icons/etool16/properties.gif"
+ id="org.eclipse.papyrus.tracepoints.tracepointproperties"
+ label="Tracepoint properties">
+ </command>
+ </menuContribution>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.infra.services.tracepoints.handler.ToggleBreakpointHandler"
+ description="ToggleBreakpoint"
+ id="org.eclipse.papyrus.tracepoints.togglebreakpoint"
+ name="ToggleBreakpoint">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.infra.services.tracepoints.handler.ToggleBreakpointActivationHandler"
+ description="ToggleBreakpointActivation"
+ id="org.eclipse.papyrus.tracepoints.togglebreakpointactivation"
+ name="ToggleBreakpointActivation">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.infra.services.tracepoints.handler.ToggleTracepointHandler"
+ description="ToggleTracepoint"
+ id="org.eclipse.papyrus.tracepoints.toggletracepoint"
+ name="ToggleTracepoint">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.infra.services.tracepoints.handler.ToggleTracepointActivationHandler"
+ description="ToggleTracepointActivation"
+ id="org.eclipse.papyrus.tracepoints.toggletracepointactivation"
+ name="ToggleTracepointActivation">
+ </command>
+ <command
+ categoryId="org.eclipse.papyrus.editor.category"
+ defaultHandler="org.eclipse.papyrus.infra.services.tracepoints.handler.TracepointPropertiesHandler"
+ description="TracepointPropertoes"
+ id="org.eclipse.papyrus.tracepoints.tracepointproperties"
+ name="TracepointProperties">
+ </command>
+ </extension>
+
+ <extension
+ point="org.eclipse.papyrus.infra.services.decoration.decorationSpecificFunctions">
+ <client
+ class="org.eclipse.papyrus.infra.services.tracepoints.TraceFunctions"
+ decorationType="org.eclipse.papyrus.tporbpmarker">
+ </client>
+ </extension>
+
+ <extension
+ id="org.eclipse.papyrus.tporbpmarker"
+ name="tracepoint or breakpoint marker"
+ point="org.eclipse.core.resources.markers">
+ <super
+ type="org.eclipse.papyrus.modelmarker">
+ </super>
+ <attribute
+ name="isActive">
+ </attribute>
+ <attribute
+ name="isTracepoint">
+ </attribute>
+ <persistent
+ value="true">
+ </persistent>
+ </extension>
+
+ <extension
+ id="org.eclipse.papyrus.tpmarker"
+ name="tracepoint marker"
+ point="org.eclipse.core.resources.markers">
+ <super
+ type="org.eclipse.papyrus.tporbpmarker">
+ </super>
+ <attribute
+ name="traceAction">
+ </attribute>
+ <attribute
+ name="traceMechanism">
+ </attribute>
+ <persistent
+ value="true">
+ </persistent>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.papyrus.infra.core.sasheditor.preferences.generalcategory"
+ class="org.eclipse.papyrus.infra.services.tracepoints.preferences.TPPreferencePage"
+ id="org.eclipse.papyrus.infra.services.tracepoints.preferences.TPPreferencePage_ID"
+ name="Tracepoint preferences">
+ </page>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/schema/traceMechanism.exsd b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/schema/traceMechanism.exsd
new file mode 100644
index 00000000000..ba8ed1aca6d
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/schema/traceMechanism.exsd
@@ -0,0 +1,109 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.papyrus.infra.services.tracepoints" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+ <appinfo>
+ <meta.schema plugin="org.eclipse.papyrus.infra.services.tracepoints" id="traceMechanism" name="traceMechanism"/>
+ </appinfo>
+ <documentation>
+ Possibility to add implementations of a trace mechanism
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <annotation>
+ <appinfo>
+ <meta.element />
+ </appinfo>
+ </annotation>
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="client"/>
+ </choice>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute translatable="true"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="client">
+ <complexType>
+ <attribute name="traceMechID" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ <appinfo>
+ <meta.attribute kind="java" basedOn=":org.eclipse.papyrus.infra.services.tracepoints.ITraceMechanism"/>
+ </appinfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="since"/>
+ </appinfo>
+ <documentation>
+ [Enter the first release in which this extension point appears.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="examples"/>
+ </appinfo>
+ <documentation>
+ [Enter extension point usage example here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="apiinfo"/>
+ </appinfo>
+ <documentation>
+ [Enter API information here.]
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appinfo>
+ <meta.section type="implementation"/>
+ </appinfo>
+ <documentation>
+ [Enter information about supplied implementation of this extension point.]
+ </documentation>
+ </annotation>
+
+
+</schema>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/Activator.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/Activator.java
new file mode 100644
index 00000000000..9cba95d5b41
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/Activator.java
@@ -0,0 +1,90 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The activator class controls the plug-in life cycle.
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ /** The Constant PLUGIN_ID. */
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.infra.services.tracepoints"; //$NON-NLS-1$
+
+ // The shared instance
+ /** The plugin. */
+ private static Activator plugin;
+
+ /** The log service. */
+ public static LogHelper log;
+
+ /**
+ * The constructor.
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ /**
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ *
+ * @param context
+ * @throws Exception
+ */
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ log = new LogHelper(plugin);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ /**
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ *
+ * @param context
+ * @throws Exception
+ */
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ log = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance.
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/ITraceMechanism.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/ITraceMechanism.java
new file mode 100644
index 00000000000..0bfdb027b35
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/ITraceMechanism.java
@@ -0,0 +1,74 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+
+/**
+ * The trace mechanism itself is not specific for specific implementations such
+ * as instrumenting code generators. Thus, the following interface may be defined
+ * by extensions that provide an implementation of a trace point.
+ * The first operation gets a set of available trace implementations that are supplied
+ * by the extension (in conjunction with other mechanisms).
+ * This interface is used for mechanisms that have a way of implementing trace point
+ *
+ * @author ansgar
+ *
+ */
+public interface ITraceMechanism {
+
+ /**
+ * @param eObj
+ * the element on which tracing is applied. It is passed, since the
+ * list of available trace mechanisms may depend on this object
+ * @return a list of IDs corresponding to available trace mechanisms
+ */
+ EList<String> getTraceMechanismIDs(EObject eObj);
+
+ /**
+ * Provide a description of the trace mechanism
+ *
+ * @param id
+ * the id of the trace mechanism
+ * @return its description
+ */
+ String getTraceMechanismDescription(EObject eObj, String id);
+
+ /**
+ * Apply the tracing. This usually means that an implementation specific
+ * mechanism will add additional information to the EObject, for instance
+ * in form of additional markings or stereotypes (there is no assumption
+ * how this is actually done). The idea is that these markings will be
+ * evaluated during code generation to produce the right result.
+ *
+ * @param id
+ * the ID of a trace mechanism
+ * @param element
+ * the element that should be trace
+ * @param traceOption
+ * an encoded trace option. e.g. that only the called operation
+ * should be trace and not the values of the passed parameters.
+ */
+ boolean applyTraceMechanism(EObject eObj, String id, int traceOption);
+
+ /**
+ * Configure the trace mechanisms for runtime, in particular evaluate activate/inactive
+ * tracepoint settings to obtain a suitable runtime configuration.
+ *
+ * @return
+ */
+ boolean configureTraceMechanisms();
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/MarkerUtils.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/MarkerUtils.java
new file mode 100644
index 00000000000..536728ff1ff
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/MarkerUtils.java
@@ -0,0 +1,84 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+import java.util.MissingResourceException;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.papyrus.infra.core.markers.MarkerConstants;
+
+/**
+ * Utilities for Markers (TODO: some of these are generic marker services (move to infra core markers) and not specific to tracepoints).
+ *
+ * @author ansgar
+ *
+ */
+public class MarkerUtils {
+
+ public static URI getURI(IMarker marker) {
+ String uriOfMarkerStr = marker.getAttribute(MarkerConstants.uri, null);
+ if(uriOfMarkerStr != null) {
+ return URI.createURI(uriOfMarkerStr);
+ }
+ return null;
+ }
+
+ /**
+ * return the EObject of a marker (provided that it is a marker with a URI)
+ *
+ * @param marker
+ * @return the associated EObject
+ */
+ public static EObject getEObjectOfMarker(IMarker marker) {
+ return getEObjectOfMarker(resourceSet, marker);
+ }
+
+ /**
+ * return the EObject of a marker (provided that it is a marker with a URI)
+ *
+ * @param pResourceSet
+ * : the resourceSet into which the model associated with the eObject should
+ * be loaded
+ * @param marker
+ * @return the associated EObject
+ */
+ public static EObject getEObjectOfMarker(ResourceSet pResourceSet, IMarker marker) {
+ URI uriOfMarker = getURI(marker);
+ if(uriOfMarker != null) {
+ try {
+ pResourceSet.getResource(uriOfMarker.trimFragment(), true);
+ return pResourceSet.getEObject(uriOfMarker, true);
+ } catch (MissingResourceException e) {
+ System.err.println("Missing resource");
+ }
+ }
+ return null;
+ }
+
+ public static boolean isActive(IMarker marker) {
+ return marker.getAttribute(TracepointConstants.isActive, false);
+ }
+
+ /**
+ * our own copy of resource set
+ * we do not use the Papyrus resourceSet, since every editor keeps his own copy of the resource set (which is probably
+ * quite bad) and thus no resourceSet would be available, if Papyrus is not open.
+ */
+ public static ResourceSet resourceSet = new ResourceSetImpl();
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceActions.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceActions.java
new file mode 100644
index 00000000000..6eaf7a25518
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceActions.java
@@ -0,0 +1,206 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.infra.services.tracepoints.preferences.TPPreferenceConstants;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.State;
+
+/**
+ * Set of enumerations that indicates what we want to trace.
+ *
+ * @author ansgar
+ *
+ */
+public class TraceActions {
+
+ public enum TraceScope {
+ clazz,
+ operation,
+ state,
+ activity,
+ };
+
+ /**
+ * Options for tracing a class. Note that some options need additional information, e.g. "all operations"
+ * needs additional information how operations are traced
+ */
+ public enum TAClass {
+ Creation,
+ Destruction,
+ AllOperations,
+ AllPorts,
+ AllStates
+ // +(?) all properties/all operations
+ // +(all ports?)
+ // +all state changes? (hierarchical propagation?)
+
+ };
+
+ /**
+ * Different ways to trace operations: put only the call itself or the values of the parameters into
+ * a trace event.
+ */
+ public enum TAOperation {
+ OnlyCall,
+ ParameterValues, // here exclusive (parameter values and OnlyCall may not be selected at the same time)
+ };
+
+ /**
+ * Not used for the moment
+ */
+ public enum TAAttribute {
+ PropertyRead,
+ PropertyWrite; // write old and new value
+ };
+
+ /**
+ * Options to trace state
+ */
+ public enum TAState {
+ StateEnter, // add incoming transition to trace?
+ StateLeave, // add outgoing transition to trace?
+ Transition // nothing (?) (triggers are known? - no, could be one out of many triggers)
+ };
+
+ /**
+ * Not used for the moment
+ */
+ public enum TAActivity {
+ activity // (i.e. call operation action) explicit choice of (named attribute?)
+ };
+
+ public static String[][] getStringFields(Enum<?>[] enumValues) {
+ int i = 0;
+ String[][] taOptions = new String[enumValues.length][2];
+ for(Enum<?> tLiteral : enumValues) {
+ taOptions[i][1] = tLiteral.name();
+ taOptions[i][0] = tLiteral.name();
+ i++;
+ }
+ return taOptions;
+ }
+
+ public enum TraceFeature {
+ Class,
+ Port,
+ State,
+ Operation
+ };
+
+ /**
+ * Obtain the definition of a trace option in case of traces on classes
+ *
+ * @param traceAction
+ * @param subFeature
+ * the trace feature which we want to obtain, i.e. class, state or operation
+ * from a composite action string in case of class trace points
+ * @return
+ */
+ public static String getOptions(String traceAction, TraceFeature subFeature) {
+ String prefix = getStringPrefix(subFeature);
+ int pos = traceAction.indexOf(prefix);
+ if(pos == -1)
+ return null;
+ else {
+ // comma is used as separation character.
+ pos += prefix.length();
+ int endPos = traceAction.indexOf(',', pos);
+ if(endPos == -1) {
+ return traceAction.substring(pos);
+ }
+ return traceAction.substring(pos, endPos);
+ }
+ }
+
+ /**
+ * Get the prefix that is used in each case of a class action to distinguish class, state and operation actions.
+ *
+ * @param feature
+ * The trace feature for which we set an action
+ * @return
+ */
+ public static String getStringPrefix(TraceFeature feature) {
+ if(feature == TraceFeature.Class) {
+ return "C:";
+ }
+ if(feature == TraceFeature.Port) {
+ return "P:";
+ }
+ else if(feature == TraceFeature.State) {
+ return "S:";
+ }
+ else if(feature == TraceFeature.Operation) {
+ return "O:";
+ }
+ return null;
+ }
+
+ /**
+ * Initialize an action string that will be stored in the trace marker from the configured actions
+ * in the preferences. In case of a class, the value is a combination of different options
+ * that are prefixed to enable a unique classification
+ *
+ * @param feature
+ * The trace feature for which we set an action
+ * @return
+ */
+ public static String actionFromPreferences(TraceFeature feature) {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ if(feature == TraceFeature.Class) {
+ return compositeClassOption(store.getInt(TPPreferenceConstants.P_TRACE_OPTION_CLASS),
+ store.getInt(TPPreferenceConstants.P_TRACE_OPTION_STATE),
+ store.getInt(TPPreferenceConstants.P_TRACE_OPTION_OP));
+ }
+ else if(feature == TraceFeature.State) {
+ return store.getString(TPPreferenceConstants.P_TRACE_OPTION_STATE);
+ }
+ else if(feature == TraceFeature.Operation) {
+ return store.getString(TPPreferenceConstants.P_TRACE_OPTION_OP);
+ }
+ return "";
+ }
+
+ public static String compositeClassOption(int classOption, int stateOption, int operationOption) {
+ return getStringPrefix(TraceFeature.Class) + classOption + "," +
+ getStringPrefix(TraceFeature.State) + stateOption + "," +
+ getStringPrefix(TraceFeature.Operation) + operationOption;
+ }
+
+ /**
+ * Convenience function, return the action defined in the preferences in function of the model element
+ *
+ * @param element
+ * @return
+ */
+ public static String actionFromPreferences(EObject element) {
+ return actionFromPreferences(getTraceFeature(element));
+ }
+
+
+ public static TraceFeature getTraceFeature(EObject element) {
+ if(element instanceof State) {
+ return TraceFeature.State;
+ }
+ else if(element instanceof Operation) {
+ return TraceFeature.Operation;
+ }
+ else if(element instanceof org.eclipse.uml2.uml.Class) {
+ return TraceFeature.Class;
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceFunctions.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceFunctions.java
new file mode 100644
index 00000000000..e18394590f3
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceFunctions.java
@@ -0,0 +1,112 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.papyrus.infra.services.decoration.IDecorationSpecificFunctions;
+import org.eclipse.papyrus.infra.services.decoration.util.Decoration.PreferedPosition;
+import org.eclipse.papyrus.infra.services.decoration.util.IPapyrusDecoration;
+
+
+public class TraceFunctions implements IDecorationSpecificFunctions {
+
+ public static final String activeBreakpoint16 = "icons/etool16/brkp_16x16.gif";
+
+ public static final String inActiveBreakpoint16 = "icons/etool16/brkpd_16x16.gif";
+
+ public static final String activeTracepoint16 = "icons/etool16/trcp_16x16.gif";
+
+ public static final String inActiveTracepoint16 = "icons/etool16/trcpd_16x16.gif";
+
+ public static final String activeBreakpoint9 = "icons/etool16/brkp_9x9.gif";
+
+ public static final String inActiveBreakpoint9 = "icons/etool16/brkpd_9x9.gif";
+
+ public static final String activeTracepoint11 = "icons/etool16/trcp_11x12.gif";
+
+ public static final String inActiveTracepoint11 = "icons/etool16/trcp_11x12.gif";
+
+ /**
+ * Return the image descriptor associated with a trace or breakpoint marker
+ */
+ public ImageDescriptor getImageDescriptorForGE(IMarker marker) {
+
+
+ org.eclipse.papyrus.infra.widgets.Activator widgetsActivator =
+ org.eclipse.papyrus.infra.widgets.Activator.getDefault();
+ ImageDescriptor overlay = null;
+ boolean isActive = marker.getAttribute(TracepointConstants.isActive, false);
+ boolean isTracepoint = marker.getAttribute(TracepointConstants.isTracepoint, false);
+ if(isTracepoint) {
+ overlay = isActive ?
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, activeTracepoint16) :
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, inActiveTracepoint16);
+ }
+ else {
+ overlay = isActive ?
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, activeBreakpoint16) :
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, inActiveBreakpoint16);
+ }
+
+ return overlay;
+ }
+
+ /**
+ * Return the image descriptor associated with a trace or breakpoint marker
+ */
+ public ImageDescriptor getImageDescriptorForME(IMarker marker) {
+ org.eclipse.papyrus.infra.widgets.Activator widgetsActivator =
+ org.eclipse.papyrus.infra.widgets.Activator.getDefault();
+ ImageDescriptor overlay = null;
+ boolean isActive = marker.getAttribute(TracepointConstants.isActive, false);
+ boolean isTracepoint = marker.getAttribute(TracepointConstants.isTracepoint, false);
+ if(isTracepoint) {
+ overlay = isActive ?
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, activeTracepoint11) :
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, inActiveTracepoint11);
+ }
+ else {
+ overlay = isActive ?
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, activeBreakpoint9) :
+ widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, inActiveBreakpoint9);
+ }
+
+ return overlay;
+ }
+
+ public PreferedPosition getPreferedPosition(IMarker marker) {
+ return PreferedPosition.SOUTH_EAST;
+ }
+
+ public String getMessage(IMarker marker) {
+ boolean isActive = marker.getAttribute(TracepointConstants.isActive, false);
+ boolean isTracepoint = marker.getAttribute(TracepointConstants.isTracepoint, false);
+ return (isActive ? "active" : "inactive") + " " +
+ (isTracepoint ? "trace point" : "break point");
+ }
+
+ public int getPriority(IMarker marker) {
+ return 0; // all markers have same priority (and we should not have multiple markers on the same model element).
+ }
+
+ public IPapyrusDecoration markerPropagation(EList<IPapyrusDecoration> childDecorations) {
+ return null;
+ }
+
+ public MarkChildren supportsMarkerPropagation() {
+ return MarkChildren.NO;
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceMechanism.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceMechanism.java
new file mode 100644
index 00000000000..3edea4d3717
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceMechanism.java
@@ -0,0 +1,88 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TraceFeature;
+import org.eclipse.papyrus.infra.services.tracepoints.preferences.TPPreferenceConstants;
+
+
+/**
+ * Support for multiple trace mechanisms via the Eclipse extension mechanism
+ */
+
+public class TraceMechanism {
+
+ public static final String ITRACE_MECHANISM_ID = Activator.PLUGIN_ID + ".traceMechanism";
+
+ public static EList<ITraceMechanism> getTraceMechanisms()
+ {
+ EList<ITraceMechanism> mechanisms = new BasicEList<ITraceMechanism>();
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor(ITRACE_MECHANISM_ID);
+ for(IConfigurationElement configElement : configElements) {
+ try {
+ // TODO: cache returned instance (avoid creating a new instance each time => more efficient, no need for static attributes)
+ final Object obj = configElement.createExecutableExtension("class");
+ if(obj instanceof ITraceMechanism) {
+ mechanisms.add((ITraceMechanism)obj);
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ return mechanisms;
+ }
+
+ /**
+ * get the ID of the default realization mechanism. In case of classes, need to store multiple mechanisms (how to trace states, how to trace
+ * operations)
+ *
+ * @return
+ */
+ public static String getMechanismFromPreferences(TraceFeature feature) {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ if(store != null) {
+ if(feature == TraceFeature.Class) {
+ return TraceActions.getStringPrefix(TraceFeature.Port) + store.getInt(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_PORT) + "," +
+ TraceActions.getStringPrefix(TraceFeature.State) + store.getInt(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_SM) + "," +
+ TraceActions.getStringPrefix(TraceFeature.Operation) + store.getInt(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_OP);
+ }
+ else if(feature == TraceFeature.State) {
+ return store.getString(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_SM);
+ }
+ else if(feature == TraceFeature.Operation) {
+ return store.getString(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_OP);
+ }
+ }
+ return "";
+ }
+
+ /**
+ * Convenience function. Return defaultTraceMechanisms in function of the element being traced.
+ *
+ * @param element
+ * @return
+ */
+ public static String getDefaultMechanism(EObject element) {
+ return getMechanismFromPreferences(TraceActions.getTraceFeature(element));
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceState.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceState.java
new file mode 100644
index 00000000000..275d277cd68
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TraceState.java
@@ -0,0 +1,20 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+
+public class TraceState {
+
+ public static boolean skipAllTracepoints = false;
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TracepointConstants.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TracepointConstants.java
new file mode 100644
index 00000000000..f4d617c6e7c
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/TracepointConstants.java
@@ -0,0 +1,32 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints;
+
+
+
+public class TracepointConstants {
+
+ /**
+ * The id of the marker used for tracepoints and breakpoints
+ */
+ public static final String tpOrbpMarker = "org.eclipse.papyrus.tporbpmarker";
+
+ public static final String isActive = "isActive";
+
+ public static final String isTracepoint = "isTracepoint";
+
+ public static final String traceAction = "traceAction";
+
+ public static final String traceMechanism = "traceMechanism";
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/AbstractTracepointCommand.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/AbstractTracepointCommand.java
new file mode 100644
index 00000000000..1aaf94e276c
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/AbstractTracepointCommand.java
@@ -0,0 +1,168 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermarcher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints.commands;
+
+import java.util.Collections;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.infra.core.markers.MarkerConstants;
+import org.eclipse.papyrus.infra.services.tracepoints.Activator;
+import org.eclipse.papyrus.infra.services.tracepoints.ITraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.TracepointConstants;
+import org.eclipse.papyrus.infra.services.tracepoints.preferences.TPPreferenceConstants;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.State;
+
+/**
+ * Action used for pasting either a model element or a shape (i.e. the model element represented
+ * by the shape). Delegates to PasteShapeOrElementCommand
+ *
+ * @author Ansgar Radermacher (CEA LIST)
+ */
+abstract public class AbstractTracepointCommand extends AbstractTransactionalCommand {
+
+ protected TransactionalEditingDomain domain;
+
+ protected EObject selectedElement;
+
+ /**
+ * Creates a new ImportLibraryFromRepositoryCommand
+ *
+ * @param editingDomain
+ * editing domain that manages the changed objects
+ * @param runnable
+ * process that executes the modifications
+ * @param label
+ * the label of the command
+ * @param description
+ * description of the command
+ */
+
+ public AbstractTracepointCommand(String label, TransactionalEditingDomain domain, EObject selectedElement) {
+ super(domain, label, Collections.EMPTY_LIST);
+ this.domain = domain;
+ this.selectedElement = selectedElement;
+ }
+
+ protected void updateResourceAndURI() {
+ resource = selectedElement.eResource();
+ uri = resource.getURI() + "#" + resource.getURIFragment(selectedElement);
+ iresource = WorkspaceSynchronizer.getFile(selectedElement.eResource());
+ }
+
+ protected IMarker findMarker(String type) {
+
+ if(iresource != null) {
+ try {
+ for(IMarker marker : iresource.findMarkers(type, false, IResource.DEPTH_INFINITE)) {
+ String markerURI = marker.getAttribute(MarkerConstants.uri, "");
+ if((markerURI != null) && markerURI.equals(uri)) {
+ return marker;
+ }
+ }
+ } catch (CoreException ce) {
+ }
+ }
+ return null;
+ }
+
+ protected IMarker toggleMarker() {
+ try {
+ if(iresource != null) {
+ IMarker marker = findMarker(TracepointConstants.tpOrbpMarker);
+ if(marker == null) { // marker does not exist => create
+ marker = iresource.createMarker(TracepointConstants.tpOrbpMarker);
+ marker.setAttribute(MarkerConstants.uri, uri);
+ marker.setAttribute(TracepointConstants.isActive, true);
+ return marker;
+ }
+ else {
+ // marker exists => delete
+ marker.delete();
+ }
+ }
+ } catch (CoreException ce) {
+ }
+ return null;
+ }
+
+ protected void toggleMarkerActivation() {
+ try {
+ if(iresource != null) {
+ IMarker marker = findMarker(TracepointConstants.tpOrbpMarker);
+ if(marker == null) { // marker does not exist => create
+ marker = iresource.createMarker(TracepointConstants.tpOrbpMarker);
+ marker.setAttribute(MarkerConstants.uri, uri);
+ marker.setAttribute(TracepointConstants.isActive, true);
+
+ // apply trace mechanism according to default in preferences
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ String id = null;
+ if(selectedElement instanceof Operation) {
+ id = store.getDefaultString(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_OP);
+ }
+ else if(selectedElement instanceof Port) {
+ id = store.getDefaultString(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_OP);
+ }
+ else if(selectedElement instanceof State) {
+ id = store.getDefaultString(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_SM);
+ }
+ if(id != null) {
+ EList<ITraceMechanism> mechanisms = TraceMechanism.getTraceMechanisms();
+ for(ITraceMechanism mechanism : mechanisms) {
+ for(String providedID : mechanism.getTraceMechanismIDs(selectedElement)) {
+ if(id.equals(providedID)) {
+ mechanism.applyTraceMechanism(selectedElement, id, 0);
+ }
+ }
+ }
+ }
+ }
+ else {
+ // marker exists => change activation status
+ boolean isSet = marker.getAttribute(TracepointConstants.isActive, false);
+ marker.setAttribute(TracepointConstants.isActive, !isSet);
+ }
+ }
+ } catch (CoreException ce) {
+ System.err.println(ce);
+ }
+
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean canExecute() {
+ return (selectedElement != null);
+ }
+
+ protected Resource resource;
+
+ protected IResource iresource;
+
+ protected String uri;
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointActivationCommand.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointActivationCommand.java
new file mode 100644
index 00000000000..aac91107a20
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointActivationCommand.java
@@ -0,0 +1,40 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+
+
+public class ToggleBreakpointActivationCommand extends AbstractTracepointCommand {
+
+ public ToggleBreakpointActivationCommand(EObject selectedElement) {
+ super("Toggle Breakpoint activation", TransactionUtil.getEditingDomain(selectedElement), selectedElement);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ updateResourceAndURI();
+ toggleMarkerActivation();
+ return null;
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointCommand.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointCommand.java
new file mode 100644
index 00000000000..2a3dcc3d415
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleBreakpointCommand.java
@@ -0,0 +1,41 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+
+
+public class ToggleBreakpointCommand extends AbstractTracepointCommand {
+
+ public ToggleBreakpointCommand(EObject selectedElement) {
+ super("Toggle Breakpoint", TransactionUtil.getEditingDomain(selectedElement), selectedElement);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
+ {
+ updateResourceAndURI();
+ toggleMarker();
+ return null;
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointActivationCommand.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointActivationCommand.java
new file mode 100644
index 00000000000..0b636e0b2cc
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointActivationCommand.java
@@ -0,0 +1,41 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+
+
+public class ToggleTracepointActivationCommand extends AbstractTracepointCommand {
+
+ public ToggleTracepointActivationCommand(EObject selectedElement) {
+ super("Toggle tracepoint activation", TransactionUtil.getEditingDomain(selectedElement), selectedElement);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+
+ updateResourceAndURI();
+ toggleMarkerActivation();
+ return null;
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointCommand.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointCommand.java
new file mode 100644
index 00000000000..143ab6d7a50
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/ToggleTracepointCommand.java
@@ -0,0 +1,52 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.TracepointConstants;
+
+
+public class ToggleTracepointCommand extends AbstractTracepointCommand {
+
+ public ToggleTracepointCommand(EObject selectedElement) {
+ super("Toggle tracepoint", TransactionUtil.getEditingDomain(selectedElement), selectedElement);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ updateResourceAndURI();
+ try {
+ IMarker marker = toggleMarker();
+ marker.setAttribute(TracepointConstants.isTracepoint, true);
+ // set default options from preferences
+ marker.setAttribute(TracepointConstants.traceAction, TraceActions.actionFromPreferences(selectedElement));
+ marker.setAttribute(TracepointConstants.traceMechanism, TraceMechanism.getDefaultMechanism(selectedElement));
+ } catch (CoreException e) {
+
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/TracepointPropertiesCommand.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/TracepointPropertiesCommand.java
new file mode 100644
index 00000000000..c082c2a4c30
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/commands/TracepointPropertiesCommand.java
@@ -0,0 +1,81 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.commands;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.util.TransactionUtil;
+import org.eclipse.gmf.runtime.common.core.command.CommandResult;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.papyrus.infra.services.tracepoints.TracepointConstants;
+import org.eclipse.papyrus.infra.services.tracepoints.dialogs.TraceActionSelection;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.uml2.uml.Element;
+
+
+public class TracepointPropertiesCommand extends AbstractTracepointCommand {
+
+ public TracepointPropertiesCommand(EObject selectedElement) {
+ super("Tracepoint properties", TransactionUtil.getEditingDomain(selectedElement), selectedElement);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
+ {
+ updateResourceAndURI();
+ selectTraceActions();
+ return null;
+ }
+
+ protected void selectTraceActions() {
+ IMarker marker = findMarker(TracepointConstants.tpOrbpMarker);
+ if(marker != null) {
+ // should normally always hold, since this is checked in canExecute
+ TraceActionSelection tad = new TraceActionSelection(new Shell(), marker, (Element)selectedElement);
+ tad.open();
+ if(tad.getReturnCode() == IDialogConstants.OK_ID) {
+ Object[] result = tad.getResult();
+ String traceAction = (String)result[0];
+ String traceMechanism = (String)result[1];
+ try {
+ marker.setAttribute(TracepointConstants.traceAction, traceAction);
+ marker.setAttribute(TracepointConstants.traceMechanism, traceMechanism);
+ } catch (CoreException e) {
+ }
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean canExecute() {
+ if(selectedElement != null) {
+ updateResourceAndURI();
+ IMarker marker = findMarker(TracepointConstants.tpOrbpMarker);
+ System.err.println("Hallo: " + marker);
+ return marker.getAttribute(TracepointConstants.isTracepoint, false);
+ }
+ return false;
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/dialogs/TraceActionSelection.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/dialogs/TraceActionSelection.java
new file mode 100644
index 00000000000..b1258f9f19e
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/dialogs/TraceActionSelection.java
@@ -0,0 +1,293 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.dialogs;
+
+import java.util.Arrays;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.papyrus.infra.services.tracepoints.ITraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TAClass;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TAOperation;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TAState;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TraceFeature;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.TracepointConstants;
+import org.eclipse.papyrus.infra.services.tracepoints.preferences.BinaryEncodedMChoiceFieldEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.dialogs.SelectionStatusDialog;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.State;
+
+public class TraceActionSelection extends SelectionStatusDialog {
+
+ protected CheckboxTableViewer fTraceImplementations;
+
+ protected Text fDescription;
+
+ IMarker m_marker;
+
+ BinaryEncodedMChoiceFieldEditor classOptions;
+
+ BinaryEncodedMChoiceFieldEditor operationOptions;
+
+ BinaryEncodedMChoiceFieldEditor stateOptions;
+
+ /**
+ * The model element that has a trace marker
+ */
+ private Element m_me;
+
+ public TraceActionSelection(Shell parent, IMarker marker, Element me) {
+ super(parent);
+ m_me = me;
+ m_marker = marker;
+ // int traceAction = marker.getAttribute(TracepointConstants.traceAction, 0);
+ }
+
+
+ /**
+ * @see SelectionStatusDialog#computeResult()
+ * need to return two values: trace action & mechanism
+ */
+ protected void computeResult() {
+ // nothing to do
+ String traceActionValue = null;
+ if(m_me instanceof State) {
+ traceActionValue = stateOptions.getResult();
+ }
+ else if(m_me instanceof Class) {
+ traceActionValue = TraceActions.compositeClassOption(
+ classOptions.getIntResult(),
+ stateOptions.getIntResult(),
+ operationOptions.getIntResult());
+ }
+ else if(m_me instanceof State) {
+ traceActionValue = stateOptions.getResult();
+ }
+ else if(m_me instanceof Operation) {
+ traceActionValue = operationOptions.getResult();
+ }
+ String traceMechanism = "";
+ for(Object tableElement : fTraceImplementations.getCheckedElements()) {
+ traceMechanism = (String)tableElement;
+ };
+
+ Object[] result = new Object[]{
+ traceActionValue,
+ traceMechanism
+ };
+ setResult(Arrays.asList(result));
+ }
+
+ class EnumLabelProvider extends LabelProvider implements ITableLabelProvider {
+
+ public String getColumnText(Object obj, int index) {
+ if(obj instanceof Enum) {
+ return ((Enum<?>)obj).name();
+ }
+ return obj.toString();
+ }
+
+ public Image getColumnImage(Object obj, int index) {
+ return null;
+ }
+ }
+
+ class TraceMechanismsCP implements IStructuredContentProvider {
+
+ public void inputChanged(Viewer v, Object oldInput, Object newInput) {
+ }
+
+ public void dispose() {
+ }
+
+ public Object[] getElements(Object parent) {
+ Object items[] = null;
+ //
+ // Implementations of a tracing mechanism are depending on the injection mechanism and (likely) on the
+ // programming language. Therefore, they are not part of this plugin shipped with Papyrus, but use an
+ // extension mechanism.
+
+ EList<ITraceMechanism> mechanisms = TraceMechanism.getTraceMechanisms();
+ if(mechanisms.size() == 0) {
+ items = new String[]{ "no plugins provide trace extension mechanism" };
+ }
+ else {
+ EList<String> idList = new BasicEList<String>();
+ for(ITraceMechanism mechanism : mechanisms) {
+ for(String id : mechanism.getTraceMechanismIDs(m_me)) {
+ idList.add(id);
+ }
+ }
+ items = idList.toArray(new String[0]);
+ }
+ return items;
+ }
+ }
+
+ public Control createDialogArea(Composite parent) {
+ Composite contents = (Composite)super.createDialogArea(parent);
+
+ Label label = new Label(contents, SWT.NONE);
+ label.setText("Select trace action for this element");
+
+ // need context dependent dialogs on options
+ // we may need more than one options (e.g. AllOperations + OperationsWithParameters + (begin/end or both?))
+ // clean way: accumulate all options, distribute them automatically accordingly. Better (even if less efficient, if strings)
+
+ String[][] taClassOptions = TraceActions.getStringFields(TAClass.values());
+ String[][] taStateOptions = TraceActions.getStringFields(TAState.values());
+ String[][] taOperationOptions = TraceActions.getStringFields(TAOperation.values());
+ String actionString = m_marker.getAttribute(TracepointConstants.traceAction, "");
+ String mechanismID = m_marker.getAttribute(TracepointConstants.traceMechanism, "");
+
+ if(m_me instanceof State) {
+ stateOptions = new BinaryEncodedMChoiceFieldEditor("State options", 3, taStateOptions, contents, true);
+ stateOptions.setupViaString(actionString);
+ }
+ else if(m_me instanceof Class) {
+ classOptions = new BinaryEncodedMChoiceFieldEditor("Class options", 3, taClassOptions, contents, true);
+ stateOptions = new BinaryEncodedMChoiceFieldEditor("State options", 3, taStateOptions, contents, true);
+ operationOptions = new BinaryEncodedMChoiceFieldEditor("Operation options", 3, taOperationOptions, contents, true);
+ classOptions.setupViaString(TraceActions.getOptions(actionString, TraceFeature.Class));
+ stateOptions.setupViaString(TraceActions.getOptions(actionString, TraceFeature.State));
+ operationOptions.setupViaString(TraceActions.getOptions(actionString, TraceFeature.Operation));
+ }
+ else if(m_me instanceof Operation) {
+ operationOptions = new BinaryEncodedMChoiceFieldEditor("Operation options", 3, taOperationOptions, contents, true);
+ operationOptions.setupViaString(actionString);
+ }
+
+ Group implementationGroup = new Group(parent, SWT.NONE);
+ implementationGroup.setText("Implementation options");
+
+ // need additional item how the trace mechanism should be realized, i.e. available tracing mechanisms
+ fTraceImplementations = CheckboxTableViewer.newCheckList(implementationGroup, SWT.H_SCROLL | SWT.V_SCROLL);
+
+ fTraceImplementations.setContentProvider(new TraceMechanismsCP());
+ fTraceImplementations.setInput(this);
+ fTraceImplementations.setChecked(mechanismID, true); // TODO: likely not to work
+
+ fTraceImplementations.addCheckStateListener(new ICheckStateListener() {
+
+ public void checkStateChanged(CheckStateChangedEvent event) {
+ Object element = event.getElement();
+ boolean isChecked = event.getChecked();
+ // assure radio button functionality
+ if(isChecked) {
+ for(Object checkedElement : fTraceImplementations.getCheckedElements()) {
+ if(checkedElement != element) {
+ fTraceImplementations.setChecked(checkedElement, false);
+ }
+ }
+ }
+ }
+ });
+
+ fTraceImplementations.addSelectionChangedListener(new ISelectionChangedListener() {
+
+ public void selectionChanged(SelectionChangedEvent event) {
+ ISelection selection = event.getSelection();
+ if(selection instanceof IStructuredSelection) {
+ Object first = ((IStructuredSelection)selection).getFirstElement();
+ if(first instanceof String) {
+ EList<ITraceMechanism> mechanisms = TraceMechanism.getTraceMechanisms();
+ boolean noDesc = true;
+ for(ITraceMechanism mechanism : mechanisms) {
+ String description = mechanism.getTraceMechanismDescription(m_me, (String)first);
+ if(description != null) {
+ fDescription.setText(description);
+ noDesc = false;
+ break;
+ }
+ }
+ if(noDesc) {
+ fDescription.setText("<not available>");
+ }
+ }
+ }
+ }
+ });
+
+ fDescription = new Text(implementationGroup, SWT.WRAP | SWT.V_SCROLL | SWT.READ_ONLY);
+
+ GridData span = new GridData();
+ span.horizontalAlignment = GridData.FILL;
+ span.grabExcessHorizontalSpace = true;
+ span.grabExcessVerticalSpace = true;
+ span.verticalAlignment = GridData.FILL;
+ span.heightHint = 250;
+
+ // fTraceActions.getTable().setLayoutData(span);
+ implementationGroup.setLayout(new GridLayout());
+ implementationGroup.setLayoutData(span);
+
+ GridData span2 = new GridData();
+ span2.horizontalAlignment = GridData.FILL;
+ span2.grabExcessHorizontalSpace = true;
+ span2.grabExcessVerticalSpace = true;
+ span2.verticalAlignment = GridData.FILL;
+ span2.heightHint = 80;
+ fDescription.setLayoutData(span2);
+ fTraceImplementations.getTable().setLayoutData(span2);
+
+ // ruleGroup.setLayout(new RowLayout (SWT.VERTICAL));
+ parent.setLayout(new GridLayout(1, false));
+ // parent.setLayoutData(groupGridData);
+ return contents;
+ }
+
+ // obtain name and explicit/implicit node Allocation
+ protected void setTextFromData(TreeItem ti) {
+ Object data = ti.getData();
+ if(data instanceof InstanceSpecification) {
+ // ti.setText(new String[]{ name, nodeName, "[" + list + "]" });
+ }
+ }
+
+ protected void refreshTree(TreeItem ti) {
+ setTextFromData(ti);
+ for(TreeItem subItem : ti.getItems()) {
+ refreshTree(subItem);
+ }
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/AbstractCommandHandler.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/AbstractCommandHandler.java
new file mode 100644
index 00000000000..83b15f4686c
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/AbstractCommandHandler.java
@@ -0,0 +1,165 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints.handler;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.utils.BusinessModelResolver;
+import org.eclipse.papyrus.infra.core.utils.ServiceUtilsForActionHandlers;
+import org.eclipse.papyrus.infra.services.tracepoints.Activator;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * <pre>
+ *
+ * This abstract command handler manages:
+ * - current selection in order to build a list of the selected {@link EObject}
+ * - execute the command (returned by children) in Papyrus {@link TransactionalEditingDomain}
+ * - calculate the command enablement and visibility regarding the command executability
+ * (the command is now shown in menu if not executable).
+ *
+ * </pre>
+ */
+public abstract class AbstractCommandHandler extends AbstractHandler {
+
+ /**
+ * <pre>
+ *
+ * Returns the command to execute (to be implemented
+ * in children implementing this class)
+ *
+ * @return the command to execute
+ *
+ * </pre>
+ */
+ protected abstract Command getCommand();
+
+ /**
+ * <pre>
+ * Get the selected element, the first selected element if several are selected or null
+ * if no selection or the selection is not an {@link EObject}.
+ *
+ * @return selected {@link EObject} or null
+ * </pre>
+ *
+ */
+ protected EObject getSelectedElement() {
+ EObject eObject = null;
+ Object selection = null;
+
+ // Get current selection
+ selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection();
+
+ // Get first element if the selection is an IStructuredSelection
+ if(selection instanceof IStructuredSelection) {
+ IStructuredSelection structuredSelection = (IStructuredSelection)selection;
+ selection = structuredSelection.getFirstElement();
+ }
+
+ // Treat non-null selected object (try to adapt and return EObject)
+ if(selection != null) {
+ Object businessObject = BusinessModelResolver.getInstance().getBusinessModel(selection);
+ if(businessObject instanceof EObject) {
+ eObject = (EObject)businessObject;
+ }
+ }
+ return eObject;
+ }
+
+ /**
+ * <pre>
+ * Parse current selection and extract the list of {@link EObject} from
+ * this selection.
+ *
+ * This also tries to adapt selected element into {@link EObject}
+ * (for example to get the {@link EObject} from a selection in the ModelExplorer).
+ *
+ * @return a list of currently selected {@link EObject}
+ * </pre>
+ *
+ */
+ protected List<EObject> getSelectedElements() {
+
+ List<EObject> selectedEObjects = new ArrayList<EObject>();
+
+ // Parse current selection
+ ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection();
+ if(selection instanceof IStructuredSelection) {
+ IStructuredSelection structuredSelection = (IStructuredSelection)selection;
+ for(Object current : structuredSelection.toArray()) {
+ // Adapt current selection to EObject
+ if(current instanceof IAdaptable) {
+ selectedEObjects.add((EObject)((IAdaptable)current).getAdapter(EObject.class));
+ }
+ }
+ } else { // Not a IStructuredSelection
+ if(selection != null) {
+ // Adapt current selection to EObject
+ if(selection instanceof IAdaptable) {
+ selectedEObjects.add((EObject)((IAdaptable)selection).getAdapter(EObject.class));
+ }
+ }
+ }
+
+ return selectedEObjects;
+ }
+
+ /**
+ *
+ * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ *
+ * @param event
+ * @return null
+ * @throws ExecutionException
+ */
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ try {
+ ServiceUtilsForActionHandlers util = new ServiceUtilsForActionHandlers();
+ util.getTransactionalEditingDomain().getCommandStack().execute(getCommand());
+ } catch (ServiceException e) {
+ Activator.log.error("Unexpected error while executing command.", e); //$NON-NLS-1$
+ }
+
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isEnabled() {
+ return getCommand().canExecute();
+ }
+
+ /**
+ *
+ * @return true (visible) when the command can be executed.
+ */
+ public boolean isVisible() {
+ return getCommand().canExecute();
+ }
+
+
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointActivationHandler.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointActivationHandler.java
new file mode 100644
index 00000000000..e2d03274ea0
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointActivationHandler.java
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.handler;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
+import org.eclipse.papyrus.infra.services.tracepoints.commands.ToggleBreakpointActivationCommand;
+
+/**
+ * Handler for toggling breakpoint activation. Delegates to associated command
+ *
+ * @author Ansgar Radermacher (CEA LIST)
+ */
+public class ToggleBreakpointActivationHandler extends AbstractCommandHandler {
+
+ @Override
+ protected Command getCommand() {
+ // not useful to cache command, since selected element may change
+ return new GMFtoEMFCommandWrapper(new ToggleBreakpointActivationCommand(getSelectedElement()));
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointHandler.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointHandler.java
new file mode 100644
index 00000000000..2e840dcb595
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleBreakpointHandler.java
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.handler;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
+import org.eclipse.papyrus.infra.services.tracepoints.commands.ToggleBreakpointCommand;
+
+/**
+ * Handler for toggling a break point. Delegates to associated command
+ *
+ * @author Ansgar Radermacher (CEA LIST)
+ */
+public class ToggleBreakpointHandler extends AbstractCommandHandler {
+
+ @Override
+ protected Command getCommand() {
+ // not useful to cache command, since selected element may change
+ return new GMFtoEMFCommandWrapper(new ToggleBreakpointCommand(getSelectedElement()));
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointActivationHandler.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointActivationHandler.java
new file mode 100644
index 00000000000..cd131c93831
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointActivationHandler.java
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.handler;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
+import org.eclipse.papyrus.infra.services.tracepoints.commands.ToggleTracepointActivationCommand;
+
+/**
+ * Handler for toggling tracepoint activation. Delegates to associated command
+ *
+ * @author Ansgar Radermacher (CEA LIST)
+ */
+public class ToggleTracepointActivationHandler extends AbstractCommandHandler {
+
+ @Override
+ protected Command getCommand() {
+ // not useful to cache command, since selected element may change
+ return new GMFtoEMFCommandWrapper(new ToggleTracepointActivationCommand(getSelectedElement()));
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointHandler.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointHandler.java
new file mode 100644
index 00000000000..8045157a878
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/ToggleTracepointHandler.java
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.handler;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
+import org.eclipse.papyrus.infra.services.tracepoints.commands.ToggleTracepointCommand;
+
+/**
+ * Handler for toggling a tracepoint. Delegates to associated command
+ *
+ * @author Ansgar Radermacher (CEA LIST)
+ */
+public class ToggleTracepointHandler extends AbstractCommandHandler {
+
+ @Override
+ protected Command getCommand() {
+ // not useful to cache command, since selected element may change
+ return new GMFtoEMFCommandWrapper(new ToggleTracepointCommand(getSelectedElement()));
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/TracepointPropertiesHandler.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/TracepointPropertiesHandler.java
new file mode 100644
index 00000000000..c1565dc9bea
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/handler/TracepointPropertiesHandler.java
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.handler;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.papyrus.commands.wrappers.GMFtoEMFCommandWrapper;
+import org.eclipse.papyrus.infra.services.tracepoints.commands.TracepointPropertiesCommand;
+
+/**
+ * Handler for changing the properties of a tracepoint. Delegates to associated command
+ *
+ * @author Ansgar Radermacher (CEA LIST)
+ */
+public class TracepointPropertiesHandler extends AbstractCommandHandler {
+
+ @Override
+ protected Command getCommand() {
+ // not useful to cache command, since selected element may change
+ return new GMFtoEMFCommandWrapper(new TracepointPropertiesCommand(getSelectedElement()));
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/BinaryEncodedMChoiceFieldEditor.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/BinaryEncodedMChoiceFieldEditor.java
new file mode 100644
index 00000000000..b8db97671e8
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/BinaryEncodedMChoiceFieldEditor.java
@@ -0,0 +1,132 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.infra.services.tracepoints.preferences;
+
+import org.eclipse.swt.widgets.Composite;
+
+
+/**
+ * A class derived from the MultipleChoiceFieldEditor.
+ * It encodes a multiple choice value in a binary way, i.e. bit I is set in the result, if the i-th choice is active.
+ * This class can also be used outside a preference page
+ *
+ * @author ansgar
+ *
+ */
+public class BinaryEncodedMChoiceFieldEditor extends MultipleChoiceFieldEditor {
+
+ /**
+ * @param name
+ * The preference ID
+ * @param labeltext
+ * the label text
+ * @param numColumns
+ * the number of columns
+ * @param labelsAndValues
+ * a two dimensional array containing the labels and values
+ * @param parent
+ * the parent SWT composite (field editor parent)
+ * @param useGroup
+ * display contents within a group
+ */
+ public BinaryEncodedMChoiceFieldEditor(String name, String labeltext, int numColumns, String[][] labelsAndValues, Composite parent, boolean useGroup) {
+ super(name, labeltext, numColumns, labelsAndValues, parent, useGroup);
+ }
+
+
+ /**
+ * Convenience constructor, if used outside a preference page
+ *
+ * @param labeltext
+ * the label text
+ * @param numColumns
+ * the number of columns
+ * @param labelsAndValues
+ * a two dimensional array containing the labels and values
+ * @param parent
+ * the parent SWT composite (field editor parent)
+ * @param useGroup
+ * display contents within a group
+ */
+ public BinaryEncodedMChoiceFieldEditor(String labeltext, int numColumns, String[][] labelsAndValues, Composite parent, boolean useGroup) {
+ super("", labeltext, numColumns, labelsAndValues, parent, useGroup);
+ }
+
+ /**
+ * Use this function to initialize the set/non-set flags within the dialog from a binary encoded value,
+ * if you use the dialog outside a preference page
+ *
+ * @param currentValue
+ */
+ public void setupViaString(String currentValue) {
+ setupControls(currentValue);
+ }
+
+ /**
+ * Use this function to get the results,
+ * if you use the dialog outside a preference page
+ *
+ * @return the result
+ */
+ public String getResult() {
+ result = gatherSettings();
+ return result;
+ }
+
+ /**
+ * Convenience function returning an integer result instead of a String result
+ * (requires double conversion that is difficult to avoid, since calculateResults needs to return
+ * a string);
+ *
+ * @return
+ */
+ public int getIntResult() {
+ if(getResult() == null) {
+ return 0;
+ }
+ return Integer.parseInt(getResult());
+ }
+
+ @Override
+ protected String calculateResult(String[][] settings) {
+ int traceActionValue = 0;
+ int index = 0;
+ for(String setting[] : settings) {
+ // [0] = name, [1] = value [2] = checked
+ if(setting[2].equals("true")) {
+ traceActionValue += 1 << index;
+ }
+ index++;
+ };
+ return String.valueOf(traceActionValue);
+ }
+
+ @Override
+ protected boolean isSelected(String fieldName, String valueToSet) {
+ try {
+ int value = new Integer(valueToSet);
+ int index = 0;
+ for(String setting[] : labelsAndValues) {
+ // [0] = name, [1] = value [2] = checked
+ if(setting[0].equals(fieldName)) {
+ return (value & (1 << index)) > 0;
+ }
+ index++;
+ };
+ } catch (NumberFormatException e) {
+ }
+ return false;
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/MultipleChoiceFieldEditor.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/MultipleChoiceFieldEditor.java
new file mode 100644
index 00000000000..0ef922e2b9e
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/MultipleChoiceFieldEditor.java
@@ -0,0 +1,234 @@
+/*******************************************************************************
+ * Copyright (c) 2008 itemis AG (http://www.itemis.eu) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ *******************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints.preferences;
+
+import org.eclipse.jface.preference.FieldEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+
+
+/**
+ * @author Dennis Hübner - Initial contribution and API
+ * [used within Papyrus to avoid dependency to Xtext, minor visibility modification]
+ *
+ */
+public abstract class MultipleChoiceFieldEditor extends FieldEditor {
+
+ private Composite checkBoxBox;
+
+ private final boolean useGroup;
+
+ protected final String[][] labelsAndValues;
+
+ private final int numColumns;
+
+ private Button[] checkBoxButtons;
+
+ protected String result;
+
+ public MultipleChoiceFieldEditor(String name, String labeltext, int numColumns, String[][] labelsAndValues,
+ Composite fieldEditorParent, boolean useGroup) {
+ init(name, labeltext);
+ this.numColumns = numColumns;
+ this.labelsAndValues = labelsAndValues.clone();
+ this.useGroup = useGroup;
+ createControl(fieldEditorParent);
+ }
+
+ /**
+ * @param settings
+ * String[][fieldName,fieldValue,isChecked]
+ * @return value as String
+ */
+ protected abstract String calculateResult(String[][] settings);
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.preference.FieldEditor#adjustForNumColumns(int)
+ */
+ @Override
+ protected void adjustForNumColumns(int numColumns) {
+ Control control = getLabelControl();
+ if(control != null) {
+ ((GridData)control.getLayoutData()).horizontalSpan = numColumns;
+ }
+ ((GridData)checkBoxBox.getLayoutData()).horizontalSpan = numColumns;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.jface.preference.FieldEditor#doFillIntoGrid(org.eclipse.swt
+ * .widgets.Composite, int)
+ */
+ @Override
+ protected void doFillIntoGrid(Composite parent, int numColumns) {
+ if(useGroup) {
+ Control control = getCheckBoxControl(parent);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ control.setLayoutData(gd);
+ }
+ else {
+ Control control = getLabelControl(parent);
+ GridData gd = new GridData();
+ gd.horizontalSpan = numColumns;
+ control.setLayoutData(gd);
+ control = getCheckBoxControl(parent);
+ gd = new GridData();
+ gd.horizontalSpan = numColumns;
+ control.setLayoutData(gd);
+ }
+ }
+
+ private Control getCheckBoxControl(Composite parent) {
+ if(checkBoxBox == null) {
+ Font font = parent.getFont();
+ if(useGroup) {
+ Group group = new Group(parent, SWT.NONE);
+ group.setFont(font);
+ String text = getLabelText();
+ if(text != null) {
+ group.setText(text);
+ }
+ checkBoxBox = group;
+ GridLayout layout = new GridLayout();
+ layout.horizontalSpacing = HORIZONTAL_GAP;
+ layout.numColumns = numColumns;
+ checkBoxBox.setLayout(layout);
+ }
+ else {
+ checkBoxBox = new Composite(parent, SWT.NONE);
+ GridLayout layout = new GridLayout();
+ layout.marginWidth = 0;
+ layout.marginHeight = 0;
+ layout.horizontalSpacing = HORIZONTAL_GAP;
+ layout.numColumns = numColumns;
+ checkBoxBox.setLayout(layout);
+ checkBoxBox.setFont(font);
+ }
+
+ checkBoxButtons = new Button[labelsAndValues.length];
+ for(int i = 0; i < labelsAndValues.length; i++) {
+ Button checkBox = new Button(checkBoxBox, SWT.CHECK | SWT.LEFT);
+ checkBoxButtons[i] = checkBox;
+ String[] labelAndValue = labelsAndValues[i];
+ checkBox.setText(labelAndValue[0]);
+ checkBox.setData(labelAndValue[1]);
+ checkBox.setFont(font);
+ checkBox.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent event) {
+ setPresentsDefaultValue(false);
+ String oldResult = result;
+ result = gatherSettings();
+ fireValueChanged(VALUE, oldResult, result);
+ }
+ });
+ }
+ checkBoxBox.addDisposeListener(new DisposeListener() {
+
+ public void widgetDisposed(DisposeEvent event) {
+ checkBoxBox = null;
+ checkBoxButtons = null;
+ }
+ });
+ }
+ else {
+ checkParent(checkBoxBox, parent);
+ }
+ return checkBoxBox;
+ }
+
+ protected String gatherSettings() {
+ String[][] settings = new String[checkBoxButtons.length][3];
+ for(int i = 0; i < checkBoxButtons.length; i++) {
+ Button currentCheckBox = checkBoxButtons[i];
+ String name = currentCheckBox.getText();
+ String value = (String)currentCheckBox.getData();
+ String checked = String.valueOf(currentCheckBox.getSelection());
+ settings[i] = new String[]{ name, value, checked };
+ }
+ return calculateResult(settings);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.preference.FieldEditor#doLoad()
+ */
+ @Override
+ public void doLoad() {
+ setupControls(getPreferenceStore().getString(getPreferenceName()));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.preference.FieldEditor#doLoadDefault()
+ */
+ @Override
+ protected void doLoadDefault() {
+ setupControls(getPreferenceStore().getDefaultString(getPreferenceName()));
+ }
+
+ protected void setupControls(String valueToSet) {
+ for(int i = 0; i < checkBoxButtons.length; i++) {
+ Button currentCheckBox = checkBoxButtons[i];
+ currentCheckBox.setSelection(isSelected(currentCheckBox.getText(), valueToSet));
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.preference.FieldEditor#doStore()
+ */
+ @Override
+ protected void doStore() {
+ if(result == null) {
+ return;
+ }
+ getPreferenceStore().setValue(getPreferenceName(), result);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jface.preference.FieldEditor#getNumberOfControls()
+ */
+ @Override
+ public int getNumberOfControls() {
+ return 1;
+ }
+
+ @Override
+ public void setEnabled(boolean enabled, Composite parent) {
+ if(!useGroup) {
+ super.setEnabled(enabled, parent);
+ }
+ for(Button button : checkBoxButtons) {
+ button.setEnabled(enabled);
+ }
+ }
+
+ abstract protected boolean isSelected(String fieldName, String valueToSet);
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceConstants.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceConstants.java
new file mode 100644
index 00000000000..2a0845bb849
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceConstants.java
@@ -0,0 +1,51 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints.preferences;
+
+/**
+ * Constant definitions for plug-in preferences
+ */
+public class TPPreferenceConstants {
+
+ /**
+ * The trace mechanism that should be used by default
+ */
+ public static final String P_TRACE_IMPLEMENTATION_PORT = "papyrus.trace.implementation.port";
+
+ /**
+ * The trace mechanism that should be used by default
+ */
+ public static final String P_TRACE_IMPLEMENTATION_OP = "papyrus.trace.implementation.op";
+
+ /**
+ * The trace mechanism that should be used by default
+ */
+ public static final String P_TRACE_IMPLEMENTATION_SM = "papyrus.trace.implementation.sm";
+
+
+ /**
+ * Options for trace implementation via state machines
+ */
+ public static final String P_TRACE_OPTION_CLASS = "papyrus.trace.option.class";
+
+ /**
+ * Options for trace implementation for operations
+ */
+ public static final String P_TRACE_OPTION_STATE = "papyrus.trace.option.state";
+
+ /**
+ * Options for trace implementation via state machines
+ */
+ public static final String P_TRACE_OPTION_OP = "papyrus.trace.option.op";
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceInitializer.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceInitializer.java
new file mode 100644
index 00000000000..096d661169d
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferenceInitializer.java
@@ -0,0 +1,53 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.infra.services.tracepoints.Activator;
+import org.eclipse.papyrus.infra.services.tracepoints.ITraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceMechanism;
+
+/**
+ * Class used to initialize default preference values.
+ */
+public class TPPreferenceInitializer extends AbstractPreferenceInitializer {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+ */
+ public void initializeDefaultPreferences() {
+ IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+ EList<ITraceMechanism> mechanisms = TraceMechanism.getTraceMechanisms();
+ String mechanismID = "";
+ if(mechanisms.size() > 0) {
+ ITraceMechanism mechanism = mechanisms.get(0);
+ // TODO: function need to support null object
+ EList<String> mechanismIDs = mechanism.getTraceMechanismIDs(null);
+ if(mechanismIDs.size() > 0) {
+ mechanismID = mechanismIDs.get(0);
+ }
+ }
+ store.setDefault(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_PORT, mechanismID);
+ store.setDefault(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_OP, mechanismID);
+ store.setDefault(TPPreferenceConstants.P_TRACE_IMPLEMENTATION_SM, mechanismID);
+
+ store.setDefault(TPPreferenceConstants.P_TRACE_OPTION_CLASS, 3);
+ store.setDefault(TPPreferenceConstants.P_TRACE_OPTION_STATE, 0);
+ store.setDefault(TPPreferenceConstants.P_TRACE_OPTION_OP, 0);
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferencePage.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferencePage.java
new file mode 100644
index 00000000000..773c30a6ee1
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.infra.services.tracepoints/src/org/eclipse/papyrus/infra/services/tracepoints/preferences/TPPreferencePage.java
@@ -0,0 +1,106 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.services.tracepoints.preferences;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.preference.ComboFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.RadioGroupFieldEditor;
+import org.eclipse.papyrus.infra.services.tracepoints.Activator;
+import org.eclipse.papyrus.infra.services.tracepoints.ITraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TAClass;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TAOperation;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TAState;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceMechanism;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * This class represents the TracePoint preference page
+ * <p>
+ * This page is used to modify preferences only. They are stored in the preference store that belongs to the main plug-in class. That way, preferences
+ * can be accessed directly via the preference store.
+ */
+
+public class TPPreferencePage
+ extends FieldEditorPreferencePage
+ implements IWorkbenchPreferencePage {
+
+ public TPPreferencePage() {
+ super(GRID);
+ setPreferenceStore(Activator.getDefault().getPreferenceStore());
+ setDescription("Trace options");
+ }
+
+ /**
+ * Creates the field editors. Field editors are abstractions of
+ * the common GUI blocks needed to manipulate various types
+ * of preferences. Each field editor knows how to save and
+ * restore itself.
+ */
+ public void createFieldEditors() {
+ EList<ITraceMechanism> mechanisms = TraceMechanism.getTraceMechanisms();
+ int elements = 0;
+ for(ITraceMechanism mechanism : mechanisms) {
+ // TODO: function need to support null object
+ EList<String> mechanismIDs = mechanism.getTraceMechanismIDs(null);
+ elements += mechanismIDs.size();
+ }
+ String[][] mechList = new String[elements][2];
+ elements = 0;
+ for(ITraceMechanism mechanism : mechanisms) {
+ // TODO: function need to support null object
+ EList<String> mechanismIDs = mechanism.getTraceMechanismIDs(null);
+ for(String id : mechanismIDs) {
+ mechList[elements][1] = id;
+ mechList[elements][0] = mechanism.getTraceMechanismDescription(null, id);
+ elements++;
+ }
+ }
+
+ String[][] taClassOptions = TraceActions.getStringFields(TAClass.values());
+ String[][] taStateOptions = TraceActions.getStringFields(TAState.values());
+ String[][] taOperationOptions = TraceActions.getStringFields(TAOperation.values());
+
+ addField(new BinaryEncodedMChoiceFieldEditor(TPPreferenceConstants.P_TRACE_OPTION_CLASS, "Class options", 3, taClassOptions, getFieldEditorParent(), true));
+
+ addField(new BinaryEncodedMChoiceFieldEditor(TPPreferenceConstants.P_TRACE_OPTION_STATE, "State options", 3, taStateOptions, getFieldEditorParent(), true));
+
+ addField(new RadioGroupFieldEditor(
+ TPPreferenceConstants.P_TRACE_OPTION_OP,
+ "Operations options", 3, taOperationOptions, getFieldEditorParent(), true));
+
+ addField(new ComboFieldEditor(
+ TPPreferenceConstants.P_TRACE_IMPLEMENTATION_PORT,
+ "Trace Mechanism for ports", mechList, getFieldEditorParent()));
+
+ addField(new ComboFieldEditor(
+ TPPreferenceConstants.P_TRACE_IMPLEMENTATION_OP,
+ "Trace Mechanism for operations (+construction/destruction)", mechList, getFieldEditorParent()));
+
+ addField(new ComboFieldEditor(
+ TPPreferenceConstants.P_TRACE_IMPLEMENTATION_SM,
+ "Trace Mechanism for state machines", mechList, getFieldEditorParent()));
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+ */
+ public void init(IWorkbench workbench) {
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.classpath b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.classpath
new file mode 100644
index 00000000000..64c5e31b7a2
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.project b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.project
new file mode 100644
index 00000000000..7de3375ec19
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.qompass.modellibs.tracing</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.acceleo.ide.ui.acceleoBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.acceleo.ide.ui.acceleoNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/META-INF/MANIFEST.MF b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..796cbadf16f
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.qompass.modellibs.tracing;singleton:=true
+Bundle-Version: 0.9.2.qualifier
+Bundle-Activator: org.eclipse.papyrus.qompass.modellibs.tracing.Activator
+Bundle-Vendor: %providerName
+Require-Bundle: org.eclipse.papyrus.fcm.profile;bundle-version="0.9.2",
+ org.eclipse.papyrus.qompass.modellibs.core;bundle-version="0.9.2",
+ org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.qompass.designer.core;bundle-version="0.9.2",
+ org.eclipse.papyrus.infra.services.tracepoints;bundle-version="0.9.2",
+ org.eclipse.papyrus.infra.core;bundle-version="0.9.2",
+ org.eclipse.emf.workspace;bundle-version="1.5.0",
+ org.eclipse.uml2.uml;bundle-version="4.0.0"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+Bundle-Localization: plugin
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/about.html b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.acceleo b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.acceleo
new file mode 100644
index 00000000000..67c8b63b209
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.acceleo
@@ -0,0 +1,26 @@
+<!-- ===================================================================== -->
+<!-- Custom targets. -->
+<!-- Set customBuildCallbacks = build.acceleo in your build.properties. -->
+<!-- ===================================================================== -->
+<project name="Build Acceleo Module" default="noDefault">
+ <!-- ================================================================= -->
+ <!-- Default target -->
+ <!-- ================================================================= -->
+ <target name="noDefault">
+ <echo message="This file must be called with explicit targets" />
+ </target>
+
+ <!-- ================================================================= -->
+ <!-- This will be called automatically after the compilation of each -->
+ <!-- Bundle... in dependency order. -->
+ <!-- ================================================================= -->
+ <target name="post.compile.@dot">
+ <acceleoCompiler
+ sourceFolder="${target.folder}"
+ outputFolder="${target.folder}"
+ dependencies="${target.folder}/../../org.eclipse.papyrus.fcm.profile;${target.folder}/../../org.eclipse.uml2.uml;${target.folder}/../../org.eclipse.papyrus.qompass.modellibs.core;${target.folder}/../../org.eclipse.papyrus.qompass.designer.core;${target.folder}/../../org.eclipse.papyrus.qompass.designer.vsl;${target.folder}/../../org.eclipse.papyrus.marte.vsl;${target.folder}/../../org.eclipse.papyrus.cpp.profile;${target.folder}/../../org.eclipse.papyrus.infra.services.tracepoints;"
+ binaryResource="false"
+ packagesToRegister="">
+ </acceleoCompiler>
+ </target>
+</project>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.properties b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.properties
new file mode 100644
index 00000000000..2ff04c5cff9
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/build.properties
@@ -0,0 +1,13 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ models/,\
+ build.properties,\
+ help/,\
+ html/,\
+ about.html,\
+ plugin.properties
+customBuildCallbacks = build.acceleo
+src.includes = about.html
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/help/tocconcepts.xml b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/help/tocconcepts.xml
new file mode 100644
index 00000000000..0344ca208f3
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/help/tocconcepts.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?NLS TYPE="org.eclipse.help.toc"?>
+
+<toc label="Concepts" link_to="../org.eclipse.papyrus.qompass.designer.doc/toc.xml#modellibs">
+ <topic label="Qompass trace support" href="html/userguide.htm">
+ </topic>
+</toc>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image001.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image001.gif
new file mode 100755
index 00000000000..5271b605b82
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image001.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image002.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image002.gif
new file mode 100755
index 00000000000..d82c319e550
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image002.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image003.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image003.gif
new file mode 100755
index 00000000000..fae2ca8952f
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image003.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image004.jpg b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image004.jpg
new file mode 100755
index 00000000000..864120f480a
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image004.jpg
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image005.jpg b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image005.jpg
new file mode 100755
index 00000000000..9c9d1935d00
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image005.jpg
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image006.jpg b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image006.jpg
new file mode 100755
index 00000000000..d732917a0fc
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image006.jpg
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image007.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image007.gif
new file mode 100755
index 00000000000..2a26c4ddaa7
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image007.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image008.jpg b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image008.jpg
new file mode 100755
index 00000000000..a332638c7e5
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image008.jpg
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image009.jpg b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image009.jpg
new file mode 100755
index 00000000000..bb1eed8a3b3
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/images/image009.jpg
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/userguide.htm b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/userguide.htm
new file mode 100644
index 00000000000..b2f52da6ea1
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/html/userguide.htm
@@ -0,0 +1,213 @@
+<html>
+<head>
+<title>Model-Based Tracing of UML models in Papyrus</title>
+</head>
+<body>
+<h1>Model-Based Tracing of UML models in Papyrus</h1>
+<p></p>
+<div class=WordSection3>
+<h1>1. Introduction</h1>
+<p>
+The Papyrus Trace Framework allows
+annotating UML model elements with a trace annotation. Different kind of model
+elements can be annotated, such as operations or ports. These annotations are
+shown by means of a decoration icon. When the code of the application is
+generated, the trace declaration must lead to an instrumentation of the
+generated code for a specific trace implementation, in our case primarily
+LTTng.</p>
+<h1>2. Annotating Model elements</h1>
+<p >Several model elements can be annotated
+with trace information. In the sequel, we list these and outline the different
+trace options.</p>
+<p >1. Class/component itself. When a class is annotated, by default its
+creation and destruction is traced. In addition, a class has several features
+(such as operations and attributes). These can be traced without having to
+place a tracepoint on the feature itself. The user can choose whether he wants
+to trace in addition all attributes, all operations or all states. This choice
+is available in the tracing context menu, after the tracepoint has been
+applied.</p>
+<p>2. Port of a component</p>
+<p>
+If a port of a component is traced, an interceptor is placed within the components container. The
+interceptor traces the operations that are associated with a port. For
+instance, a data-flow port is associated with push or pull operations that take
+the concerned data type as parameter.</p>
+<p align=center ><img
+width=216 height=101 id="Objet 1"
+src="images/image001.gif"></p>
+<p >3. Operation of a class</p>
+<p >A tracepoint may
+be placed on an operation of a class. This means that an interceptor (on class
+level) will create a trace event before and/or after the operation has been
+called. In addition, there is the option to add the operation name and the
+model reference into the trace point, or ' in addition ' all of the operations
+parameters. If the trace event is produced before the application invocation,
+out parameters and return values are not part of the trace event.</p>
+<p align=center ><img
+width=137 height=106 id="Objet 2"
+src="images/image002.gif"></p>
+<p >4. Property of a class</p>
+<p >Properties
+(attributes) of a class can be traced, if the attribute's type is itself a
+class. In this case, the tracepoint is interpreted as a trace on the instance.
+It implies activating tracing on the attributes type, but restricting the
+production of a trace to the role (instance) that the type plays within the class
+declaring the attribute. This mechanism can be realized within the framework,
+but is not implemented at the moment.</p>
+<p >5.
+Trace
+an instance specification</p>
+<p >Putting a trace
+point on an instance specification is quite similar to putting a trace point to
+an attribute: the classifier referenced by the instance specification will have
+trace support but actual tracing is restricted to concrete instance. Not implemented (planned for 2013)</p>
+<p ><img width=185 height=61
+id="Objet 4" src="images/image003.gif"></p>
+<p >6.
+State
+(within a statechart)</p>
+<p >If a class defines a state-chart, the
+states can be annotated with a trace marker. A trace event is produced, if the
+state is entered and/or left (configurable via option). Not implemented
+(planned for 2013)</p>
+<p >7.
+Transition:
+A transition can be annotated. A trace event is produced, when the transition
+is fired. </p>
+<p ><img width=290 height=85
+id="Image 10" src="images/image004.jpg"></p>
+<p ></p>
+<h1 >Code produced for a trace
+annotation</h1>
+<h2>2.1
+Trace declaration</h2>
+<p >In LTTng, a trace events need to have a
+declaration. We distinguish events that have a generic declaration and those
+requiring a specific declaration. For instance, a call event for an operation
+has a generic declaration, if parameters are not included: all that is needed
+is the operation name (or identifier). Although we could always use a generic
+declaration with the operation name as parameter, we declare the name (and URI
+reference) in the events declaration, i.e. in its meta-data. Thus, an event
+instance does not include the model URI and is therefore quite lcompact on the
+expense of a potentially large number of different events.</p>
+<p >In general, the event declaration includes
+a model reference, e.g. ref. to port or operation and event data. In case of an
+operation call, the event data corresponds to the values of parameter and an
+identification of the associated instance. The following code fragment shows,
+how a tracepoint is declared in case of a port interception. Here, the port 'p',
+typed with interface ICompute is traced, these are the actual of a package
+template with the two formal parameters interface and port.</p>
+<p >We use a canonical name for the event type
+which is composed of the model name, the name of a package template and the
+actual variables for the template. In our example, the model is called
+ClientServerTraceTest, the package methodCall_port_ICompute_p (the underlying package
+template is called methodCall_port, the actual for the two formals Interface
+and port are 'ICompute' and 'p', respectively). The second parameter for the
+event declaration is the elements name, e.g. the operation name ('add' in the
+example) in case of a traced operation.</p>
+<div >
+<p >TRACEPOINT_EVENT(ClientServerTraceTest_methodCall_port_ICompute_p,
+add,</p>
+<p >
+TP_ARGS(const char *, instanceName, int, a, int, b),</p>
+<p >
+TP_FIELDS(</p>
+<p >
+ctf_string(instanceName, instanceName)</p>
+<p >
+ctf_integer(int, a, a)</p>
+<p >
+ctf_integer(int, b, b)</p>
+<p > )</p>
+<p >)</p>
+<p >TRACEPOINT_MODEL_EMF_URI(ClientServerTraceTest_methodCall_port_ICompute_p,
+add, &quot;platform:/resource/org.eclipse.papyrus.qompass.designer.examples/model/ClientServerTraceTest.uml#_4KiE8DLbEd2qeKRLMdIx_A&quot;)</p>
+</div>
+<p ></p>
+<p >For each trace event, the added
+instrumentation code with invoke the tracepoint, in case of the example above
+by</p>
+<div >
+<p >tracepoint(ClientServerTraceTest_methodCall_port_ICompute_p, add, <span
+style='color:#0000C0'>instanceName, a, b);</p>
+</div>
+<p >Note that instanceName is an attribute of the interception
+class, i.e. not a fixed string, a and b are the actual parameters of an
+operation.</p>
+<h1>3. Example</h1>
+<p >This section demonstrates the use of the trace
+mechanism by means of a very simple application, called client/server trace
+test. The model is available via the 'new example' menu. Select the example
+from the 'Qompass examples' folder. </p>
+<p align=center ><img width=567 height=314 id="Image 15"
+src="images/image005.jpg" alt=trace4.png></p>
+<p align=center ><a
+name="_Ref343641256">Figure </a>1: Tracepoint on operation, shown in model
+explorer, diagram and trace view</p>
+<p >Figure 1 shows a
+small test application. A tracepoint is placed on an operation testOp. The
+tracepoint is also visible in the tracepoint view (first selected entry) and in
+the model explorer and the left. The tracepoint view is an additional view that
+can be shown via the Eclipse standard 'show view' dialog, appearing in the
+Papyrus category.</p>
+<p ></p>
+<p ></p>
+<p align=center ><img width=593 height=71 id="Image 9"
+src="images/image006.jpg" alt=trace9.png></p>
+<p align=center ><a
+name="_Ref343721358">Figure </a>2: Set trace points via context menu</p>
+<p >Figure 2 shows a
+part of the context menu of a model element in the model explorer or a diagram.
+It contains a sub-menu called 'Tracing' that contains trace related functions.
+In particular, it is possible to toggle a tracepoint, i.e. add or remove a
+tracepoint. A tracepoint can be active or inactive. While the instrumentation
+is always added, i.e. also when the tracepoint is inactive, trace events should
+only be produced for an active tracepoint. This sould be done via the LTTng
+runtime control mechanisms.</p>
+<p ></p>
+<p ><img width=590 height=342
+id="Image 13" src="images/image007.gif"
+alt=trace8.png></p>
+<p align=center ><a
+name="_Ref343721365">Figure </a>4: Preference dialog for tracing</p>
+<p >Figure 4 shows the
+preference dialog for tracing within the Papyrus category. The dialog captures
+the different options how a tracepoint of a class, a state and on an operation
+should be interpreted, e.g. whether an operation is be trace with or without
+parameter values.</p>
+<p >In addition to these options, the
+instrumentation has a modular realization mechanism and the default
+implementation among available implementations can be chosen. The Qompass model
+library contains for instance not only an LTTng based trace implementation, but
+also one based on OTF (open trace format).</p>
+<p ></p>
+<p ></p>
+<p align=center ><b><img width=609 height=263 id="Image 16"
+src="images/image008.jpg"
+alt=trace7-events.png></b></p>
+<p align=center ><a
+name="_Ref343723153">Figure </a>5: Trace event view via TMF</p>
+<p >Once the tracepoints are set, an
+application can be compiled and executed. Currently, the runtime trace options
+must be set manually (e.g. enable all events). The generated trace can be
+imported by means of the TMF (trace monitoring framework) which is part of the
+LTTng linux-tools. Figure 5
+shows the event view of this framework (note that the view will be replaced by
+an editor from version 2.0 on) displaying the trace of the client/server trace
+test model. The screenshot shows the event timestamp, type and content. It
+depicts that the type corresponds to a qualified name in the model element and
+that the contents contains parameter values.</p>
+<p align=center ><b></b></p>
+<p align=center ><b><img width=609 height=280 id="Image 17"
+src="images/image009.jpg"
+alt=trace5-events-filtered.png></b></p>
+<p align=center ><a
+name="_Ref343723478">Figure </a>6: Trace event view, filtered (only 'testOp'
+is shown)</p>
+<p >In Figure 6, the event view has been restricted
+to the operation 'testOp' by means of a context operation of an element in the
+model explorer or diagram. In this case, only events for the operation testOp
+are shown.</p>
+</div>
+</body>
+</html>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.di b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.di
new file mode 100644
index 00000000000..3e57bb9a61b
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.di
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmlns:history="http://www.eclipse.org/papyrus/0.7.0/controlmode">
+ <di:SashWindowsMngr>
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_XSHWMF36Ed-UvNEDwY5GNg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_wOG5sF36Ed-UvNEDwY5GNg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_aeSh0F37Ed-UvNEDwY5GNg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_q-Wa0F37Ed-UvNEDwY5GNg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_6FvnwGONEd-seu3qyZgHfg"/>
+ </availablePage>
+ <availablePage/>
+ <availablePage/>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_HoscYMniEeCMCo5Ox2CNmg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_rbZ3IDeFEeGPyrZ5I3hMlA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_Rk2pgDVlEeKoYLVLZgpRiw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_57mwQDclEeKAhIrFXfR8zQ"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="/0/@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_XSHWMF36Ed-UvNEDwY5GNg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_wOG5sF36Ed-UvNEDwY5GNg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_aeSh0F37Ed-UvNEDwY5GNg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_q-Wa0F37Ed-UvNEDwY5GNg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_6FvnwGONEd-seu3qyZgHfg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_HoscYMniEeCMCo5Ox2CNmg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_rbZ3IDeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_Rk2pgDVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ClientServerTraceTest.notation#_57mwQDclEeKAhIrFXfR8zQ"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+ </di:SashWindowsMngr>
+ <history:ControledResource/>
+ <history:ControledResource/>
+ <history:ControledResource/>
+ <history:ControledResource/>
+ <history:ControledResource/>
+ <history:ControledResource/>
+ <history:ControledResource/>
+</xmi:XMI>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.notation b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.notation
new file mode 100644
index 00000000000..50b938b975e
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.notation
@@ -0,0 +1,1315 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_XSHWMF36Ed-UvNEDwY5GNg" type="PapyrusUMLClassDiagram" name="Interfaces" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Pj6oUDeEEeGPyrZ5I3hMlA" type="2004" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pj6oUjeEEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pj7PYDeEEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pj7PYTeEEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pj7PYjeEEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pj7PYzeEEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pj7PZDeEEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Pj7PZTeEEeGPyrZ5I3hMlA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Pj7PZjeEEeGPyrZ5I3hMlA" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Pj7PZzeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Pj7PaDeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Pj7PaTeEEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pj7PajeEEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Pj7PazeEEeGPyrZ5I3hMlA" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_R8Rm0DeEEeGPyrZ5I3hMlA" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1B21kCwNEeK0G9oarbCn5Q" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1I5RsCwNEeK0G9oarbCn5Q" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_DGs6wDLgEd28fJKJJnUaeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R8Rm0TeEEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_R8SN4DeEEeGPyrZ5I3hMlA" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2ZBc0CwNEeK0G9oarbCn5Q" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2dz2MCwNEeK0G9oarbCn5Q" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_L8EY8DLgEd28fJKJJnUaeQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R8SN4TeEEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rsWQcDVdEeKoYLVLZgpRiw" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8MrPMDVdEeKoYLVLZgpRiw" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8ftf8DVdEeKoYLVLZgpRiw" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_rrbqcDVdEeKoYLVLZgpRiw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rsWQcTVdEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6E33wDW2EeKyT6LlKoWJIA" type="3007" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JvVlgDW3EeKyT6LlKoWJIA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J0pjUDW3EeKyT6LlKoWJIA" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_6DewoDW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6E33wTW2EeKyT6LlKoWJIA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Pj7PbDeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Pj7PbTeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Pj7PbjeEEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pj7PbzeEEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Pj7PcDeEEeGPyrZ5I3hMlA" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Pj7PcTeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Pj7PcjeEEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Pj7PczeEEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pj7PdDeEEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="ClientServerTraceTest.uml#_cn-H0DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pj6oUTeEEeGPyrZ5I3hMlA" x="108" y="81" width="321"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TP_4gDeEEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TQAfkDeEEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TQAfkTeEEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TQAfkjeEEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TQAfkzeEEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TQAflDeEEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TQAflTeEEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TQAfljeEEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_TDDBoDeEEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TP_4gTeEEeGPyrZ5I3hMlA" x="513" y="108" width="203"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ktdOQDW2EeKyT6LlKoWJIA" type="2010" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ktd1UDW2EeKyT6LlKoWJIA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ktd1UTW2EeKyT6LlKoWJIA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ktd1UjW2EeKyT6LlKoWJIA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ktd1UzW2EeKyT6LlKoWJIA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ktd1VDW2EeKyT6LlKoWJIA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ktd1VTW2EeKyT6LlKoWJIA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ktd1VjW2EeKyT6LlKoWJIA" type="5035"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ktd1VzW2EeKyT6LlKoWJIA" type="7020">
+ <children xmi:type="notation:Shape" xmi:id="_m0rZcDW2EeKyT6LlKoWJIA" type="3018" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Property" href="ClientServerTraceTest.uml#_m0WCQDW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m0rZcTW2EeKyT6LlKoWJIA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yJR6MDW2EeKyT6LlKoWJIA" type="3018" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Property" href="ClientServerTraceTest.uml#_yJIJMDW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yJR6MTW2EeKyT6LlKoWJIA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ktd1WDW2EeKyT6LlKoWJIA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ktd1WTW2EeKyT6LlKoWJIA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ktd1WjW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ktd1WzW2EeKyT6LlKoWJIA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ktecYDW2EeKyT6LlKoWJIA" visible="false" type="7021">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ktecYTW2EeKyT6LlKoWJIA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ktecYjW2EeKyT6LlKoWJIA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ktecYzW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ktecZDW2EeKyT6LlKoWJIA"/>
+ </children>
+ <element xmi:type="uml:DataType" href="ClientServerTraceTest.uml#_krMkcDW2EeKyT6LlKoWJIA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ktdOQTW2EeKyT6LlKoWJIA" x="121" y="262" width="141" height="90"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_XSHWMV36Ed-UvNEDwY5GNg"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_Tp4n8DLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Y-hhkDeEEeGPyrZ5I3hMlA" type="4013" source="_TP_4gDeEEeGPyrZ5I3hMlA" target="_Pj6oUDeEEeGPyrZ5I3hMlA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Y-hhkTeEEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Y-hhkjeEEeGPyrZ5I3hMlA" points="[-29, -1, 113, 0]$[-113, -1, 29, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y_9sADeEEeGPyrZ5I3hMlA" id="(0.14285714285714285,0.5166666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y_9sATeEEeGPyrZ5I3hMlA" id="(0.9096573208722741,0.5377358490566038)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_wOG5sF36Ed-UvNEDwY5GNg" type="CompositeStructure" name="CompositeDiagram Client" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_xxFIUF36Ed-UvNEDwY5GNg" type="2073" fontName="Sans Serif" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_edFmkDeFEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_edFmkTeFEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1lbhAJTfEd-BZ5b36VI4Tw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5uoqAMxjEeGQGKJyDfz9-Q" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5uoqAcxjEeGQGKJyDfz9-Q" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5upREMxjEeGQGKJyDfz9-Q" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5upREcxjEeGQGKJyDfz9-Q" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5upREsxjEeGQGKJyDfz9-Q" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xxFvYF36Ed-UvNEDwY5GNg" type="5156">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ccTakDeFEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ccTakTeFEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xxFvYV36Ed-UvNEDwY5GNg" type="7073" collapsed="true">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xxFvYl36Ed-UvNEDwY5GNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ozsDcDeEEeGPyrZ5I3hMlA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ozsDcjeEEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ozsqgDeEEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ozsqgTeEEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ozsqgjeEEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ozsqgzeEEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ozsqhDeEEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_q5EVUDrWEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rUXKMDrWEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rUXKMTrWEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rUXKMjrWEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rUXKMzrWEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rUXKNDrWEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ozsqhTeEEeGPyrZ5I3hMlA" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ozsqhjeEEeGPyrZ5I3hMlA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ozsqhzeEEeGPyrZ5I3hMlA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ozsqiDeEEeGPyrZ5I3hMlA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ozsDcTeEEeGPyrZ5I3hMlA" x="-10" y="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2HCY4EwJEeGN3tuNIuGSAw" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2HC_8EwJEeGN3tuNIuGSAw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2HC_8UwJEeGN3tuNIuGSAw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2HDnAEwJEeGN3tuNIuGSAw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2HDnAUwJEeGN3tuNIuGSAw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2HDnAkwJEeGN3tuNIuGSAw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2HDnA0wJEeGN3tuNIuGSAw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4u-EcEwJEeGN3tuNIuGSAw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5Z1mYEwJEeGN3tuNIuGSAw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5Z1mYUwJEeGN3tuNIuGSAw" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5Z1mYkwJEeGN3tuNIuGSAw" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5Z2NcEwJEeGN3tuNIuGSAw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5Z2NcUwJEeGN3tuNIuGSAw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2HDnBEwJEeGN3tuNIuGSAw" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2HDnBUwJEeGN3tuNIuGSAw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2HDnBkwJEeGN3tuNIuGSAw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2HDnB0wJEeGN3tuNIuGSAw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ClientServerTraceTest.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2HCY4UwJEeGN3tuNIuGSAw" x="162" y="54"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xxFIUV36Ed-UvNEDwY5GNg" x="117" y="171" width="172" height="89"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lvTlsAOUEeCBk5-airPjFw" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lvVa4AOUEeCBk5-airPjFw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvVa4QOUEeCBk5-airPjFw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lvWB8AOUEeCBk5-airPjFw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvWB8QOUEeCBk5-airPjFw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lvWB8gOUEeCBk5-airPjFw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lvWB8wOUEeCBk5-airPjFw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lvWB9AOUEeCBk5-airPjFw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lvWpAAOUEeCBk5-airPjFw" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lvWpAQOUEeCBk5-airPjFw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lu8gEDeEEeGPyrZ5I3hMlA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lu9HIDeEEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lu9HITeEEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lu9HIjeEEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lu9HIzeEEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lu9HJDeEEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lu9HJTeEEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mcgqcDrWEeGMCcwsbpLuFA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m2G2MDrWEeGMCcwsbpLuFA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m2G2MTrWEeGMCcwsbpLuFA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m2G2MjrWEeGMCcwsbpLuFA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m2HdQDrWEeGMCcwsbpLuFA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m2HdQTrWEeGMCcwsbpLuFA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lu9HJjeEEeGPyrZ5I3hMlA" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lu9HJzeEEeGPyrZ5I3hMlA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lu9uMDeEEeGPyrZ5I3hMlA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lu9uMTeEEeGPyrZ5I3hMlA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lu8gETeEEeGPyrZ5I3hMlA" x="-10" y="27"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lvTlsQOUEeCBk5-airPjFw" x="117" y="36" width="172" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_b6dHMDeEEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b6duQDeEEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b6duQTeEEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b6duQjeEEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b6duQzeEEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_b6duRDeEEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_b6duRTeEEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_b6eVUDeEEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_b5cakDeEEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b6dHMTeEEeGPyrZ5I3hMlA" x="342" y="81" width="332" height="76"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_wOG5sV36Ed-UvNEDwY5GNg"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_etOZkDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_lwdcQAOUEeCBk5-airPjFw" type="4015" source="_xxFIUF36Ed-UvNEDwY5GNg" target="_lvTlsAOUEeCBk5-airPjFw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lwfRcAOUEeCBk5-airPjFw" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lwfRcQOUEeCBk5-airPjFw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_lwdcQQOUEeCBk5-airPjFw" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="ClientServerTraceTest.uml#_34FjAPx3Ed6O2oOTPfeAMA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lwdcQgOUEeCBk5-airPjFw" points="[-46, -44, 166, 165]$[-212, -209, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_p9prkD1rEeGCbZXfrLvxhQ" id="(0.5290697674418605,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_k5vWYDeEEeGPyrZ5I3hMlA" type="4002" source="_b6dHMDeEEeGPyrZ5I3hMlA" target="_lwdcQAOUEeCBk5-airPjFw" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_k5vWYTeEEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_k5vWYjeEEeGPyrZ5I3hMlA" points="[-14, 0, 164, -11]$[-178, 11, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_k6dvIDeEEeGPyrZ5I3hMlA" id="(0.017948717948717947,0.4666666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_k6dvITeEEeGPyrZ5I3hMlA" id="(0.4883720930232558,0.22321428571428573)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_aeSh0F37Ed-UvNEDwY5GNg" type="CompositeStructure" name="CompositeDiagram Server" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_c2tKsF37Ed-UvNEDwY5GNg" type="2073" fontName="Monospace" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MXrr0H8eEd-5xfPoaTlRww" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MXsS4H8eEd-5xfPoaTlRww" key="QualifiedNameDepth" value="1"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NqCEgH8eEd-5xfPoaTlRww" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NqCEgX8eEd-5xfPoaTlRww" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iDIMAGXtEd-6i7-LHPxExw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X6rnUDVeEeKoYLVLZgpRiw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X6rnUTVeEeKoYLVLZgpRiw" key="StereotypeList" value=",FCM::RuleApplication"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X6sOYDVeEeKoYLVLZgpRiw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X6sOYTVeEeKoYLVLZgpRiw" key="PropStereoDisplay" value="FCM::RuleApplication.containerRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X6sOYjVeEeKoYLVLZgpRiw" key="StereotypePropertyLocation" value="With brace"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_c2tKsl37Ed-UvNEDwY5GNg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_c2tKs137Ed-UvNEDwY5GNg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c2tKtF37Ed-UvNEDwY5GNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FzA74GfbEd-T-rJ3Ep9Y5Q" type="3069" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FzSosGfbEd-T-rJ3Ep9Y5Q" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FzTPwGfbEd-T-rJ3Ep9Y5Q" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FzTPwWfbEd-T-rJ3Ep9Y5Q" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FzT20GfbEd-T-rJ3Ep9Y5Q" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FzT20WfbEd-T-rJ3Ep9Y5Q" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FzT20mfbEd-T-rJ3Ep9Y5Q" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M08tkGfbEd-T-rJ3Ep9Y5Q" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0TObQDrZEeGgAdAmWw4pyQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0TObQTrZEeGgAdAmWw4pyQ" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0TObQjrZEeGgAdAmWw4pyQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0TObQzrZEeGgAdAmWw4pyQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0TObRDrZEeGgAdAmWw4pyQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FzUd4GfbEd-T-rJ3Ep9Y5Q" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzUd4WfbEd-T-rJ3Ep9Y5Q" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FzUd4mfbEd-T-rJ3Ep9Y5Q" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FzUd42fbEd-T-rJ3Ep9Y5Q" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ClientServerTraceTest.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FzA74WfbEd-T-rJ3Ep9Y5Q" x="-10" y="106"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c2tKsV37Ed-UvNEDwY5GNg" x="134" y="74" width="353" height="269"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_aeSh0V37Ed-UvNEDwY5GNg"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_OGM88DLaEd2qeKRLMdIx_A"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_q-Wa0F37Ed-UvNEDwY5GNg" type="CompositeStructure" name="CompositeDiagram System" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_sGaPEF37Ed-UvNEDwY5GNg" type="2073" fontName="Sans Serif" fontHeight="10" transparency="0" gradient="8047085, 0, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6B6WUGSuEd-dQdK1-7wIFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6B69YGSuEd-dQdK1-7wIFg" key="QualifiedNameDepth" value="3"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_62o-4GSuEd-dQdK1-7wIFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_62o-4WSuEd-dQdK1-7wIFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_38uLcGSuEd-dQdK1-7wIFg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5vj3EMxjEeGQGKJyDfz9-Q" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5vkeIMxjEeGQGKJyDfz9-Q" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5vkeIcxjEeGQGKJyDfz9-Q" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5vkeIsxjEeGQGKJyDfz9-Q" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5vkeI8xjEeGQGKJyDfz9-Q" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sGa2IF37Ed-UvNEDwY5GNg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sGa2IV37Ed-UvNEDwY5GNg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_uegu4F37Ed-UvNEDwY5GNg" type="3070" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fGdKUF38Ed-UvNEDwY5GNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fGdKUV38Ed-UvNEDwY5GNg" key="QualifiedNameDepth" value="4"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uegu4l37Ed-UvNEDwY5GNg" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uehV8F37Ed-UvNEDwY5GNg" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uehV8V37Ed-UvNEDwY5GNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TLHfQAcCEeGnrLqQ0OQeAg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLJUcAcCEeGnrLqQ0OQeAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLJUcQcCEeGnrLqQ0OQeAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLJUcgcCEeGnrLqQ0OQeAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLJUcwcCEeGnrLqQ0OQeAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TLJ7gAcCEeGnrLqQ0OQeAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TLJ7gQcCEeGnrLqQ0OQeAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1aRi4DrZEeGgAdAmWw4pyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1sVjQDrZEeGgAdAmWw4pyQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1sVjQTrZEeGgAdAmWw4pyQ" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1sVjQjrZEeGgAdAmWw4pyQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1sVjQzrZEeGgAdAmWw4pyQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1sVjRDrZEeGgAdAmWw4pyQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TLJ7ggcCEeGnrLqQ0OQeAg" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TLJ7gwcCEeGnrLqQ0OQeAg" x="25" y="-6"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TLKikAcCEeGnrLqQ0OQeAg" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TLKikQcCEeGnrLqQ0OQeAg" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TLHfQQcCEeGnrLqQ0OQeAg" x="-10" y="51"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RUoqEDrcEeGgAdAmWw4pyQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RUpRIDrcEeGgAdAmWw4pyQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RUpRITrcEeGgAdAmWw4pyQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RUpRIjrcEeGgAdAmWw4pyQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RUpRIzrcEeGgAdAmWw4pyQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RUpRJDrcEeGgAdAmWw4pyQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RUpRJTrcEeGgAdAmWw4pyQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_T-OigDrcEeGgAdAmWw4pyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UWrewDrcEeGgAdAmWw4pyQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UWrewTrcEeGgAdAmWw4pyQ" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UWrewjrcEeGgAdAmWw4pyQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UWrewzrcEeGgAdAmWw4pyQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UWsF0DrcEeGgAdAmWw4pyQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RUpRJjrcEeGgAdAmWw4pyQ" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RUpRJzrcEeGgAdAmWw4pyQ" x="-111" y="16"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_RUpRKDrcEeGgAdAmWw4pyQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RUpRKTrcEeGgAdAmWw4pyQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ClientServerTraceTest.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RUoqETrcEeGgAdAmWw4pyQ" x="152" y="54"/>
+ </children>
+ <element xmi:type="uml:Property" href="ClientServerTraceTest.uml#_i-I7gDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uegu4V37Ed-UvNEDwY5GNg" x="35" y="17" width="162" height="112"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vHCHcF37Ed-UvNEDwY5GNg" type="3070" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_haY70F38Ed-UvNEDwY5GNg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_haY70V38Ed-UvNEDwY5GNg" key="QualifiedNameDepth" value="4"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vHCHcl37Ed-UvNEDwY5GNg" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vHCHc137Ed-UvNEDwY5GNg" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vHCHdF37Ed-UvNEDwY5GNg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SZhOgDrcEeGgAdAmWw4pyQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SZh1kDrcEeGgAdAmWw4pyQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SZh1kTrcEeGgAdAmWw4pyQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SZh1kjrcEeGgAdAmWw4pyQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SZh1kzrcEeGgAdAmWw4pyQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SZh1lDrcEeGgAdAmWw4pyQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SZh1lTrcEeGgAdAmWw4pyQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VXy9gDrcEeGgAdAmWw4pyQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VsgCMDrcEeGgAdAmWw4pyQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VsgCMTrcEeGgAdAmWw4pyQ" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VsgCMjrcEeGgAdAmWw4pyQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VsgCMzrcEeGgAdAmWw4pyQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VsgpQDrcEeGgAdAmWw4pyQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SZh1ljrcEeGgAdAmWw4pyQ" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SZh1lzrcEeGgAdAmWw4pyQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SZh1mDrcEeGgAdAmWw4pyQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SZh1mTrcEeGgAdAmWw4pyQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ClientServerTraceTest.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SZhOgTrcEeGgAdAmWw4pyQ" x="-10" y="52"/>
+ </children>
+ <element xmi:type="uml:Property" href="ClientServerTraceTest.uml#_gV1cgDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vHCHcV37Ed-UvNEDwY5GNg" x="422" y="19" width="162" height="112"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sGa2Il37Ed-UvNEDwY5GNg"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#_bYJagDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sGaPEV37Ed-UvNEDwY5GNg" x="63" y="32" width="625" height="197"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s51AIDeJEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s51nMDeJEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s51nMTeJEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s51nMjeJEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s51nMzeJEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s51nNDeJEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s51nNTeJEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s51nNjeJEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_s5iFMDeJEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s51AITeJEeGPyrZ5I3hMlA" x="63" y="249" width="307" height="120"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Vcy4gDeKEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vcy4gjeKEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vcy4gzeKEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Vcy4hDeKEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Vcy4hTeKEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VczfkDeKEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VczfkTeKEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VczfkjeKEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_Vcf9kDeKEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vcy4gTeKEeGPyrZ5I3hMlA" x="405" y="249" width="307"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_q-Wa0V37Ed-UvNEDwY5GNg"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_XLQjUDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_4lh80DeKEeGPyrZ5I3hMlA" type="4002" source="_s51AIDeJEeGPyrZ5I3hMlA" target="_sGaPEF37Ed-UvNEDwY5GNg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_4lh80TeKEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4lh80jeKEeGPyrZ5I3hMlA" points="[1, -4, -11, 27]$[3, -24, -9, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4mHLoDeKEeGPyrZ5I3hMlA" id="(0.6351791530944625,0.03333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4mHLoTeKEeGPyrZ5I3hMlA" id="(0.2896,0.9695431472081218)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QRrXUE2rEeGl8qrc8BM7vA" type="4013" source="_RUoqEDrcEeGgAdAmWw4pyQ" target="_SZhOgDrcEeGgAdAmWw4pyQ" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VPgjQE2rEeGl8qrc8BM7vA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VPmC0E2rEeGl8qrc8BM7vA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VPmC0U2rEeGl8qrc8BM7vA" key="StereotypeList" value="FCM::Connector"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VPmC0k2rEeGl8qrc8BM7vA" key="PropStereoDisplay" value="FCM::Connector.ic"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VPmC002rEeGl8qrc8BM7vA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VPmC1E2rEeGl8qrc8BM7vA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QRslcE2rEeGl8qrc8BM7vA" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QRslcU2rEeGl8qrc8BM7vA" x="6" y="-30"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QRslck2rEeGl8qrc8BM7vA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QRslc02rEeGl8qrc8BM7vA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QRsldE2rEeGl8qrc8BM7vA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QRsldU2rEeGl8qrc8BM7vA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QRsldk2rEeGl8qrc8BM7vA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QRsld02rEeGl8qrc8BM7vA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QRrXUU2rEeGl8qrc8BM7vA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ClientServerTraceTest.uml#_QO2s0E2rEeGl8qrc8BM7vA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QRrXUk2rEeGl8qrc8BM7vA" points="[4, -1, -208, 0]$[209, -3, -3, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QR4ysE2rEeGl8qrc8BM7vA" id="(0.8,0.4)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QR4ysU2rEeGl8qrc8BM7vA" id="(0.15,0.35)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SHmXIE2rEeGl8qrc8BM7vA" type="4002" source="_Vcy4gDeKEeGPyrZ5I3hMlA" target="_QRrXUE2rEeGl8qrc8BM7vA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_SHmXIU2rEeGl8qrc8BM7vA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SHmXIk2rEeGl8qrc8BM7vA" points="[8, -3, 11, 98]$[-69, -101, -66, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SHu6AE2rEeGl8qrc8BM7vA" id="(0.21498371335504887,0.025)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SHu6AU2rEeGl8qrc8BM7vA" id="(0.9137931034482759,0.4691358024691358)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_6FvnwGONEd-seu3qyZgHfg" type="PapyrusUMLClassDiagram" name="deployment plans" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_7Fso4GONEd-seu3qyZgHfg" type="2007" fontName="Sans Serif" fontHeight="10" transparency="0" gradient="8905185, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7FvFImONEd-seu3qyZgHfg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7FvsMGONEd-seu3qyZgHfg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7FvsMWONEd-seu3qyZgHfg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7FvsMmONEd-seu3qyZgHfg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_30xTEGTfEd-rCOWJcspHOA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_30xTEWTfEd-rCOWJcspHOA" key="ShadowFigure_Value" value="true"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1FykUGTfEd-rCOWJcspHOA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhoQADeIEeGPyrZ5I3hMlA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhoQATeIEeGPyrZ5I3hMlA" key="StereotypeList" value="FCM::DeploymentPlan"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhoQAjeIEeGPyrZ5I3hMlA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhoQAzeIEeGPyrZ5I3hMlA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zhoQBDeIEeGPyrZ5I3hMlA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7FvsM2ONEd-seu3qyZgHfg" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7FvsNGONEd-seu3qyZgHfg" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7FvsNWONEd-seu3qyZgHfg"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_7FtP8GONEd-seu3qyZgHfg"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_5Z7MEDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7FtP8WONEd-seu3qyZgHfg" x="77" y="38"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7zJkwGONEd-seu3qyZgHfg" type="2007" fontName="Sans Serif" fontHeight="10" transparency="0" gradient="8047085, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7zKL0mONEd-seu3qyZgHfg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7zKL02ONEd-seu3qyZgHfg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7zKL1GONEd-seu3qyZgHfg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7zKL1WONEd-seu3qyZgHfg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5T0rAGTfEd-rCOWJcspHOA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5T0rAWTfEd-rCOWJcspHOA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0jgjwDeIEeGPyrZ5I3hMlA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0jgjwTeIEeGPyrZ5I3hMlA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0jgjwjeIEeGPyrZ5I3hMlA" key="StereotypeList" value="FCM::DeploymentPlan"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0jhK0DeIEeGPyrZ5I3hMlA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0jhK0TeIEeGPyrZ5I3hMlA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0jhK0jeIEeGPyrZ5I3hMlA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7zKL1mONEd-seu3qyZgHfg" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7zKL12ONEd-seu3qyZgHfg" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7zKL2GONEd-seu3qyZgHfg"/>
+ </children>
+ <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_7zJkwWONEd-seu3qyZgHfg"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_bBSxQP_BEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7zJkwmONEd-seu3qyZgHfg" x="77" y="284"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TooeIDeIEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TooeIjeIEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TooeIzeIEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TooeJDeIEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TooeJTeIEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TopFMDeIEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TopFMTeIEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TopFMjeIEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_ToVjMDeIEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TooeITeIEeGPyrZ5I3hMlA" x="495" y="198" width="187"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f33bIDeIEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f34CMDeIEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f34CMTeIEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f34CMjeIEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f34CMzeIEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f34CNDeIEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f34CNTeIEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_f34CNjeIEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_f3lHQDeIEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f33bITeIEeGPyrZ5I3hMlA" x="76" y="153" width="357"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_L1JeQDeJEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L1JeQjeJEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L1JeQzeJEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L1KFUDeJEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L1KFUTeJEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L1KFUjeJEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L1KFUzeJEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_L1KFVDeJEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_L01VMDeJEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L1JeQTeJEeGPyrZ5I3hMlA" x="74" y="402" width="494"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_FQOkoDWxEeKGAYOVxzQeAg" type="2008" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FQPywDWxEeKGAYOVxzQeAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FQPywTWxEeKGAYOVxzQeAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FQPywjWxEeKGAYOVxzQeAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FQPywzWxEeKGAYOVxzQeAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FQPyxDWxEeKGAYOVxzQeAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FQPyxTWxEeKGAYOVxzQeAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IiHMIDWxEeKGAYOVxzQeAg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KWAysDWxEeKGAYOVxzQeAg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KWAysTWxEeKGAYOVxzQeAg" key="StereotypeList" value="FCM::Configuration"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KWAysjWxEeKGAYOVxzQeAg" key="PropStereoDisplay" value=",FCM::Configuration.configOptions,FCM::Configuration.deploymentPlan"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KWAyszWxEeKGAYOVxzQeAg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KWAytDWxEeKGAYOVxzQeAg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FQQZ0DWxEeKGAYOVxzQeAg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FQQZ0TWxEeKGAYOVxzQeAg" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FQQZ0jWxEeKGAYOVxzQeAg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FQQZ0zWxEeKGAYOVxzQeAg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FQQZ1DWxEeKGAYOVxzQeAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FQQZ1TWxEeKGAYOVxzQeAg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FQQZ1jWxEeKGAYOVxzQeAg" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FQQZ1zWxEeKGAYOVxzQeAg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FQQZ2DWxEeKGAYOVxzQeAg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FQQZ2TWxEeKGAYOVxzQeAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FQQZ2jWxEeKGAYOVxzQeAg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_FQRA4DWxEeKGAYOVxzQeAg" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_FQRA4TWxEeKGAYOVxzQeAg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FQRA4jWxEeKGAYOVxzQeAg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FQRA4zWxEeKGAYOVxzQeAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FQRA5DWxEeKGAYOVxzQeAg"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#_QT6okKDjEd-rLNbSWf1QuA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FQOkoTWxEeKGAYOVxzQeAg" x="504" y="27" width="208" height="108"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_6FvnwWONEd-seu3qyZgHfg"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_234GEDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_YEkd8DeIEeGPyrZ5I3hMlA" type="4013" source="_TooeIDeIEeGPyrZ5I3hMlA" target="_FQOkoDWxEeKGAYOVxzQeAg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_YEkd8TeIEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YEkd8jeIEeGPyrZ5I3hMlA" points="[-8, -12, 41, 63]$[-14, -59, 35, 16]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YFH3kDeIEeGPyrZ5I3hMlA" id="(0.3887240356083086,0.2)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YFH3kTeIEeGPyrZ5I3hMlA" id="(0.2980769230769231,0.9722222222222222)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KL_vIDeJEeGPyrZ5I3hMlA" type="4013" source="_f33bIDeIEeGPyrZ5I3hMlA" target="_7Fso4GONEd-seu3qyZgHfg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_KL_vITeJEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KL_vIjeJEeGPyrZ5I3hMlA" points="[-11, -30, 14, 38]$[19, -45, 44, 23]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JTc_cEehEeGg-ceBj4Cxaw" id="(0.43977591036414565,0.047619047619047616)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KMooUDeJEeGPyrZ5I3hMlA" id="(0.76,0.77)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NvdQsEehEeGg-ceBj4Cxaw" type="4013" source="_L1JeQDeJEeGPyrZ5I3hMlA" target="_7zJkwGONEd-seu3qyZgHfg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_NvdQsUehEeGg-ceBj4Cxaw" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NvdQskehEeGg-ceBj4Cxaw" points="[2, -5, 0, 26]$[15, -23, 13, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nv1rMEehEeGg-ceBj4Cxaw" id="(0.34615384615384615,0.08333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nv1rMUehEeGg-ceBj4Cxaw" id="(0.85,0.92)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_HoscYMniEeCMCo5Ox2CNmg" type="CompositeStructure" name="HWArchitecture" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_IKW_AMniEeCMCo5Ox2CNmg" type="2073" fontName="" fontHeight="10" fillColor="10011046" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IKYNIMniEeCMCo5Ox2CNmg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IKYNIcniEeCMCo5Ox2CNmg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IKYNIsniEeCMCo5Ox2CNmg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IKYNI8niEeCMCo5Ox2CNmg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IKYNJMniEeCMCo5Ox2CNmg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IKYNJcniEeCMCo5Ox2CNmg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_KTgacDeLEeGPyrZ5I3hMlA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wN-YMxjEeGQGKJyDfz9-Q" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wN-YcxjEeGQGKJyDfz9-Q" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wOlcMxjEeGQGKJyDfz9-Q" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wOlccxjEeGQGKJyDfz9-Q" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wOlcsxjEeGQGKJyDfz9-Q" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IKYNJsniEeCMCo5Ox2CNmg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IKYNJ8niEeCMCo5Ox2CNmg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_RbhoYMniEeCMCo5Ox2CNmg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RbiPcMniEeCMCo5Ox2CNmg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RbiPccniEeCMCo5Ox2CNmg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RbiPcsniEeCMCo5Ox2CNmg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RbiPc8niEeCMCo5Ox2CNmg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RbiPdMniEeCMCo5Ox2CNmg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Rbi2gMniEeCMCo5Ox2CNmg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Rbi2gcniEeCMCo5Ox2CNmg" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Rbi2gsniEeCMCo5Ox2CNmg" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Rbi2g8niEeCMCo5Ox2CNmg"/>
+ </children>
+ <element xmi:type="uml:Property" href="ClientServerTraceTest.uml#_RbUNAMniEeCMCo5Ox2CNmg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RbhoYcniEeCMCo5Ox2CNmg" x="74" y="24" width="152" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_R5SicMniEeCMCo5Ox2CNmg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R5TJgMniEeCMCo5Ox2CNmg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_R5TJgcniEeCMCo5Ox2CNmg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R5TJgsniEeCMCo5Ox2CNmg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_R5TJg8niEeCMCo5Ox2CNmg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_R5TJhMniEeCMCo5Ox2CNmg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_R5TJhcniEeCMCo5Ox2CNmg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R5TJhsniEeCMCo5Ox2CNmg" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_R5TJh8niEeCMCo5Ox2CNmg" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R5TJiMniEeCMCo5Ox2CNmg"/>
+ </children>
+ <element xmi:type="uml:Property" href="ClientServerTraceTest.uml#_R5FuIMniEeCMCo5Ox2CNmg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_R5SiccniEeCMCo5Ox2CNmg" x="385" y="26" width="147" height="53"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IKYNKMniEeCMCo5Ox2CNmg"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#__1PHIMnhEeCMCo5Ox2CNmg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IKW_AcniEeCMCo5Ox2CNmg" x="76" y="27" width="609" height="159"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M1wXIMniEeCMCo5Ox2CNmg" type="2073" fontName="" fontHeight="10" fillColor="10011046" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M10BgMniEeCMCo5Ox2CNmg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M10BgcniEeCMCo5Ox2CNmg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M10BgsniEeCMCo5Ox2CNmg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M10Bg8niEeCMCo5Ox2CNmg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_M10BhMniEeCMCo5Ox2CNmg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_M10BhcniEeCMCo5Ox2CNmg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LrCOEDeLEeGPyrZ5I3hMlA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wV6MMxjEeGQGKJyDfz9-Q" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wV6McxjEeGQGKJyDfz9-Q" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wV6MsxjEeGQGKJyDfz9-Q" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wV6M8xjEeGQGKJyDfz9-Q" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5wV6NMxjEeGQGKJyDfz9-Q" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M10BhsniEeCMCo5Ox2CNmg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_M10Bh8niEeCMCo5Ox2CNmg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_QgbSEMniEeCMCo5Ox2CNmg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_QgbSEsniEeCMCo5Ox2CNmg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_QgbSE8niEeCMCo5Ox2CNmg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qgb5IMniEeCMCo5Ox2CNmg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qgb5IcniEeCMCo5Ox2CNmg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qgb5IsniEeCMCo5Ox2CNmg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qgb5I8niEeCMCo5Ox2CNmg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Qgb5JMniEeCMCo5Ox2CNmg" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Qgb5JcniEeCMCo5Ox2CNmg" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qgb5JsniEeCMCo5Ox2CNmg"/>
+ </children>
+ <element xmi:type="uml:Property" href="ClientServerTraceTest.uml#_QgKzYMniEeCMCo5Ox2CNmg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QgbSEcniEeCMCo5Ox2CNmg" x="76" y="13" width="165" height="55"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M10BiMniEeCMCo5Ox2CNmg"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#_M1a_8MniEeCMCo5Ox2CNmg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M1wXIcniEeCMCo5Ox2CNmg" x="72" y="324" width="613" height="136"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZWgfkDeLEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZWhGoDeLEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZWhGoTeLEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZWhGojeLEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZWhGozeLEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZWhGpDeLEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZWhGpTeLEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZWhGpjeLEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_ZWJ6QDeLEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZWgfkTeLEeGPyrZ5I3hMlA" x="81" y="207" width="352" height="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2v8ewDeLEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2v9F0DeLEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2v9F0TeLEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2v9F0jeLEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2v9F0zeLEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2v9F1DeLEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2v9F1TeLEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2v9F1jeLEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_2vkEQDeLEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2v8ewTeLEeGPyrZ5I3hMlA" x="497" y="212" width="332"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2pxv4DeMEeGPyrZ5I3hMlA" type="2072" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2pxv4jeMEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2pxv4zeMEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2pyW8DeMEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2pyW8TeMEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2pyW8jeMEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2pyW8zeMEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DO1L4DeNEeGPyrZ5I3hMlA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DoS0wDeNEeGPyrZ5I3hMlA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DoS0wTeNEeGPyrZ5I3hMlA" key="StereotypeList" value="FCM::Target"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DoS0wjeNEeGPyrZ5I3hMlA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DoS0wzeNEeGPyrZ5I3hMlA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DoS0xDeNEeGPyrZ5I3hMlA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_2pyW9DeMEeGPyrZ5I3hMlA" type="5124"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2pyW9TeMEeGPyrZ5I3hMlA" visible="false" type="7072">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2pyW9jeMEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2pyW9zeMEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Node" href="ClientServerTraceTest.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2pxv4TeMEeGPyrZ5I3hMlA" x="713" y="324" width="89" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5exAADeMEeGPyrZ5I3hMlA" type="2072" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5exnEDeMEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5exnETeMEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5exnEjeMEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5exnEzeMEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5exnFDeMEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5exnFTeMEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FmeYsDeNEeGPyrZ5I3hMlA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FmeYsTeNEeGPyrZ5I3hMlA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FmeYsjeNEeGPyrZ5I3hMlA" key="StereotypeList" value="FCM::Target"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FmeYszeNEeGPyrZ5I3hMlA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FmeYtDeNEeGPyrZ5I3hMlA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FmeYtTeNEeGPyrZ5I3hMlA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_5eyOIDeMEeGPyrZ5I3hMlA" type="5124"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5eyOITeMEeGPyrZ5I3hMlA" visible="false" type="7072">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5eyOIjeMEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5eyOIzeMEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Node" href="ClientServerTraceTest.uml#_MxayMP_BEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5exAATeMEeGPyrZ5I3hMlA" x="711" y="27" width="91" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6DHqQDeMEeGPyrZ5I3hMlA" type="2072" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6DIRUDeMEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6DIRUTeMEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6DIRUjeMEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6DIRUzeMEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6DIRVDeMEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6DIRVTeMEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Eq1P0DeNEeGPyrZ5I3hMlA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Eq124DeNEeGPyrZ5I3hMlA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Eq124TeNEeGPyrZ5I3hMlA" key="StereotypeList" value="FCM::Target"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Eq124jeNEeGPyrZ5I3hMlA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Eq124zeNEeGPyrZ5I3hMlA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Eq125DeNEeGPyrZ5I3hMlA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6DIRVjeMEeGPyrZ5I3hMlA" type="5124"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6DIRVzeMEeGPyrZ5I3hMlA" visible="false" type="7072">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6DIRWDeMEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6DIRWTeMEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Node" href="ClientServerTraceTest.uml#_NF3YMP_BEd6628OhKk_dpg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6DHqQTeMEeGPyrZ5I3hMlA" x="711" y="111" width="91" height="61"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_HoscYcniEeCMCo5Ox2CNmg"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_v3fMgDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_eFyUgMniEeCMCo5Ox2CNmg" type="4013" source="_RbhoYMniEeCMCo5Ox2CNmg" target="_R5SicMniEeCMCo5Ox2CNmg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_eFzioMniEeCMCo5Ox2CNmg" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eFziocniEeCMCo5Ox2CNmg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_eFyUgcniEeCMCo5Ox2CNmg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ClientServerTraceTest.uml#_eFh10MniEeCMCo5Ox2CNmg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eFyUgsniEeCMCo5Ox2CNmg" points="[10, 6, -175, 0]$[169, 6, -16, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eGRcsMniEeCMCo5Ox2CNmg" id="(0.9342105263157895,0.45454545454545453)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eGRcscniEeCMCo5Ox2CNmg" id="(0.10884353741496598,0.5471698113207547)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_JS3nYDeMEeGPyrZ5I3hMlA" type="4002" source="_2v8ewDeLEeGPyrZ5I3hMlA" target="_eFyUgMniEeCMCo5Ox2CNmg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_JS3nYTeMEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JS3nYjeMEeGPyrZ5I3hMlA" points="[-7, -6, 87, 76]$[-87, -82, 7, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JUOSQDeMEeGPyrZ5I3hMlA" id="(0.06325301204819277,0.08333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JUO5UDeMEeGPyrZ5I3hMlA" id="(0.7365591397849462,0.48148148148148145)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_J_wikDeMEeGPyrZ5I3hMlA" type="4002" source="_ZWgfkDeLEeGPyrZ5I3hMlA" target="_IKW_AMniEeCMCo5Ox2CNmg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_J_wikTeMEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J_wikjeMEeGPyrZ5I3hMlA" points="[3, -7, 0, 27]$[-17, -24, -20, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KAdGIDeMEeGPyrZ5I3hMlA" id="(0.5015384615384615,0.11666666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KAdGITeMEeGPyrZ5I3hMlA" id="(0.28078817733990147,0.9371069182389937)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_rbZ3IDeFEeGPyrZ5I3hMlA" type="PapyrusUMLClassDiagram" name="ClassDiagram Client" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_t6z40DeFEeGPyrZ5I3hMlA" type="2008" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t60f4DeFEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t60f4TeFEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t60f4jeFEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t60f4zeFEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t60f5DeFEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t60f5TeFEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t61G8DeFEeGPyrZ5I3hMlA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t61G8TeFEeGPyrZ5I3hMlA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t61G8jeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t61G8zeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t61G9DeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t61G9TeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t61G9jeFEeGPyrZ5I3hMlA" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_Q07G0DclEeKAhIrFXfR8zQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z-c2gDc_EeKPle9CbXIcpQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0IwpEDc_EeKPle9CbXIcpQ" key="CustomAppearance_MaskValue" value="6408"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_Qzp7gDclEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q07G0TclEeKAhIrFXfR8zQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cssnQDc_EeKPle9CbXIcpQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_ZnGj0EdDEeGxo4rn9hBAOQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cssnQTc_EeKPle9CbXIcpQ" x="15" y="21"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t61G9zeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t61G-DeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t61G-TeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t61G-jeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_t61G-zeFEeGPyrZ5I3hMlA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_t61G_DeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t61G_TeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t61G_jeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t61G_zeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t6z40TeFEeGPyrZ5I3hMlA" x="90" y="135" width="144"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ysCMIDeFEeGPyrZ5I3hMlA" type="2008" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysCzMDeFEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysCzMTeFEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysCzMjeFEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysCzMzeFEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ysCzNDeFEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ysCzNTeFEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ysCzNjeFEeGPyrZ5I3hMlA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ysDaQDeFEeGPyrZ5I3hMlA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ysDaQTeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ysDaQjeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ysDaQzeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ysDaRDeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ysDaRTeFEeGPyrZ5I3hMlA" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ysDaRjeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ysDaRzeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ysDaSDeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ysDaSTeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ysDaSjeFEeGPyrZ5I3hMlA" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ysDaSzeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ysDaTDeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ysDaTTeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ysDaTjeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ysCMITeFEeGPyrZ5I3hMlA" x="90" y="18" width="145" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zc4aQDeFEeGPyrZ5I3hMlA" type="2004" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zc5BUDeFEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zc5BUTeFEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zc5BUjeFEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zc5oYDeFEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zc5oYTeFEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zc5oYjeFEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zc5oYzeFEeGPyrZ5I3hMlA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zc5oZDeFEeGPyrZ5I3hMlA" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zc5oZTeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zc5oZjeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zc5oZzeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zc5oaDeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zc5oaTeFEeGPyrZ5I3hMlA" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_7omegDeFEeGPyrZ5I3hMlA" type="3007" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7omegTeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zc5oajeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zc5oazeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zc5obDeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zc5obTeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_zc5objeFEeGPyrZ5I3hMlA" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_zc5obzeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_zc5ocDeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_zc5ocTeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zc5ocjeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="pathmap://QML_CORE/SystemInterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zc4aQTeFEeGPyrZ5I3hMlA" x="387" y="117" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-jKLIDeFEeGPyrZ5I3hMlA" type="2004" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-jKLIjeFEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-jKLIzeFEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-jKyMDeFEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-jKyMTeFEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-jKyMjeFEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-jKyMzeFEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-jKyNDeFEeGPyrZ5I3hMlA" type="5011"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-jKyNTeFEeGPyrZ5I3hMlA" visible="false" type="7006">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-jKyNjeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-jKyNzeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-jKyODeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-jKyOTeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-jKyOjeFEeGPyrZ5I3hMlA" type="7007">
+ <children xmi:type="notation:Shape" xmi:id="_A4890DeGEeGPyrZ5I3hMlA" type="3007" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A4890TeGEeGPyrZ5I3hMlA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-jKyOzeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-jKyPDeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-jKyPTeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-jKyPjeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-jKyPzeFEeGPyrZ5I3hMlA" visible="false" type="7008">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-jKyQDeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-jKyQTeFEeGPyrZ5I3hMlA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-jKyQjeFEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-jKyQzeFEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Interface" href="pathmap://QML_CORE/SystemInterfaces.uml#_BHFPQJsqEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-jKLITeFEeGPyrZ5I3hMlA" x="387" y="18" height="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H2qW0DeGEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H2q94DeGEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H2q94TeGEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H2q94jeGEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H2q94zeGEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H2q95DeGEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_H2q95TeGEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_H2q95jeGEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_H2U_oDeGEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H2qW0TeGEeGPyrZ5I3hMlA" x="279" y="216" width="262"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fBkXMDeGEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fBk-QDeGEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fBk-QTeGEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fBk-QjeGEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fBk-QzeGEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fBk-RDeGEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fBllUDeGEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fBllUTeGEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_fBRcQDeGEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fBkXMTeGEeGPyrZ5I3hMlA" x="127" y="308" width="441" height="89"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kTAmMDeHEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kTBNQDeHEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kTBNQTeHEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kTBNQjeHEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kTBNQzeHEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kTBNRDeHEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kTBNRTeHEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kTBNRjeHEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ClientServerTraceTest.uml#_kStEMDeHEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kTAmMTeHEeGPyrZ5I3hMlA" x="522" y="54" width="292" height="100"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_rbZ3ITeFEeGPyrZ5I3hMlA"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_etOZkDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_ys5HwDeFEeGPyrZ5I3hMlA" type="4002" source="_t6z40DeFEeGPyrZ5I3hMlA" target="_ysCMIDeFEeGPyrZ5I3hMlA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ys5u0DeFEeGPyrZ5I3hMlA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ys5u0TeFEeGPyrZ5I3hMlA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ys5HwTeFEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="ClientServerTraceTest.uml#_34FjAPx3Ed6O2oOTPfeAMA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ys5HwjeFEeGPyrZ5I3hMlA" points="[-50, -50, 135, 135]$[-185, -185, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_zdznUDeFEeGPyrZ5I3hMlA" type="4003" source="_t6z40DeFEeGPyrZ5I3hMlA" target="_zc4aQDeFEeGPyrZ5I3hMlA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zd01cDeFEeGPyrZ5I3hMlA" type="6008">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zd01cTeFEeGPyrZ5I3hMlA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zd01cjeFEeGPyrZ5I3hMlA" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zd01czeFEeGPyrZ5I3hMlA" x="9" y="-35"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_zdznUTeFEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zdznUjeFEeGPyrZ5I3hMlA" points="[-50, -50, 135, 135]$[-185, -185, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-kJpoDeFEeGPyrZ5I3hMlA" type="4002" source="_zc4aQDeFEeGPyrZ5I3hMlA" target="_-jKLIDeFEeGPyrZ5I3hMlA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-kKQsDeFEeGPyrZ5I3hMlA" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-kKQsTeFEeGPyrZ5I3hMlA" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-kJpoTeFEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="pathmap://QML_CORE/SystemInterfaces.uml#_XpdjECS-Ed-A_I32T0fkaA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-kJpojeFEeGPyrZ5I3hMlA" points="[-50, -11, 387, 88]$[-437, -99, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_eBCHQDeGEeGPyrZ5I3hMlA" type="4013" source="_H2qW0DeGEeGPyrZ5I3hMlA" target="_zdznUDeFEeGPyrZ5I3hMlA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_eBCHQTeGEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eBCHQjeGEeGPyrZ5I3hMlA" points="[-29, -30, 53, 44]$[-78, -81, 4, -7]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eB0KYDeGEeGPyrZ5I3hMlA" id="(0.649746192893401,0.620253164556962)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_f6Wj4DeHEeGPyrZ5I3hMlA" type="4013" source="_fBkXMDeGEeGPyrZ5I3hMlA" target="_t6z40DeFEeGPyrZ5I3hMlA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_f6Wj4TeHEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f6Wj4jeHEeGPyrZ5I3hMlA" points="[-3, -11, 18, 93]$[-19, -84, 2, 20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f68ZwDeHEeGPyrZ5I3hMlA" id="(0.14512471655328799,0.11224489795918367)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f68ZwTeHEeGPyrZ5I3hMlA" id="(0.4,0.85)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_HFYY8DeIEeGPyrZ5I3hMlA" type="4013" source="_kTAmMDeHEeGPyrZ5I3hMlA" target="_zc4aQDeFEeGPyrZ5I3hMlA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_HFYY8TeIEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HFYY8jeIEeGPyrZ5I3hMlA" points="[-13, 9, 61, 0]$[-63, 4, 11, -5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HGKcEDeIEeGPyrZ5I3hMlA" id="(0.04318936877076412,0.4175824175824176)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HGKcETeIEeGPyrZ5I3hMlA" id="(0.89,0.273972602739726)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_HmF5UDeIEeGPyrZ5I3hMlA" type="4013" source="_kTAmMDeHEeGPyrZ5I3hMlA" target="_-jKLIDeFEeGPyrZ5I3hMlA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_HmF5UTeIEeGPyrZ5I3hMlA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HmF5UjeIEeGPyrZ5I3hMlA" points="[-17, -12, 67, 45]$[-67, -51, 17, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HmsWQDeIEeGPyrZ5I3hMlA" id="(0.05647840531561462,0.2857142857142857)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HmsWQTeIEeGPyrZ5I3hMlA" id="(0.83,0.684931506849315)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_Rk2pgDVlEeKoYLVLZgpRiw" type="PapyrusUMLClassDiagram" name="ClassDiagram Server" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_SeK3IDVlEeKoYLVLZgpRiw" type="2008" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SeMsUDVlEeKoYLVLZgpRiw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SeMsUTVlEeKoYLVLZgpRiw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SeMsUjVlEeKoYLVLZgpRiw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SeMsUzVlEeKoYLVLZgpRiw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SeMsVDVlEeKoYLVLZgpRiw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SeMsVTVlEeKoYLVLZgpRiw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cLIEoDVlEeKoYLVLZgpRiw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cLX8QDVlEeKoYLVLZgpRiw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cLX8QTVlEeKoYLVLZgpRiw" key="StereotypeList" value="FCM::RuleApplication"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cLX8QjVlEeKoYLVLZgpRiw" key="PropStereoDisplay" value="FCM::RuleApplication.containerRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cLX8QzVlEeKoYLVLZgpRiw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cLX8RDVlEeKoYLVLZgpRiw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SeNTYDVlEeKoYLVLZgpRiw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SeNTYTVlEeKoYLVLZgpRiw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SeNTYjVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SeNTYzVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SeNTZDVlEeKoYLVLZgpRiw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeNTZTVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SeNTZjVlEeKoYLVLZgpRiw" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_VGZdoDVlEeKoYLVLZgpRiw" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_4ZEZwHecEd6r18stFZxmFQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VGZdoTVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VGaEsDVlEeKoYLVLZgpRiw" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_TbIjUJYlEd6G9q9hwr11bw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VGaEsTVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VGarwDVlEeKoYLVLZgpRiw" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="ClientServerTraceTest.uml#_rrf74DVdEeKoYLVLZgpRiw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VGarwTVlEeKoYLVLZgpRiw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SeNTZzVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SeNTaDVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SeNTaTVlEeKoYLVLZgpRiw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeNTajVlEeKoYLVLZgpRiw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SeNTazVlEeKoYLVLZgpRiw" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SeNTbDVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SeNTbTVlEeKoYLVLZgpRiw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SeNTbjVlEeKoYLVLZgpRiw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeNTbzVlEeKoYLVLZgpRiw"/>
+ </children>
+ <element xmi:type="uml:Class" href="ClientServerTraceTest.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SeK3ITVlEeKoYLVLZgpRiw" x="176" y="95" width="266" height="203"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Rk2pgTVlEeKoYLVLZgpRiw"/>
+ <element xmi:type="uml:Package" href="ClientServerTraceTest.uml#_OGM88DLaEd2qeKRLMdIx_A"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_57mwQDclEeKAhIrFXfR8zQ" type="PapyrusUMLStateMachineDiagram" name="SmDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_57mwQTclEeKAhIrFXfR8zQ" type="2000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwQjclEeKAhIrFXfR8zQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwQzclEeKAhIrFXfR8zQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwRDclEeKAhIrFXfR8zQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwRTclEeKAhIrFXfR8zQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwRjclEeKAhIrFXfR8zQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwRzclEeKAhIrFXfR8zQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_57mwSDclEeKAhIrFXfR8zQ" type="2001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_57mwSTclEeKAhIrFXfR8zQ" width="592" height="14"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_57mwSjclEeKAhIrFXfR8zQ" type="2002">
+ <children xmi:type="notation:Shape" xmi:id="_57mwSzclEeKAhIrFXfR8zQ" type="3000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwTDclEeKAhIrFXfR8zQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwTTclEeKAhIrFXfR8zQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwTjclEeKAhIrFXfR8zQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwTzclEeKAhIrFXfR8zQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwUDclEeKAhIrFXfR8zQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwUTclEeKAhIrFXfR8zQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_57mwUjclEeKAhIrFXfR8zQ" source="RegionAnnotationKey">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_57mwUzclEeKAhIrFXfR8zQ" key="RegionZoneKey" value=""/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_57mwVDclEeKAhIrFXfR8zQ" type="3002">
+ <children xmi:type="notation:Shape" xmi:id="_66VCUDclEeKAhIrFXfR8zQ" type="6000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_66VpYDclEeKAhIrFXfR8zQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_66VpYTclEeKAhIrFXfR8zQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_66VpYjclEeKAhIrFXfR8zQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_66VpYzclEeKAhIrFXfR8zQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_66VpZDclEeKAhIrFXfR8zQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_66VpZTclEeKAhIrFXfR8zQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_66VpZjclEeKAhIrFXfR8zQ" type="6001">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_67AXwDclEeKAhIrFXfR8zQ" width="109" height="14"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_66WQcDclEeKAhIrFXfR8zQ" type="6002">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_66WQcTclEeKAhIrFXfR8zQ" y="14" width="109" height="74"/>
+ </children>
+ <element xmi:type="uml:State" href="ClientServerTraceTest.uml#_66D8kDclEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_66VCUTclEeKAhIrFXfR8zQ" x="159" y="46" width="109" height="88"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9gPUoDclEeKAhIrFXfR8zQ" type="8000" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9gP7sTclEeKAhIrFXfR8zQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9gP7sjclEeKAhIrFXfR8zQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9gQiwDclEeKAhIrFXfR8zQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9gQiwTclEeKAhIrFXfR8zQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9gQiwjclEeKAhIrFXfR8zQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9gQiwzclEeKAhIrFXfR8zQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9gQixDclEeKAhIrFXfR8zQ" type="8001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9gQixTclEeKAhIrFXfR8zQ" x="26" y="-11"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9gQixjclEeKAhIrFXfR8zQ" type="8002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9gQixzclEeKAhIrFXfR8zQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Pseudostate" href="ClientServerTraceTest.uml#_9f6kgDclEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9gP7sDclEeKAhIrFXfR8zQ" x="43" y="30"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_57mwVTclEeKAhIrFXfR8zQ"/>
+ </children>
+ <element xmi:type="uml:Region" href="ClientServerTraceTest.uml#_57WRkDclEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_57mwVjclEeKAhIrFXfR8zQ" width="592" height="245"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_57mwVzclEeKAhIrFXfR8zQ" y="14" width="592" height="245"/>
+ </children>
+ <element xmi:type="uml:StateMachine" href="ClientServerTraceTest.uml#_5Vd9UDclEeKAhIrFXfR8zQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_57mwWDclEeKAhIrFXfR8zQ" x="30" y="30" width="592" height="259"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_57mwWTclEeKAhIrFXfR8zQ"/>
+ <element xmi:type="uml:StateMachine" href="ClientServerTraceTest.uml#_5Vd9UDclEeKAhIrFXfR8zQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_8bHfoDclEeKAhIrFXfR8zQ" type="7000" source="_66VCUDclEeKAhIrFXfR8zQ" target="_66VCUDclEeKAhIrFXfR8zQ" smoothness="Normal" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8bItwDclEeKAhIrFXfR8zQ" visible="false" type="7001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8bItwTclEeKAhIrFXfR8zQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8bItwjclEeKAhIrFXfR8zQ" visible="false" type="7002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8bItwzclEeKAhIrFXfR8zQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8bItxDclEeKAhIrFXfR8zQ" visible="false" type="7003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8bItxTclEeKAhIrFXfR8zQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8bHfoTclEeKAhIrFXfR8zQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Transition" href="ClientServerTraceTest.uml#_8ZB08DclEeKAhIrFXfR8zQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8bHfojclEeKAhIrFXfR8zQ" points="[3, 1, 40, -51]$[65, 34, 102, -18]$[56, 94, 93, 42]$[-7, 103, 30, 51]$[-35, 56, 2, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8b9NIDclEeKAhIrFXfR8zQ" id="(0.9724770642201835,0.36363636363636365)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8b9NITclEeKAhIrFXfR8zQ" id="(0.6330275229357798,0.9545454545454546)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-wO84DclEeKAhIrFXfR8zQ" type="7000" source="_9gPUoDclEeKAhIrFXfR8zQ" target="_66VCUDclEeKAhIrFXfR8zQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-wPj8DclEeKAhIrFXfR8zQ" visible="false" type="7001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-wPj8TclEeKAhIrFXfR8zQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-wQLADclEeKAhIrFXfR8zQ" visible="false" type="7002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-wQLATclEeKAhIrFXfR8zQ"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-wQLAjclEeKAhIrFXfR8zQ" visible="false" type="7003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-wQLAzclEeKAhIrFXfR8zQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-wO84TclEeKAhIrFXfR8zQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Transition" href="ClientServerTraceTest.uml#_-v4XkDclEeKAhIrFXfR8zQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-wO84jclEeKAhIrFXfR8zQ" points="[10, 2, -77, -18]$[79, 14, -8, -6]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-xGfkDclEeKAhIrFXfR8zQ" id="(0.07339449541284404,0.1590909090909091)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.uml b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.uml
new file mode 100644
index 00000000000..d18b4fe9680
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.uml
@@ -0,0 +1,428 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Alloc="http://www.eclipse.org/papyrus/Alloc/1" xmlns:Cpp="http://papyrus/CppProfile/1" xmlns:FCM="http://papyrus/FCMProfile/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/Alloc/1 http://www.eclipse.org/papyrus/MARTE/1#//Alloc">
+ <uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="ClientServerTraceTest">
+ <packageImport xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:id="_Bc1WIFW4Ed63BrxiKsw-0Q">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:id="_rwBsMP7AEd6Zw96O-tCw7A">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/CORBA.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packageImport xmi:id="_7K0UkACUEd-PD8FdFs7bpA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_DISTRIBUTION/distribution.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:id="_Bb08YGpQEd-C-tMBtf3Npw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_MARTE/marte.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:id="__D5MwE2WEeGzNbfAXPgNLA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_TRACE/tracing.uml#_H-ZqYDKeEd-WprEKTCaiMA"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_LOqIEDLaEd2qeKRLMdIx_A" name="components">
+ <packagedElement xmi:type="uml:Package" xmi:id="_OGM88DLaEd2qeKRLMdIx_A" name="Server">
+ <packagedElement xmi:type="uml:Class" xmi:id="_oqZNUDLaEd2qeKRLMdIx_A" clientDependency="_YQqH0JYlEd6G9q9hwr11bw" name="CServer_impl" classifierBehavior="_5Vd9UDclEeKAhIrFXfR8zQ">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_4KiE8DLbEd2qeKRLMdIx_A" name="p" type="_cn-H0DLbEd2qeKRLMdIx_A" aggregation="composite"/>
+ <interfaceRealization xmi:id="_YQqH0JYlEd6G9q9hwr11bw" name="derived realization of ICompute" client="_oqZNUDLaEd2qeKRLMdIx_A" supplier="_cn-H0DLbEd2qeKRLMdIx_A" contract="_cn-H0DLbEd2qeKRLMdIx_A"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ML-4AKI5Ed6FqJCjEUrkqQ" name="add" specification="_TbIjUJYlEd6G9q9hwr11bw">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;a=&quot; &lt;&lt; a &lt;&lt; &quot; b=&quot; &lt;&lt; b &lt;&lt; &quot; a+b=&quot; &lt;&lt; a+b &lt;&lt; endl;
+return a+b;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_I1R3YAcDEeGnrLqQ0OQeAg" name="mult" specification="_4ZEZwHecEd6r18stFZxmFQ">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;a*b=&quot; &lt;&lt; a*b;
+return a*b;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_5Vd9UDclEeKAhIrFXfR8zQ" name="ServerStateMachine">
+ <region xmi:id="_57WRkDclEeKAhIrFXfR8zQ" name="Region1">
+ <transition xmi:id="_8ZB08DclEeKAhIrFXfR8zQ" name="Transition0" source="_66D8kDclEeKAhIrFXfR8zQ" target="_66D8kDclEeKAhIrFXfR8zQ"/>
+ <transition xmi:id="_-v4XkDclEeKAhIrFXfR8zQ" name="Transition1" source="_9f6kgDclEeKAhIrFXfR8zQ" target="_66D8kDclEeKAhIrFXfR8zQ"/>
+ <subvertex xmi:type="uml:State" xmi:id="_66D8kDclEeKAhIrFXfR8zQ" name="State0"/>
+ <subvertex xmi:type="uml:Pseudostate" xmi:id="_9f6kgDclEeKAhIrFXfR8zQ" name="Initial0"/>
+ </region>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_4ZEZwHecEd6r18stFZxmFQ" name="mult" method="_I1R3YAcDEeGnrLqQ0OQeAg">
+ <ownedParameter xmi:id="_nvpKUDVdEeKoYLVLZgpRiw" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_qgMSAB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nvup4DVdEeKoYLVLZgpRiw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nvvQ8DVdEeKoYLVLZgpRiw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nvwfEDVdEeKoYLVLZgpRiw" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_wbw4kB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nvy7UDVdEeKoYLVLZgpRiw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nvziYDVdEeKoYLVLZgpRiw" value="1"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_nv1XkDVdEeKoYLVLZgpRiw" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nv3z0DVdEeKoYLVLZgpRiw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nv4a4DVdEeKoYLVLZgpRiw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_TbIjUJYlEd6G9q9hwr11bw" name="add" method="_ML-4AKI5Ed6FqJCjEUrkqQ">
+ <ownedParameter xmi:id="_TbZCAJYlEd6G9q9hwr11bw" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TbdTcJYlEd6G9q9hwr11bw" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_TbkoMJYlEd6G9q9hwr11bw" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_rrf74DVdEeKoYLVLZgpRiw" name="check">
+ <ownedParameter xmi:id="_4UNv4DVdEeKoYLVLZgpRiw" name="write">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4UO-ADVdEeKoYLVLZgpRiw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4UPlEDVdEeKoYLVLZgpRiw" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_9OJPEDVkEeKoYLVLZgpRiw" name="testOp">
+ <ownedParameter xmi:id="_Br-FQDVlEeKoYLVLZgpRiw" name="testPar">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_6ERa0DW2EeKyT6LlKoWJIA" name="length">
+ <ownedParameter xmi:id="_FfLX4DW3EeKyT6LlKoWJIA" name="p1" type="_krMkcDW2EeKyT6LlKoWJIA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FfN0IDW3EeKyT6LlKoWJIA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FfObMDW3EeKyT6LlKoWJIA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Tp4n8DLaEd2qeKRLMdIx_A" name="Interfaces">
+ <ownedComment xmi:id="_TDDBoDeEEeGPyrZ5I3hMlA" annotatedElement="_cn-H0DLbEd2qeKRLMdIx_A">
+ <body>This interface contains services that are used by the client and provided by the server component</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_cn-H0DLbEd2qeKRLMdIx_A" name="ICompute">
+ <ownedOperation xmi:id="_DGs6wDLgEd28fJKJJnUaeQ" name="add">
+ <ownedParameter xmi:id="_DGs6wTLgEd28fJKJJnUaeQ" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGs6wzLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGs6wjLgEd28fJKJJnUaeQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_DGs6xDLgEd28fJKJJnUaeQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ <ownedParameter xmi:id="_DGs6xTLgEd28fJKJJnUaeQ" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGs6xzLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGs6xjLgEd28fJKJJnUaeQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_DGs6yDLgEd28fJKJJnUaeQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ <ownedParameter xmi:id="_DGs6yTLgEd28fJKJJnUaeQ" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGs6yzLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGs6yjLgEd28fJKJJnUaeQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_DGs6zDLgEd28fJKJJnUaeQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_L8EY8DLgEd28fJKJJnUaeQ" name="mult" isAbstract="true">
+ <ownedParameter xmi:id="_L8EY8TLgEd28fJKJJnUaeQ" name="a">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_qgMSAB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L8EY8zLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L8EY8jLgEd28fJKJJnUaeQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_L8EY9DLgEd28fJKJJnUaeQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ <ownedParameter xmi:id="_L8EY9TLgEd28fJKJJnUaeQ" name="b">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_wbw4kB6SEd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L8EY9zLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L8EY9jLgEd28fJKJJnUaeQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_L8EY-DLgEd28fJKJJnUaeQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ <ownedParameter xmi:id="_L8EY-TLgEd28fJKJJnUaeQ" name="res" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L8EY-zLgEd28fJKJJnUaeQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L8EY-jLgEd28fJKJJnUaeQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_L8EY_DLgEd28fJKJJnUaeQ">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_rrbqcDVdEeKoYLVLZgpRiw" name="check" isAbstract="true">
+ <ownedParameter xmi:id="_0xTp0DVdEeKoYLVLZgpRiw" name="write">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_6DewoDW2EeKyT6LlKoWJIA" name="length">
+ <ownedParameter xmi:id="_AP4BcDW3EeKyT6LlKoWJIA" name="p1" type="_krMkcDW2EeKyT6LlKoWJIA"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:DataType" xmi:id="_krMkcDW2EeKyT6LlKoWJIA" name="Point">
+ <ownedAttribute xmi:id="_m0WCQDW2EeKyT6LlKoWJIA" name="x" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pOAoUDW2EeKyT6LlKoWJIA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pOB2cDW2EeKyT6LlKoWJIA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_pOESsDW2EeKyT6LlKoWJIA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_yJIJMDW2EeKyT6LlKoWJIA" name="y" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yd44QDW2EeKyT6LlKoWJIA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yd6GYDW2EeKyT6LlKoWJIA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_yd77kDW2EeKyT6LlKoWJIA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_etOZkDLaEd2qeKRLMdIx_A" name="Client">
+ <ownedComment xmi:id="_b5cakDeEEeGPyrZ5I3hMlA" annotatedElement="_34FjAPx3Ed6O2oOTPfeAMA">
+ <body>The client component inherits a specific port from the Cstart componen type: the port &quot;start&quot; which provides interface IRunnable containing a single operation &quot;run&quot;. By implementing this operation, the client gets initial control, comparable to a function &quot;main&quot; in classificla programming languages. </body>
+ </ownedComment>
+ <ownedComment xmi:id="_H2U_oDeGEeGPyrZ5I3hMlA">
+ <body>This realization relationship has been added automatically by Qompass, it is derived from the fact that class CClient_impl implements the port &quot;start&quot; which provides the interface &quot;IStart&quot;</body>
+ </ownedComment>
+ <ownedComment xmi:id="_fBRcQDeGEeGPyrZ5I3hMlA" annotatedElement="_IfjoETLbEd2qeKRLMdIx_A">
+ <body>The operation &quot;run&quot; (not the associated behavior) has been added automatically by Qompass in order to implement the operations of interfaces provided by ports, in this case of the operations of the &quot;IStart&quot; interface. It would be tedious to manually copy operations from an interface, as it would imply copying the complete signature with all parameters. The component developper has to provide a suitable behavior. A validation rule verifies if operations without behavior exist.</body>
+ </ownedComment>
+ <ownedComment xmi:id="_kStEMDeHEeGPyrZ5I3hMlA">
+ <annotatedElement xmi:type="uml:Interface" href="pathmap://QML_CORE/SystemInterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <annotatedElement xmi:type="uml:Interface" href="pathmap://QML_CORE/SystemInterfaces.uml#_BHFPQJsqEd61Eo3nmu3JhQ"/>
+ <body>These two interface are part of the &quot;BasicCalls&quot; Qompass model library. The IStart interface is &quot;special&quot;, since the Qompass model transformations check for it existance in order to pass the &quot;main&quot; control to this component. A validation rule checks, if exactly one component instance provides this interface via the &quot;start&quot; port.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IfjoETLbEd2qeKRLMdIx_A" clientDependency="_ZmdDkEdDEeGxo4rn9hBAOQ" name="CClient_impl">
+ <generalization xmi:id="_34FjAPx3Ed6O2oOTPfeAMA">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_DtWn4DLcEd2qeKRLMdIx_A" name="q" type="_cn-H0DLbEd2qeKRLMdIx_A" aggregation="composite"/>
+ <interfaceRealization xmi:id="_ZmdDkEdDEeGxo4rn9hBAOQ" name="derived realization of IStart" client="_IfjoETLbEd2qeKRLMdIx_A">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/SystemInterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <contract href="pathmap://QML_CORE/SystemInterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_yXNVoKF4Ed6FqJCjEUrkqQ" name="run" specification="_ZnGj0EdDEeGxo4rn9hBAOQ">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;call via port q: add (2, 3);&quot; &lt;&lt; endl;
+for (int i=0; i&lt;20; i++) {
+ cout &lt;&lt; &quot;result: &quot; &lt;&lt; q->add (2, (i+3)) &lt;&lt; endl;
+ usleep((i+10)*5*1000);
+ cout &lt;&lt; &quot;result: &quot; &lt;&lt; q->mult (3.0, 7.0) &lt;&lt; endl;
+ usleep(20*1000);
+ testOp(i*2);
+ usleep(30*1000);
+}</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_yVALQDclEeKAhIrFXfR8zQ" name="testOp" specification="_Qzp7gDclEeKAhIrFXfR8zQ">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;This is a test operation&quot; &lt;&lt; endl;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_ZnGj0EdDEeGxo4rn9hBAOQ" name="run" method="_yXNVoKF4Ed6FqJCjEUrkqQ"/>
+ <ownedOperation xmi:id="_Qzp7gDclEeKAhIrFXfR8zQ" name="testOp" method="_yVALQDclEeKAhIrFXfR8zQ">
+ <ownedParameter xmi:id="_rXu4UDc_EeKPle9CbXIcpQ" name="j">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_XLQjUDLiEd2RVeNawwNNzg" name="System">
+ <ownedComment xmi:id="_s5iFMDeJEeGPyrZ5I3hMlA" annotatedElement="_bYJagDLiEd2RVeNawwNNzg">
+ <body>A composite class in which two attributes represent the component instances client and server, respectively. The assembly between ports is done on this level.
+A single class represents the complete application, typically called &quot;System&quot; or &quot;System_impl&quot;. Such a class provides the information to calculate a tree of instance specifications, a so-called deployment plan. Check out the context menu. can be generated from the </body>
+ </ownedComment>
+ <ownedComment xmi:id="_Vcf9kDeKEeGPyrZ5I3hMlA" annotatedElement="_QO2s0E2rEeGl8qrc8BM7vA">
+ <body>This connection between ports is stereotyped. The &quot;connector&quot; provides information which specific interaction component is responsible for realising this connection. The interaction component is part of an Qompass model library. Select the connection and check out the Qompass pop &quot;Show/choose connector type or implementation&quot;. In this case an group of implementations has been chosen, which contains a socket connection in case of distribution and a direct connection, if co-localized</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_bYJagDLiEd2RVeNawwNNzg" name="System_impl">
+ <ownedAttribute xmi:id="_gV1cgDLiEd2RVeNawwNNzg" name="server" type="_oqZNUDLaEd2qeKRLMdIx_A" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:id="_i-I7gDLiEd2RVeNawwNNzg" name="client" type="_IfjoETLbEd2qeKRLMdIx_A" isUnique="false" aggregation="composite"/>
+ <ownedConnector xmi:id="_QO2s0E2rEeGl8qrc8BM7vA" name="qp_connector">
+ <end xmi:id="_QO3T4E2rEeGl8qrc8BM7vA" partWithPort="_i-I7gDLiEd2RVeNawwNNzg" role="_DtWn4DLcEd2qeKRLMdIx_A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QO3T4k2rEeGl8qrc8BM7vA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QO3T4U2rEeGl8qrc8BM7vA" value="1"/>
+ </end>
+ <end xmi:id="_QO5wIE2rEeGl8qrc8BM7vA" partWithPort="_gV1cgDLiEd2RVeNawwNNzg" role="_4KiE8DLbEd2qeKRLMdIx_A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QO5wIk2rEeGl8qrc8BM7vA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QO5wIU2rEeGl8qrc8BM7vA" value="1"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_v3fMgDLiEd2RVeNawwNNzg" name="platform">
+ <ownedComment xmi:id="_ZWJ6QDeLEeGPyrZ5I3hMlA" annotatedElement="__1PHIMnhEeCMCo5Ox2CNmg">
+ <body>The hardware architecture is also defined by means of a composite class (comparable to the software architecture). The types (NodeA and NodeB) can be stereotyped with information about the used target platform (FCM stereotype target). As for software architecture, instances specification for nodes are derived from this class. Use &quot;Qompass: create platform definition&quot; in the context menu.</body>
+ </ownedComment>
+ <ownedComment xmi:id="_2vkEQDeLEeGPyrZ5I3hMlA" annotatedElement="_eFh10MniEeCMCo5Ox2CNmg">
+ <body>The physical connection between two nodes is represented by a UML connector. Currently, this information is not evaluated by Qompass, but it is planned to analyze for instance whether the throughput (specified by means of MARTE) is sufficient with requirements of the software</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Node" xmi:id="_zY9vMDLiEd2RVeNawwNNzg" name="MonoNode"/>
+ <packagedElement xmi:type="uml:Node" xmi:id="_MxayMP_BEd6628OhKk_dpg" name="NodeA"/>
+ <packagedElement xmi:type="uml:Node" xmi:id="_NF3YMP_BEd6628OhKk_dpg" name="NodeB"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="__1PHIMnhEeCMCo5Ox2CNmg" name="HWArchitectureDist">
+ <ownedAttribute xmi:id="_RbUNAMniEeCMCo5Ox2CNmg" name="nodeA" visibility="public" type="_MxayMP_BEd6628OhKk_dpg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UjRccMniEeCMCo5Ox2CNmg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UkfkcMniEeCMCo5Ox2CNmg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_Ul-LIMniEeCMCo5Ox2CNmg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_R5FuIMniEeCMCo5Ox2CNmg" name="nodeB" visibility="public" type="_NF3YMP_BEd6628OhKk_dpg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VzfHIMniEeCMCo5Ox2CNmg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_V1Is8MniEeCMCo5Ox2CNmg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_V3LUUMniEeCMCo5Ox2CNmg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:id="_eFh10MniEeCMCo5Ox2CNmg" name="Connector0">
+ <end xmi:id="_eFic4MniEeCMCo5Ox2CNmg" role="_RbUNAMniEeCMCo5Ox2CNmg"/>
+ <end xmi:id="_eFjD8MniEeCMCo5Ox2CNmg" role="_R5FuIMniEeCMCo5Ox2CNmg"/>
+ </ownedConnector>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_M1a_8MniEeCMCo5Ox2CNmg" name="HWArchitectureMonolithic">
+ <ownedAttribute xmi:id="_QgKzYMniEeCMCo5Ox2CNmg" name="monoNode" visibility="public" type="_zY9vMDLiEd2RVeNawwNNzg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XijRAMniEeCMCo5Ox2CNmg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XkfxwMniEeCMCo5Ox2CNmg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_XlIq8MniEeCMCo5Ox2CNmg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_fKDWEDeMEeGPyrZ5I3hMlA" name="HWArchitectureDistPlatform">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_fKEkMDeMEeGPyrZ5I3hMlA" name="nodeA" classifier="_MxayMP_BEd6628OhKk_dpg"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_fKFyUDeMEeGPyrZ5I3hMlA" name="nodeB" classifier="_NF3YMP_BEd6628OhKk_dpg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_gFWgsDeMEeGPyrZ5I3hMlA" name="HWArchitectureMonolithicPlatform">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_gFXHwDeMEeGPyrZ5I3hMlA" name="monoNode" classifier="_zY9vMDLiEd2RVeNawwNNzg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_234GEDLiEd2RVeNawwNNzg" name="deployment">
+ <ownedComment xmi:id="_ToVjMDeIEeGPyrZ5I3hMlA" annotatedElement="_QT6okKDjEd-rLNbSWf1QuA">
+ <body>A deployment configuration that activates the tracing container rule which will provide OTF tracing. The deployment configuration is linked with the &quot;monolithic&quot; deployment plan</body>
+ </ownedComment>
+ <ownedComment xmi:id="_f3lHQDeIEeGPyrZ5I3hMlA" annotatedElement="_5Z7MEDLiEd2RVeNawwNNzg">
+ <body> deployment plan (= set of instances along with their configuration and allocation) &quot;monolithic&quot;. All instances are allocated to node instance &quot;monoNode&quot;. Check out the node allocation with the pop-up &quot;Qompass: allocate to node&quot;.
+Initiate the deployment and code generation with the pop-up &quot;Qompass: generate deployment model and code from plan&quot;.</body>
+ </ownedComment>
+ <ownedComment xmi:id="_L01VMDeJEeGPyrZ5I3hMlA" annotatedElement="_bBSxQP_BEd6628OhKk_dpg">
+ <body> In this case, the deployment plan forsees allocating the client to nodeA and the server to nodeB. Note that the deployment transformations will automatically detect that a distributed connector is required, in this case a socket (see composite diagram System)</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Package" xmi:id="_5Z7MEDLiEd2RVeNawwNNzg" name="monolithic">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_L9xhwDLjEd2RVeNawwNNzg" clientDependency="_1Lv7AE0qEeGl_syZE5iOXA" name="mySystem" classifier="_bYJagDLiEd2RVeNawwNNzg">
+ <slot xmi:id="_TdCvsDLjEd2RVeNawwNNzg" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_fw8xUDLjEd2RVeNawwNNzg" name="" instance="_MyQ5wDLjEd2RVeNawwNNzg"/>
+ </slot>
+ <slot xmi:id="_YhikUDLjEd2RVeNawwNNzg" definingFeature="_i-I7gDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_lAoiQDLjEd2RVeNawwNNzg" instance="_P3ovQDLjEd2RVeNawwNNzg"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_MyQ5wDLjEd2RVeNawwNNzg" name="mySystem.server" classifier="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_P3ovQDLjEd2RVeNawwNNzg" name="mySystem.client" classifier="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_1Lv7AE0qEeGl_syZE5iOXA" name="allocate to monoNode" client="_L9xhwDLjEd2RVeNawwNNzg" supplier="_gFXHwDeMEeGPyrZ5I3hMlA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_bBSxQP_BEd6628OhKk_dpg" name="distributed">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_bBdwYP_BEd6628OhKk_dpg" name="mainInstance" classifier="_bYJagDLiEd2RVeNawwNNzg">
+ <slot xmi:id="_bBpWkP_BEd6628OhKk_dpg" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_bBqksP_BEd6628OhKk_dpg" instance="_bBnhYP_BEd6628OhKk_dpg"/>
+ </slot>
+ <slot xmi:id="_bBuPEP_BEd6628OhKk_dpg" definingFeature="_i-I7gDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_bBxSYP_BEd6628OhKk_dpg" instance="_bBry0P_BEd6628OhKk_dpg"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_bBnhYP_BEd6628OhKk_dpg" clientDependency="_zjuk8DeMEeGPyrZ5I3hMlA" name="mainInstance.server" classifier="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_bBry0P_BEd6628OhKk_dpg" clientDependency="_zMKZgDeMEeGPyrZ5I3hMlA" name="mainInstance.client" classifier="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_zMKZgDeMEeGPyrZ5I3hMlA" name="allocate to nodeA" client="_bBry0P_BEd6628OhKk_dpg" supplier="_fKEkMDeMEeGPyrZ5I3hMlA"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_zjuk8DeMEeGPyrZ5I3hMlA" name="allocate to nodeB" client="_bBnhYP_BEd6628OhKk_dpg" supplier="_fKFyUDeMEeGPyrZ5I3hMlA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_QT6okKDjEd-rLNbSWf1QuA" name="ConfigTraceMono"/>
+ </packagedElement>
+ <profileApplication xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/StandardL2.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_GcC0cAHtEd6HSdiss9GQ0A">
+ <eAnnotations xmi:id="_Gd1kMAHtEd6HSdiss9GQ0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://papyrus/CppProfile/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PapyrusCpp_PROFILES/PapyrusCpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:id="_z1TwgFW3Ed63BrxiKsw-0Q">
+ <eAnnotations xmi:id="_z2GasFW3Ed63BrxiKsw-0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://papyrus/FCMProfile/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_1GtD8E0fEeG_H4ME7SR4KA">
+ <eAnnotations xmi:id="_1RA2gE0fEeG_H4ME7SR4KA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ </uml:Model>
+ <FCM:DerivedElement xmi:id="_B9o7sP6yEd6Ie_kieu_3CQ">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_DWb6oP6yEd6Ie_kieu_3CQ" base_Element="_TbIjUJYlEd6G9q9hwr11bw" source="_DGs6wDLgEd28fJKJJnUaeQ"/>
+ <FCM:DerivedElement xmi:id="_DXK6cP6yEd6Ie_kieu_3CQ" base_Element="_4ZEZwHecEd6r18stFZxmFQ" source="_L8EY8DLgEd28fJKJJnUaeQ"/>
+ <FCM:RuleApplication xmi:id="_DWIYoP6yEd6Ie_kieu_3CQ" base_Class="_oqZNUDLaEd2qeKRLMdIx_A">
+ <containerRule href="pathmap://QML_TRACE/tracing.uml#_RWQC8PwkEeGWn-a9PUOYcA"/>
+ <containerRule href="pathmap://QML_TRACE/tracing.uml#_NtAukCqLEeKGrchWittz_g"/>
+ <propagateRule>false</propagateRule>
+ <interceptor href="pathmap://QML_TRACE/tracing.uml#_35od4DKrEd-z5o2wSoJ16A"/>
+ </FCM:RuleApplication>
+ <FCM:Port xmi:id="_GofhQP6yEd6Ie_kieu_3CQ" base_Port="_4KiE8DLbEd2qeKRLMdIx_A">
+ <kind href="pathmap://QML_CORE/core.uml#_wySlkFRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:Connector xmi:id="_K2_iAP6yEd6Ie_kieu_3CQ"/>
+ <FCM:DeploymentPlan xmi:id="_6dGQgP6zEd6Ie_kieu_3CQ" mainInstance="_L9xhwDLjEd2RVeNawwNNzg" base_Package="_5Z7MEDLiEd2RVeNawwNNzg"/>
+ <FCM:DerivedElement xmi:id="_RwGb8P6_Ed6Zw96O-tCw7A" source="_DGs6wDLgEd28fJKJJnUaeQ"/>
+ <FCM:DerivedElement xmi:id="_RxVyEP6_Ed6Zw96O-tCw7A" source="_L8EY8DLgEd28fJKJJnUaeQ"/>
+ <Cpp:CppInclude xmi:id="_7SAnAP76Ed6Zw96O-tCw7A" body="#include &lt;unistd.h>&#xA;#include &lt;iostream>&#xA;using namespace std;" base_class="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <Cpp:CppInclude xmi:id="_Sa4nEP77Ed6Zw96O-tCw7A" body="#include &lt;iostream>&#xA;using namespace std;" base_class="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <FCM:DeploymentPlan xmi:id="_bBdJUP_BEd6628OhKk_dpg" mainInstance="_bBdwYP_BEd6628OhKk_dpg" base_Package="_bBSxQP_BEd6628OhKk_dpg"/>
+ <FCM:Connector xmi:id="_Tm9v0ACUEd-PD8FdFs7bpA"/>
+ <FCM:DeploymentPlan xmi:id="_lEueYGLEEd-seu3qyZgHfg"/>
+ <FCM:DeploymentPlan xmi:id="_u_ACgGSuEd-dQdK1-7wIFg"/>
+ <FCM:DeploymentPlan xmi:id="_YK67AGTgEd-rCOWJcspHOA"/>
+ <FCM:Port xmi:id="_IWQqoP6yEd6Ie_kieu_3CQ" base_Port="_DtWn4DLcEd2qeKRLMdIx_A">
+ <kind href="pathmap://QML_CORE/core.uml#_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:ContainerRule xmi:id="_lNrDwH4HEd-rD-b0gnx-AQ"/>
+ <FCM:Configuration xmi:id="_RM9kQH8UEd-7Bsdl4VhuEw" deploymentPlan="_6dGQgP6zEd6Ie_kieu_3CQ" base_Package="_BJc50H8TEd-7Bsdl4VhuEw">
+ <configOptions href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:Configuration>
+ <FCM:Configuration xmi:id="_Y10_QKDjEd-rLNbSWf1QuA" base_Class="_QT6okKDjEd-rLNbSWf1QuA" deploymentPlan="_6dGQgP6zEd6Ie_kieu_3CQ">
+ <configOptions href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:Configuration>
+ <FCM:DerivedElement xmi:id="_1E0nUKFhEd-AoOVE_odazw"/>
+ <FCM:Target xmi:id="_Et5N4LqQEd-BObGGoBbehA" base_Node="_MxayMP_BEd6628OhKk_dpg">
+ <targetArch href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ </FCM:Target>
+ <FCM:Target xmi:id="_HvbFMLqQEd-BObGGoBbehA" base_Node="_zY9vMDLiEd2RVeNawwNNzg">
+ <targetArch href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ </FCM:Target>
+ <FCM:Target xmi:id="_J6gcsLqQEd-BObGGoBbehA" base_Node="_NF3YMP_BEd6628OhKk_dpg">
+ <targetArch href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ </FCM:Target>
+ <FCM:Connector xmi:id="_cAkqIMKnEd-LE5cHpAvxBg">
+ <connector xmi:type="FCM:ConnectorImplGroup" href="pathmap://QML_DISTRIBUTION/distribution.uml#_DBP7QMKmEd-hj59jYY3RZQ"/>
+ </FCM:Connector>
+ <FCM:DerivedElement xmi:id="_ZnZewEdDEeGxo4rn9hBAOQ" base_Element="_ZnGj0EdDEeGxo4rn9hBAOQ">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <Alloc:Allocate xmi:id="_hgh4IE0rEeGl_syZE5iOXA" base_Abstraction="_1Lv7AE0qEeGl_syZE5iOXA"/>
+ <Alloc:Allocate xmi:id="_iwbZwE0rEeGl_syZE5iOXA" base_Abstraction="_zMKZgDeMEeGPyrZ5I3hMlA"/>
+ <Alloc:Allocate xmi:id="_juiAwE0rEeGl_syZE5iOXA" base_Abstraction="_zjuk8DeMEeGPyrZ5I3hMlA"/>
+ <FCM:Connector xmi:id="_UKqbEE2rEeGl8qrc8BM7vA" base_Connector="_QO2s0E2rEeGl8qrc8BM7vA">
+ <ic href="pathmap://QML_DISTRIBUTION/distribution.uml#_lpYxME2qEeGl8qrc8BM7vA"/>
+ </FCM:Connector>
+ <FCM:DerivedElement xmi:id="_rrmpkDVdEeKoYLVLZgpRiw" base_Element="_rrf74DVdEeKoYLVLZgpRiw" source="_rrbqcDVdEeKoYLVLZgpRiw"/>
+ <FCM:DerivedElement xmi:id="_6EbL0DW2EeKyT6LlKoWJIA" base_Element="_6ERa0DW2EeKyT6LlKoWJIA" source="_6DewoDW2EeKyT6LlKoWJIA"/>
+ <FCM:RuleApplication xmi:id="__bC_ADcmEeKAhIrFXfR8zQ" base_Class="_IfjoETLbEd2qeKRLMdIx_A">
+ <containerRule href="pathmap://QML_TRACE/tracing.uml#_NtAukCqLEeKGrchWittz_g"/>
+ <propagateRule>false</propagateRule>
+ </FCM:RuleApplication>
+</xmi:XMI>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.di b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.di
new file mode 100644
index 00000000000..8ead0589857
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.di
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmi:id="_M_WAwPcXEd-KM6l7lmIPkw">
+ <pageList xmi:id="_M_WAwfcXEd-KM6l7lmIPkw">
+ <availablePage xmi:id="_M_WAwvcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerConsumer.notation#_UstOsM__Ed-TP80eVS-2Rg"/>
+ </availablePage>
+ <availablePage xmi:id="_M_WAxPcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerConsumer.notation#_7kc7YM__Ed-TP80eVS-2Rg"/>
+ </availablePage>
+ <availablePage xmi:id="_M_WAxfcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerConsumer.notation#_o6ZisNCREd-hqYHBJe17_Q"/>
+ </availablePage>
+ <availablePage xmi:id="_U1docPcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerConsumer.notation#_U1UegPcXEd-KM6l7lmIPkw"/>
+ </availablePage>
+ <availablePage xmi:id="_V5fVYP8nEd-hWJO6cv3VJA">
+ <emfPageIdentifier href="ProducerConsumer.notation#_V5euUP8nEd-hWJO6cv3VJA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ProducerConsumer.notation#_0rwpYDefEeGPyrZ5I3hMlA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="ProducerConsumer.notation#_HvdK0FZYEeKKZs15rvNNjA"/>
+ </availablePage>
+ </pageList>
+ <sashModel xmi:id="_M_WAxvcXEd-KM6l7lmIPkw" currentSelection="_M_WAyPcXEd-KM6l7lmIPkw">
+ <windows xmi:id="_M_WAx_cXEd-KM6l7lmIPkw">
+ <children xsi:type="di:TabFolder" xmi:id="_M_WAyPcXEd-KM6l7lmIPkw">
+ <children xmi:id="_M_WAyfcXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerConsumer.notation#_UstOsM__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:id="_M_WAy_cXEd-KM6l7lmIPkw">
+ <emfPageIdentifier href="ProducerConsumer.notation#_7kc7YM__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ProducerConsumer.notation#_U1UegPcXEd-KM6l7lmIPkw"/>
+ </children>
+ <children xmi:id="_V5fVYf8nEd-hWJO6cv3VJA">
+ <emfPageIdentifier href="ProducerConsumer.notation#_V5euUP8nEd-hWJO6cv3VJA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ProducerConsumer.notation#_0rwpYDefEeGPyrZ5I3hMlA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ProducerConsumer.notation#_o6ZisNCREd-hqYHBJe17_Q"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="ProducerConsumer.notation#_HvdK0FZYEeKKZs15rvNNjA"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.notation b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.notation
new file mode 100644
index 00000000000..afa79ec196e
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.notation
@@ -0,0 +1,1090 @@
+<?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:Cpp="http://papyrus/CppProfile/1" xmlns:FCM="http://papyrus/FCMProfile/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_UstOsM__Ed-TP80eVS-2Rg" type="CompositeStructure" name="PushConsumer" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_VT2HMM__Ed-TP80eVS-2Rg" type="2073" fontName="" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VT2HMs__Ed-TP80eVS-2Rg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VT2uQM__Ed-TP80eVS-2Rg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VT2uQc__Ed-TP80eVS-2Rg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VT2uQs__Ed-TP80eVS-2Rg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VT2uQ8__Ed-TP80eVS-2Rg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VT2uRM__Ed-TP80eVS-2Rg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VT2uRc__Ed-TP80eVS-2Rg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VT2uRs__Ed-TP80eVS-2Rg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VT2uR8__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XgvckM__Ed-TP80eVS-2Rg" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XgwDoM__Ed-TP80eVS-2Rg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XgwDoc__Ed-TP80eVS-2Rg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XgwDos__Ed-TP80eVS-2Rg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XgwDo8__Ed-TP80eVS-2Rg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XgwqsM__Ed-TP80eVS-2Rg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgwqsc__Ed-TP80eVS-2Rg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Dym0EJZ7EeCiU5xXzp1cKQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UDcT4FZ3EeK5f41mmHszag" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UDc68FZ3EeK5f41mmHszag" key="StereotypeList" value="MARTE::MARTE_DesignModel::GCM::FlowPort,FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UDc68VZ3EeK5f41mmHszag" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UDc68lZ3EeK5f41mmHszag" key="PropStereoDisplay" value="FCM::Port.kind"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UDc681Z3EeK5f41mmHszag" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xgwqss__Ed-TP80eVS-2Rg" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xgwqs8__Ed-TP80eVS-2Rg" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XgwqtM__Ed-TP80eVS-2Rg" type="6029">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fex2IFZ0EeK5f41mmHszag" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RrgzMFZ3EeK5f41mmHszag" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RrgzMVZ3EeK5f41mmHszag" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RrgzMlZ3EeK5f41mmHszag" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RrgzM1Z3EeK5f41mmHszag" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RrgzNFZ3EeK5f41mmHszag" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Xgwqtc__Ed-TP80eVS-2Rg" x="-62" y="-65"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Xgvckc__Ed-TP80eVS-2Rg" x="-10" y="38"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VT2HMc__Ed-TP80eVS-2Rg" x="144" y="36" width="172" height="87"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XfxXsDecEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xgz5gDecEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgz5gTecEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xgz5gjecEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgz5gzecEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Xgz5hDecEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Xgz5hTecEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Xgz5hjecEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_XfnmsDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XfxXsTecEeGPyrZ5I3hMlA" x="351" y="36" width="163" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gpzeUDecEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gp0FYDecEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gp0FYTecEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gp0FYjecEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gp0FYzecEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gp0FZDecEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gp0FZTecEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gp0FZjecEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_gpptUDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gpzeUTecEeGPyrZ5I3hMlA" x="63" y="144" width="451"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_UstOsc__Ed-TP80eVS-2Rg"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_OGM88DLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_fsWXkDecEeGPyrZ5I3hMlA" type="4002" source="_XfxXsDecEeGPyrZ5I3hMlA" target="_VT2HMM__Ed-TP80eVS-2Rg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_fsWXkTecEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fsWXkjecEeGPyrZ5I3hMlA" points="[-1, -3, 19, 74]$[4, -33, 24, 44]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fsndUDecEeGPyrZ5I3hMlA" id="(0.3893805309734513,0.05)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_l-KT4DecEeGPyrZ5I3hMlA" type="4002" source="_gpzeUDecEeGPyrZ5I3hMlA" target="_XgvckM__Ed-TP80eVS-2Rg" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_l-KT4TecEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_l-KT4jecEeGPyrZ5I3hMlA" points="[-17, -2, -29, 63]$[-17, -62, -29, 3]$[9, -62, -3, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l-cAsDecEeGPyrZ5I3hMlA" id="(0.14832535885167464,0.03333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l-cAsTecEeGPyrZ5I3hMlA" id="(0.15,0.35)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_7kc7YM__Ed-TP80eVS-2Rg" type="CompositeStructure" name="PullConsumer" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_8LSR4M__Ed-TP80eVS-2Rg" type="2073" fontName="" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LSR4s__Ed-TP80eVS-2Rg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LSR48__Ed-TP80eVS-2Rg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LS48M__Ed-TP80eVS-2Rg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LS48c__Ed-TP80eVS-2Rg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8LS48s__Ed-TP80eVS-2Rg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8LS488__Ed-TP80eVS-2Rg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HIdDoJZ9EeCiU5xXzp1cKQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HT--MJZ9EeCiU5xXzp1cKQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HT--MZZ9EeCiU5xXzp1cKQ" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HT--MpZ9EeCiU5xXzp1cKQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HT--M5Z9EeCiU5xXzp1cKQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HT--NJZ9EeCiU5xXzp1cKQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8LS49M__Ed-TP80eVS-2Rg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8LS49c__Ed-TP80eVS-2Rg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8LS49s__Ed-TP80eVS-2Rg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ytK8IP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" gradient="8421504, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ytLjMP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ytLjMf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ytLjMv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ytLjM_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ytMKQP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ytMKQf8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sZ6LcFZWEeKKZs15rvNNjA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sogoIFZWEeKKZs15rvNNjA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sogoIVZWEeKKZs15rvNNjA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sogoIlZWEeKKZs15rvNNjA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sogoI1ZWEeKKZs15rvNNjA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sohPMFZWEeKKZs15rvNNjA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ytMKQv8nEd-hWJO6cv3VJA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-iwEgFZ0EeK5f41mmHszag" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-o9aMFZ0EeK5f41mmHszag" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ytMKQ_8nEd-hWJO6cv3VJA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ytMKRP8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ytMKRf8nEd-hWJO6cv3VJA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ytK8If8nEd-hWJO6cv3VJA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_t6X3UJaMEeCbgbUO5qahhA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6ZFcJaMEeCbgbUO5qahhA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6ZFcZaMEeCbgbUO5qahhA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6ZsgJaMEeCbgbUO5qahhA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6ZsgZaMEeCbgbUO5qahhA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t6ZsgpaMEeCbgbUO5qahhA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_t6Zsg5aMEeCbgbUO5qahhA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wOa9kJaMEeCbgbUO5qahhA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SS_KQFZ0EeK5f41mmHszag" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SS_xUFZ0EeK5f41mmHszag" key="StereotypeList" value="MARTE::MARTE_DesignModel::GCM::FlowPort,FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SS_xUVZ0EeK5f41mmHszag" key="PropStereoDisplay" value="FCM::Port.kind,FCM::Port.requiredInterface"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SS_xUlZ0EeK5f41mmHszag" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SS_xU1Z0EeK5f41mmHszag" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t6ZshJaMEeCbgbUO5qahhA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__Cf7kFZ0EeK5f41mmHszag" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__K9UAFZ0EeK5f41mmHszag" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t6ZshZaMEeCbgbUO5qahhA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t6aTkJaMEeCbgbUO5qahhA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t6aTkZaMEeCbgbUO5qahhA" x="-8" y="45"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t6X3UZaMEeCbgbUO5qahhA" x="-10" y="72"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JxylQFZ0EeK5f41mmHszag" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JxylQVZ0EeK5f41mmHszag" showTitle="true"/>
+ <element xmi:type="Cpp:CppInclude" href="ProducerConsumer.uml#_11OtwPcaEd-KM6l7lmIPkw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JxylQlZ0EeK5f41mmHszag"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JxzMUFZ0EeK5f41mmHszag" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JxzMUVZ0EeK5f41mmHszag" showTitle="true"/>
+ <element xmi:type="FCM:RuleApplication" href="ProducerConsumer.uml#_FeS3AF7zEeGA7qTe7UD05A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JxzMUlZ0EeK5f41mmHszag"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8LSR4c__Ed-TP80eVS-2Rg" x="162" y="162" width="254" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uHcuMP8nEd-hWJO6cv3VJA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uHdVQP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uHdVQf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uHdVQv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uHdVQ_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uHdVRP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uHdVRf8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uHdVRv8nEd-hWJO6cv3VJA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uHdVR_8nEd-hWJO6cv3VJA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uHd8UP8nEd-hWJO6cv3VJA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xVmsQP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVnTUP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVnTUf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVnTUv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVnTU_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xVnTVP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xVn6YP8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qnfyoFZWEeKKZs15rvNNjA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3YBsFZWEeKKZs15rvNNjA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3YBsVZWEeKKZs15rvNNjA" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3YowFZWEeKKZs15rvNNjA" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3YowVZWEeKKZs15rvNNjA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_q3YowlZWEeKKZs15rvNNjA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xVn6Yf8nEd-hWJO6cv3VJA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__hZeEFZ0EeK5f41mmHszag" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__nGdcFZ0EeK5f41mmHszag" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xVn6Yv8nEd-hWJO6cv3VJA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xVn6Y_8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xVn6ZP8nEd-hWJO6cv3VJA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xVmsQf8nEd-hWJO6cv3VJA" x="-10" y="29"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uHcuMf8nEd-hWJO6cv3VJA" x="162" y="36" width="253" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-HlK8DecEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyADecEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyATecEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyAjecEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyAzecEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-HlyBDecEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-HlyBTecEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-HlyBjecEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_-Hd2MDecEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-HlK8TecEeGPyrZ5I3hMlA" x="468" y="135" width="295"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0EFQQDedEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3UDedEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3UTedEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3UjedEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3UzedEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0EF3VDedEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0EF3VTedEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0EF3VjedEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_0D64MDedEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0EFQQTedEeGPyrZ5I3hMlA" x="468" y="36" width="295"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_7kc7Yc__Ed-TP80eVS-2Rg"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_tyiqsM__Ed-TP80eVS-2Rg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_uHz6kP8nEd-hWJO6cv3VJA" type="4015" source="_8LSR4M__Ed-TP80eVS-2Rg" target="_uHcuMP8nEd-hWJO6cv3VJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uH0hoP8nEd-hWJO6cv3VJA" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uH0hof8nEd-hWJO6cv3VJA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uHz6kf8nEd-hWJO6cv3VJA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="ProducerConsumer.uml#_tyiqss__Ed-TP80eVS-2Rg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uHz6kv8nEd-hWJO6cv3VJA" points="[-103, -45, 204, 90]$[-307, -135, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_FOfGwDeeEeGPyrZ5I3hMlA" type="4002" source="_0EFQQDedEeGPyrZ5I3hMlA" target="_uHcuMP8nEd-hWJO6cv3VJA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_FOfGwTeeEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FOfGwjeeEeGPyrZ5I3hMlA" points="[-6, -3, 83, 0]$[-62, -3, 27, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FOwMgDeeEeGPyrZ5I3hMlA" id="(0.020338983050847456,0.4027777777777778)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FOwMgTeeEeGPyrZ5I3hMlA" id="(0.8932806324110671,0.5205479452054794)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_F4Ju0DeeEeGPyrZ5I3hMlA" type="4002" source="_-HlK8DecEeGPyrZ5I3hMlA" target="_8LSR4M__Ed-TP80eVS-2Rg" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_F4Ju0TeeEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_F4Ju0jeeEeGPyrZ5I3hMlA" points="[-25, 21, 78, 0]$[-80, 21, 23, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F4a0kDeeEeGPyrZ5I3hMlA" id="(0.01694915254237288,0.5681818181818182)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_F4a0kTeeEeGPyrZ5I3hMlA" id="(0.9724409448818898,0.42201834862385323)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_o6ZisNCREd-hqYHBJe17_Q" type="CompositeStructure" name="System Pull" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_VSa6YNHtEd-A1oPfP47IaQ" type="2073" fontName="" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScIgNHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvkNHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScvkdHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvktHtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VScvk9HtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VScvlNHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VScvldHtEd-A1oPfP47IaQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VScvltHtEd-A1oPfP47IaQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_XsS70NHtEd-A1oPfP47IaQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi4NHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi4dHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi4tHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi49HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XsTi5NHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XsTi5dHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XsTi5tHtEd-A1oPfP47IaQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5r3JsFZWEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6tdJkFZWEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XsTi59HtEd-A1oPfP47IaQ" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XsUJ8NHtEd-A1oPfP47IaQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0XlXwDF1EeCpQdhNuFCtew" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0XnM8DF1EeCpQdhNuFCtew" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0XnM8TF1EeCpQdhNuFCtew" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0XnM8jF1EeCpQdhNuFCtew" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0XnM8zF1EeCpQdhNuFCtew" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0XnM9DF1EeCpQdhNuFCtew" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0XnM9TF1EeCpQdhNuFCtew" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_t7uK4JZ7EeCiU5xXzp1cKQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ueh9AJZ7EeCiU5xXzp1cKQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ueh9AZZ7EeCiU5xXzp1cKQ" key="StereotypeList" value="MARTE::MARTE_DesignModel::GCM::FlowPort"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ueh9ApZ7EeCiU5xXzp1cKQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ueh9A5Z7EeCiU5xXzp1cKQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ueikEJZ7EeCiU5xXzp1cKQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Xn0ADF1EeCpQdhNuFCtew" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4jWCcFZWEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4qOGgFZWEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Xn0ATF1EeCpQdhNuFCtew" x="31" y="-1"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Xn0AjF1EeCpQdhNuFCtew" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Xn0AzF1EeCpQdhNuFCtew" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_tyiqs8__Ed-TP80eVS-2Rg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0XlXwTF1EeCpQdhNuFCtew" x="-10" y="50"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_gV1cgDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XsS70dHtEd-A1oPfP47IaQ" x="361" y="18" width="193" height="85"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YNar4NHtEd-A1oPfP47IaQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YNbS8NHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YNbS8dHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YNbS8tHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YNbS89HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YNbS9NHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YNbS9dHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YNbS9tHtEd-A1oPfP47IaQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7rNyUFZWEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7ztnAFZWEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_YNbS99HtEd-A1oPfP47IaQ" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNbS-NHtEd-A1oPfP47IaQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zmq8ANHtEd-A1oPfP47IaQ" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zmsKINHtEd-A1oPfP47IaQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zmsKIdHtEd-A1oPfP47IaQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zmsKItHtEd-A1oPfP47IaQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zmsKI9HtEd-A1oPfP47IaQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zmsKJNHtEd-A1oPfP47IaQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zmsKJdHtEd-A1oPfP47IaQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ow9WMJZ7EeCiU5xXzp1cKQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qlbkgJZ7EeCiU5xXzp1cKQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qlbkgZZ7EeCiU5xXzp1cKQ" key="StereotypeList" value="MARTE::MARTE_DesignModel::GCM::FlowPort"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qlbkgpZ7EeCiU5xXzp1cKQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qlcLkJZ7EeCiU5xXzp1cKQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qlcLkZZ7EeCiU5xXzp1cKQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zmsKJtHtEd-A1oPfP47IaQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_34a2IFZWEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4ARKkFZWEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zmsxMNHtEd-A1oPfP47IaQ" x="-84" y="1"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zmsxMdHtEd-A1oPfP47IaQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zmsxMtHtEd-A1oPfP47IaQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zmq8AdHtEd-A1oPfP47IaQ" x="159" y="48"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_i-I7gDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YNar4dHtEd-A1oPfP47IaQ" x="22" y="18" width="169" height="85"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JusbQDbdEeGdqp2YT1LwWw" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JutCUDbdEeGdqp2YT1LwWw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JutCUTbdEeGdqp2YT1LwWw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JutCUjbdEeGdqp2YT1LwWw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JutCUzbdEeGdqp2YT1LwWw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JutCVDbdEeGdqp2YT1LwWw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JutCVTbdEeGdqp2YT1LwWw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JutCVjbdEeGdqp2YT1LwWw" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_JuaHYDbdEeGdqp2YT1LwWw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JusbQTbdEeGdqp2YT1LwWw" x="355" y="121" width="199" height="44"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lM7ZUDeeEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lM7ZUjeeEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lM7ZUzeeEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lM8AYDeeEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lM8AYTeeEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lM8AYjeeEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lM8AYzeeEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lM8AZDeeEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_lMxBQDeeEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lM7ZUTeeEeGPyrZ5I3hMlA" x="4" y="121" width="343"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VScvl9HtEd-A1oPfP47IaQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_bYJagDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VSa6YdHtEd-A1oPfP47IaQ" x="18" y="18" width="604" height="244"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_o6ZisdCREd-hqYHBJe17_Q"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_XLQjUDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_fPo0MDbdEeGdqp2YT1LwWw" type="4002" source="_JusbQDbdEeGdqp2YT1LwWw" target="_XsS70NHtEd-A1oPfP47IaQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_fPo0MTbdEeGdqp2YT1LwWw" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fPo0MjbdEeGdqp2YT1LwWw" points="[2, -6, -18, 35]$[17, -24, -3, 17]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fQJKgDbdEeGdqp2YT1LwWw" id="(0.5121951219512195,0.125)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fQJKgTbdEeGdqp2YT1LwWw" id="(0.48186528497409326,0.8)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_efaBUE2rEeGl8qrc8BM7vA" type="4013" source="_zmq8ANHtEd-A1oPfP47IaQ" target="_0XlXwDF1EeCpQdhNuFCtew" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iqb3UE2rEeGl8qrc8BM7vA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9bRlQFZXEeKKZs15rvNNjA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9bRlQVZXEeKKZs15rvNNjA" key="StereotypeList" value="FCM::Connector"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9bRlQlZXEeKKZs15rvNNjA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9bSMUFZXEeKKZs15rvNNjA" key="PropStereoDisplay" value="FCM::Connector.ic"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9bSMUVZXEeKKZs15rvNNjA" key="StereotypePropertyLocation" value="With brace"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_efaoYE2rEeGl8qrc8BM7vA" type="6025">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_j_ovsE2rEeGl8qrc8BM7vA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_klZIIE2rEeGl8qrc8BM7vA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_klZIIU2rEeGl8qrc8BM7vA" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_klZIIk2rEeGl8qrc8BM7vA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_klZII02rEeGl8qrc8BM7vA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_klZIJE2rEeGl8qrc8BM7vA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efaoYU2rEeGl8qrc8BM7vA" x="-4" y="-27"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_efaoYk2rEeGl8qrc8BM7vA" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efaoY02rEeGl8qrc8BM7vA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_efbPcE2rEeGl8qrc8BM7vA" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efbPcU2rEeGl8qrc8BM7vA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_efbPck2rEeGl8qrc8BM7vA" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efbPc02rEeGl8qrc8BM7vA" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_efaBUU2rEeGl8qrc8BM7vA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Connector" href="ProducerConsumer.uml#_efVI0E2rEeGl8qrc8BM7vA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_efaBUk2rEeGl8qrc8BM7vA" points="[3, 1, -160, -2]$[160, -7, -3, -10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efmOkE2rEeGl8qrc8BM7vA" id="(0.85,0.45)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_g2IoIE2rEeGl8qrc8BM7vA" type="4002" source="_lM7ZUDeeEeGPyrZ5I3hMlA" target="_efaBUE2rEeGl8qrc8BM7vA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_g2JPME2rEeGl8qrc8BM7vA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_g2JPMU2rEeGl8qrc8BM7vA" points="[1, -5, 0, 43]$[1, -48, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g2TAME2rEeGl8qrc8BM7vA" id="(0.7755102040816326,0.06944444444444445)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_g2TAMU2rEeGl8qrc8BM7vA" id="(0.4689265536723164,0.48148148148148145)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_U1UegPcXEd-KM6l7lmIPkw" type="PapyrusUMLClassDiagram" name="deployment" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_FGfloCghEeCw56aD7XrQhw" type="2016" element="_7kc7YM__Ed-TP80eVS-2Rg" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGgMsCghEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGgMsSghEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGgMsighEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGgMsyghEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FGlsQCghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FGmTUCghEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_FGmTUSghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_FGmTUighEeCw56aD7XrQhw" y="5"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FGfloSghEeCw56aD7XrQhw" x="48" y="24" width="34" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GQM_sCghEeCw56aD7XrQhw" type="2016" element="_UstOsM__Ed-TP80eVS-2Rg" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GQNmwSghEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GQNmwighEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GQNmwyghEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GQNmxCghEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GQNmxSghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GQNmxighEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_GQON0CghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GQON0SghEeCw56aD7XrQhw" x="-20" y="40"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQNmwCghEeCw56aD7XrQhw" x="145" y="24" width="34" height="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JhfKQCghEeCw56aD7XrQhw" type="2016" element="_V5euUP8nEd-hWJO6cv3VJA" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JhfKQighEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JhfxUCghEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JhfxUSghEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JhfxUighEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JhfxUyghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JhfxVCghEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_JhfxVSghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JhfxVighEeCw56aD7XrQhw" y="40"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JhfKQSghEeCw56aD7XrQhw" x="266" y="22"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LGTzACghEeCw56aD7XrQhw" type="2016" element="_o6ZisNCREd-hqYHBJe17_Q" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LGUaECghEeCw56aD7XrQhw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LGUaESghEeCw56aD7XrQhw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LGUaEighEeCw56aD7XrQhw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LGUaEyghEeCw56aD7XrQhw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LGUaFCghEeCw56aD7XrQhw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LGVBICghEeCw56aD7XrQhw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LGVBISghEeCw56aD7XrQhw" type="0">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LGVBIighEeCw56aD7XrQhw" x="9" y="40"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LGTzASghEeCw56aD7XrQhw" x="371" y="22"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_qQMKMCgjEeC5Ga5kAgjl0g" type="2008" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qQN_YCgjEeC5Ga5kAgjl0g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQN_YSgjEeC5Ga5kAgjl0g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qQN_YigjEeC5Ga5kAgjl0g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQN_YygjEeC5Ga5kAgjl0g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qQN_ZCgjEeC5Ga5kAgjl0g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qQOmcCgjEeC5Ga5kAgjl0g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qQlLwCgjEeC5Ga5kAgjl0g" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1v4ucFZ5EeKxltxu9uR4dg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1v4ucVZ5EeKxltxu9uR4dg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1v5VgFZ5EeKxltxu9uR4dg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1v5VgVZ5EeKxltxu9uR4dg" key="PropStereoDisplay" value="FCM::Configuration.deploymentPlan,FCM::Configuration.configOptions"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1v5VglZ5EeKxltxu9uR4dg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qQOmcSgjEeC5Ga5kAgjl0g" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qQOmcigjEeC5Ga5kAgjl0g" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qQOmcygjEeC5Ga5kAgjl0g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qQOmdCgjEeC5Ga5kAgjl0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qQOmdSgjEeC5Ga5kAgjl0g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qQOmdigjEeC5Ga5kAgjl0g" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qQOmdygjEeC5Ga5kAgjl0g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qQOmeCgjEeC5Ga5kAgjl0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qQOmeSgjEeC5Ga5kAgjl0g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_qQOmeigjEeC5Ga5kAgjl0g" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_qQOmeygjEeC5Ga5kAgjl0g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_qQOmfCgjEeC5Ga5kAgjl0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qQOmfSgjEeC5Ga5kAgjl0g"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_qP52UCgjEeC5Ga5kAgjl0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qQMKMSgjEeC5Ga5kAgjl0g" x="37" y="287" width="198" height="83"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_91n2kDOFEeCldqx_51Yicg" type="2007" fontName="Sans Serif" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_91prwDOFEeCldqx_51Yicg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_91prwTOFEeCldqx_51Yicg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_91prwjOFEeCldqx_51Yicg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_91prwzOFEeCldqx_51Yicg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_91qS0DOFEeCldqx_51Yicg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_91qS0TOFEeCldqx_51Yicg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_91qS0jOFEeCldqx_51Yicg" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_91qS0zOFEeCldqx_51Yicg" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_91qS1DOFEeCldqx_51Yicg"/>
+ </children>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_xBxwoDOFEeCldqx_51Yicg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_91n2kTOFEeCldqx_51Yicg" x="36" y="144" width="199" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xelfYD5wEeC-VMxjm_qUAg" type="2008" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xelfYT5wEeC-VMxjm_qUAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xelfYj5wEeC-VMxjm_qUAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xelfYz5wEeC-VMxjm_qUAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xelfZD5wEeC-VMxjm_qUAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xelfZT5wEeC-VMxjm_qUAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xelfZj5wEeC-VMxjm_qUAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xelfZz5wEeC-VMxjm_qUAg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7tmDAFZ5EeKxltxu9uR4dg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7tmDAVZ5EeKxltxu9uR4dg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7tmDAlZ5EeKxltxu9uR4dg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7tmDA1Z5EeKxltxu9uR4dg" key="PropStereoDisplay" value="FCM::Configuration.configOptions,FCM::Configuration.deploymentPlan"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7tmqEFZ5EeKxltxu9uR4dg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xelfbT5wEeC-VMxjm_qUAg" type="5029">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zNzaQD5wEeC-VMxjm_qUAg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_18AF4D5wEeC-VMxjm_qUAg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_18AF4T5wEeC-VMxjm_qUAg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_18As8D5wEeC-VMxjm_qUAg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_18As8T5wEeC-VMxjm_qUAg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_18As8j5wEeC-VMxjm_qUAg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xelfbj5wEeC-VMxjm_qUAg" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xelfbz5wEeC-VMxjm_qUAg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xelfcD5wEeC-VMxjm_qUAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xelfcT5wEeC-VMxjm_qUAg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xelfcj5wEeC-VMxjm_qUAg" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xelfcz5wEeC-VMxjm_qUAg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xelfdD5wEeC-VMxjm_qUAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xelfdT5wEeC-VMxjm_qUAg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xelfdj5wEeC-VMxjm_qUAg" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xelfdz5wEeC-VMxjm_qUAg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xelfeD5wEeC-VMxjm_qUAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xelfeT5wEeC-VMxjm_qUAg"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_xekRQD5wEeC-VMxjm_qUAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xemGcD5wEeC-VMxjm_qUAg" x="306" y="288" width="199" height="82"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1GDBwLGREeCfWNndpgPDWA" type="2007" fontName="Sans Serif" fillColor="8047085" transparency="100" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1GOA4LGREeCfWNndpgPDWA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1GOA4bGREeCfWNndpgPDWA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1GOA4rGREeCfWNndpgPDWA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1GOA47GREeCfWNndpgPDWA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1GOn8LGREeCfWNndpgPDWA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1GOn8bGREeCfWNndpgPDWA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1GOn8rGREeCfWNndpgPDWA" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1GOn87GREeCfWNndpgPDWA" type="7016">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1GOn9LGREeCfWNndpgPDWA"/>
+ </children>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_zwMLcLF4EeC9yscvWqW-eg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1GDBwbGREeCfWNndpgPDWA" x="306" y="144" width="198" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gdmuADefEeGPyrZ5I3hMlA" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdmuAjefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdmuAzefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdmuBDefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdmuBTefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gdnVEDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gdnVETefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gdnVEjefEeGPyrZ5I3hMlA" type="5038"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_gdeyMDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gdmuATefEeGPyrZ5I3hMlA" x="498" y="18" width="115" height="46"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_U1UegfcXEd-KM6l7lmIPkw"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_234GEDLiEd2RVeNawwNNzg"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_V5euUP8nEd-hWJO6cv3VJA" type="CompositeStructure" name="Publisher" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Wky8MP8nEd-hWJO6cv3VJA" type="2073" fontName="" fontHeight="10" fillColor="8905185" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wk0KUP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wk0KUf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wk0KUv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wk0KU_8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Wk0KVP8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Wk0KVf8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wk0xYP8nEd-hWJO6cv3VJA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Wk0xYf8nEd-hWJO6cv3VJA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wk0xYv8nEd-hWJO6cv3VJA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_eCjHMP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eCjuQP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eCjuQf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eCkVUP8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eCkVUf8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eCkVUv8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eCkVU_8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LFYVIFWlEeKOivupHOJ8Ew" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LlIMMFWlEeKOivupHOJ8Ew" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LlIMMVWlEeKOivupHOJ8Ew" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LlIMMlWlEeKOivupHOJ8Ew" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LlIMM1WlEeKOivupHOJ8Ew" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LlIMNFWlEeKOivupHOJ8Ew" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eCkVVP8nEd-hWJO6cv3VJA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Dz37gFZXEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_D7CTcFZXEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eCkVVf8nEd-hWJO6cv3VJA" x="-89"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eCkVVv8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eCkVV_8nEd-hWJO6cv3VJA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eCjHMf8nEd-hWJO6cv3VJA" x="-10" y="36"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fwpAsP8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fwpAsv8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fwpAs_8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fwpnwP8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fwpnwf8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fwpnwv8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fwpnw_8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nkol0FWlEeKOivupHOJ8Ew" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bb2zQFZ0EeK5f41mmHszag" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bb2zQVZ0EeK5f41mmHszag" key="StereotypeList" value="MARTE::MARTE_DesignModel::GCM::FlowPort,FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bb2zQlZ0EeK5f41mmHszag" key="PropStereoDisplay" value="FCM::Port.kind,FCM::Port.requiredInterface"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bb2zQ1Z0EeK5f41mmHszag" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bb2zRFZ0EeK5f41mmHszag" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fwpnxP8nEd-hWJO6cv3VJA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVFyMFZXEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EhugAFZXEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fwpnxf8nEd-hWJO6cv3VJA" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fwpnxv8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fwpnx_8nEd-hWJO6cv3VJA" x="27" y="-18"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fwpAsf8nEd-hWJO6cv3VJA" x="117" y="36"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_IfjoETLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wky8Mf8nEd-hWJO6cv3VJA" x="144" y="108" width="136" height="73"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XKXHYP8nEd-hWJO6cv3VJA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XKXHYv8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XKXucP8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XKXucf8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XKXucv8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XKXuc_8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XKXudP8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XKXudf8nEd-hWJO6cv3VJA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XKXudv8nEd-hWJO6cv3VJA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XKXud_8nEd-hWJO6cv3VJA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_euJo8P8nEd-hWJO6cv3VJA" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_euKQAP8nEd-hWJO6cv3VJA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_euKQAf8nEd-hWJO6cv3VJA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_euKQAv8nEd-hWJO6cv3VJA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_euK3EP8nEd-hWJO6cv3VJA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_euK3Ef8nEd-hWJO6cv3VJA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_euK3Ev8nEd-hWJO6cv3VJA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JVivMFWlEeKOivupHOJ8Ew" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Jve5MFWlEeKOivupHOJ8Ew" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JvfgQFWlEeKOivupHOJ8Ew" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JvfgQVWlEeKOivupHOJ8Ew" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JvfgQlWlEeKOivupHOJ8Ew" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JvfgQ1WlEeKOivupHOJ8Ew" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_euK3E_8nEd-hWJO6cv3VJA" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DRgOQFZXEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DYoxAFZXEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_euK3FP8nEd-hWJO6cv3VJA" x="-89" y="-2"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_euK3Ff8nEd-hWJO6cv3VJA" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_euK3Fv8nEd-hWJO6cv3VJA" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_OfiosJsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_euJo8f8nEd-hWJO6cv3VJA" x="-10" y="27"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XKXHYf8nEd-hWJO6cv3VJA" x="144" y="18" width="136" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Gz7TMDehEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G0CA4DehEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G0CA4TehEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G0CA4jehEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G0CA4zehEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G0CA5DehEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G0Cn8DehEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_G0Cn8TehEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_GzyJQDehEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Gz7TMTehEeGPyrZ5I3hMlA" x="342" y="18" width="344"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_V5euUf8nEd-hWJO6cv3VJA"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_etOZkDLaEd2qeKRLMdIx_A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_XKqpYP8nEd-hWJO6cv3VJA" type="4015" source="_Wky8MP8nEd-hWJO6cv3VJA" target="_XKXHYP8nEd-hWJO6cv3VJA" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_XKrQcP8nEd-hWJO6cv3VJA" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XKrQcf8nEd-hWJO6cv3VJA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_XKqpYf8nEd-hWJO6cv3VJA" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="ProducerConsumer.uml#_34FjAPx3Ed6O2oOTPfeAMA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XKqpYv8nEd-hWJO6cv3VJA" points="[-19, -23, 140, 174]$[-159, -197, 0, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_aJG_MDehEeGPyrZ5I3hMlA" type="4002" source="_Gz7TMDehEeGPyrZ5I3hMlA" target="_XKXHYP8nEd-hWJO6cv3VJA" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_aJG_MTehEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aJG_MjehEeGPyrZ5I3hMlA" points="[-12, -5, 80, 30]$[-82, -36, 10, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aJdkgDehEeGPyrZ5I3hMlA" id="(0.02823529411764706,0.4166666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aJeLkDehEeGPyrZ5I3hMlA" id="(0.9212598425196851,0.4909090909090909)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_0rwpYDefEeGPyrZ5I3hMlA" type="CompositeStructure" name="HWArchitecture" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_1w2CIDefEeGPyrZ5I3hMlA" type="2073" fontName="" fontHeight="10" fillColor="10011046" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pMDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pMTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pMjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pMzefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1w2pNDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1w2pNTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HTZS4DegEeGPyrZ5I3hMlA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mAM_QBMqEeK_iPOWsxJHwg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mAM_QRMqEeK_iPOWsxJHwg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mANmUBMqEeK_iPOWsxJHwg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mANmURMqEeK_iPOWsxJHwg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mANmUhMqEeK_iPOWsxJHwg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1w2pNjefEeGPyrZ5I3hMlA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1w2pNzefEeGPyrZ5I3hMlA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_4HLnYDefEeGPyrZ5I3hMlA" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOcDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOcTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOcjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOczefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4HMOdDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HMOdTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4HMOdjefEeGPyrZ5I3hMlA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UodTAFZXEeKKZs15rvNNjA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UsmzMFZXEeKKZs15rvNNjA" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4HMOdzefEeGPyrZ5I3hMlA" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_4HMOeDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HMOeTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_4HAoQDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4HLnYTefEeGPyrZ5I3hMlA" x="61" y="22" width="162"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1w2pODefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w2pOTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_tZvNQDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1w2CITefEeGPyrZ5I3hMlA" x="81" y="63" width="300" height="154"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7qMbIDefEeGPyrZ5I3hMlA" type="2072" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCMDefEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCMTefEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCMjefEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCMzefEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qNCNDefEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7qNCNTefEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_85ECADefEeGPyrZ5I3hMlA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_StOVYFZXEeKKZs15rvNNjA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_StOVYVZXEeKKZs15rvNNjA" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_StOVYlZXEeKKZs15rvNNjA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_StOVY1ZXEeKKZs15rvNNjA" key="PropStereoDisplay" value="FCM::Target.targetArch,FCM::Target.usedOS"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_StOVZFZXEeKKZs15rvNNjA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7qNCNjefEeGPyrZ5I3hMlA" type="5124"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7qNCNzefEeGPyrZ5I3hMlA" visible="false" type="7072">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7qNCODefEeGPyrZ5I3hMlA" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7qNCOTefEeGPyrZ5I3hMlA"/>
+ </children>
+ <element xmi:type="uml:Node" href="ProducerConsumer.uml#_zY9vMDLiEd2RVeNawwNNzg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7qMbITefEeGPyrZ5I3hMlA" x="441" y="63" width="154" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jhQ20DegEeGPyrZ5I3hMlA" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ20jegEeGPyrZ5I3hMlA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ20zegEeGPyrZ5I3hMlA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ21DegEeGPyrZ5I3hMlA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ21TegEeGPyrZ5I3hMlA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jhQ21jegEeGPyrZ5I3hMlA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jhQ21zegEeGPyrZ5I3hMlA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jhRd4DegEeGPyrZ5I3hMlA" type="5192"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_jhF3sDegEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jhQ20TegEeGPyrZ5I3hMlA" x="435" y="183" width="277"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0rwpYTefEeGPyrZ5I3hMlA"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_v3fMgDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_ugb6IDegEeGPyrZ5I3hMlA" type="4002" source="_jhQ20DegEeGPyrZ5I3hMlA" target="_7qMbIDefEeGPyrZ5I3hMlA" routing="Rectilinear" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ugb6ITegEeGPyrZ5I3hMlA" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ugb6IjegEeGPyrZ5I3hMlA" points="[-11, -6, 7, 38]$[-11, -26, 7, 18]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ugs_4DegEeGPyrZ5I3hMlA" id="(0.33212996389891697,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ugs_4TegEeGPyrZ5I3hMlA" id="(0.4420289855072464,0.8266666666666667)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_HvdK0FZYEeKKZs15rvNNjA" type="CompositeStructure" name="System Push" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_U0B0YFZYEeKKZs15rvNNjA" type="2073" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 0" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0CbcFZYEeKKZs15rvNNjA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U0CbcVZYEeKKZs15rvNNjA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0DCgFZYEeKKZs15rvNNjA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U0DCgVZYEeKKZs15rvNNjA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_U0DCglZYEeKKZs15rvNNjA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_U0DCg1ZYEeKKZs15rvNNjA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_U0DChFZYEeKKZs15rvNNjA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_U0DChVZYEeKKZs15rvNNjA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_Zgd44FZZEeKb1bjLi8P_oQ" type="3070" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zgg8MFZZEeKb1bjLi8P_oQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zgg8MVZZEeKb1bjLi8P_oQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zgg8MlZZEeKb1bjLi8P_oQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZghjQFZZEeKb1bjLi8P_oQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZghjQVZZEeKb1bjLi8P_oQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZghjQlZZEeKb1bjLi8P_oQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZghjQ1ZZEeKb1bjLi8P_oQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dtKi0FZZEeKb1bjLi8P_oQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d00qAFZZEeKb1bjLi8P_oQ" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZghjRFZZEeKb1bjLi8P_oQ" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZghjRVZZEeKb1bjLi8P_oQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZghjRlZZEeKb1bjLi8P_oQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kzTfEFZZEeKb1bjLi8P_oQ" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kzUGIFZZEeKb1bjLi8P_oQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kzUGIVZZEeKb1bjLi8P_oQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kzUGIlZZEeKb1bjLi8P_oQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kzUGI1ZZEeKb1bjLi8P_oQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kzUGJFZZEeKb1bjLi8P_oQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kzUGJVZZEeKb1bjLi8P_oQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nsJUcFZZEeKb1bjLi8P_oQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oFXswFZZEeKb1bjLi8P_oQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oFXswVZZEeKb1bjLi8P_oQ" key="StereotypeList" value="MARTE::MARTE_DesignModel::GCM::FlowPort"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oFXswlZZEeKb1bjLi8P_oQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oFXsw1ZZEeKb1bjLi8P_oQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_oFXsxFZZEeKb1bjLi8P_oQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kzUGJlZZEeKb1bjLi8P_oQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qpl9AFZZEeKb1bjLi8P_oQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qw77IVZZEeKb1bjLi8P_oQ" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kzUGJ1ZZEeKb1bjLi8P_oQ" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kzUGKFZZEeKb1bjLi8P_oQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kzUGKVZZEeKb1bjLi8P_oQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kzTfEVZZEeKb1bjLi8P_oQ" x="-10" y="36"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_iP8c4dCREd-hqYHBJe17_Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zgef8FZZEeKb1bjLi8P_oQ" x="370" y="21" width="177" height="78"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aKa00FZZEeKb1bjLi8P_oQ" type="3070" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aKbb4FZZEeKb1bjLi8P_oQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aKbb4VZZEeKb1bjLi8P_oQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aKbb4lZZEeKb1bjLi8P_oQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aKbb41ZZEeKb1bjLi8P_oQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aKbb5FZZEeKb1bjLi8P_oQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aKbb5VZZEeKb1bjLi8P_oQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aKbb5lZZEeKb1bjLi8P_oQ" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cojEIFZZEeKb1bjLi8P_oQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cu9OIFZZEeKb1bjLi8P_oQ" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_aKcC8FZZEeKb1bjLi8P_oQ" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_aKcC8VZZEeKb1bjLi8P_oQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aKcC8lZZEeKb1bjLi8P_oQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iJQToFZZEeKb1bjLi8P_oQ" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iJQ6sFZZEeKb1bjLi8P_oQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iJQ6sVZZEeKb1bjLi8P_oQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iJQ6slZZEeKb1bjLi8P_oQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iJQ6s1ZZEeKb1bjLi8P_oQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_iJQ6tFZZEeKb1bjLi8P_oQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iJQ6tVZZEeKb1bjLi8P_oQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pe8u0FZZEeKb1bjLi8P_oQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p0rHMFZZEeKb1bjLi8P_oQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p0rHMVZZEeKb1bjLi8P_oQ" key="StereotypeList" value="MARTE::MARTE_DesignModel::GCM::FlowPort"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p0rHMlZZEeKb1bjLi8P_oQ" key="Stereotype_Presentation_Kind" value="IconStereotype"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p0rHM1ZZEeKb1bjLi8P_oQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_p0rHNFZZEeKb1bjLi8P_oQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iJQ6tlZZEeKb1bjLi8P_oQ" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qplV8FZZEeKb1bjLi8P_oQ" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qw77IFZZEeKb1bjLi8P_oQ" key="CustomAppearance_MaskValue" value="28"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iJQ6t1ZZEeKb1bjLi8P_oQ" x="-71" y="4"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iJRhwFZZEeKb1bjLi8P_oQ" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iJRhwVZZEeKb1bjLi8P_oQ" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="ProducerConsumer.uml#_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iJQToVZZEeKb1bjLi8P_oQ" x="134" y="36"/>
+ </children>
+ <element xmi:type="uml:Property" href="ProducerConsumer.uml#_iP8c4tCREd-hqYHBJe17_Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aKa00VZZEeKb1bjLi8P_oQ" x="37" y="21" width="144" height="78"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_a6zv8FZZEeKb1bjLi8P_oQ" type="3097" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a60XAFZZEeKb1bjLi8P_oQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a60XAVZZEeKb1bjLi8P_oQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a60-EFZZEeKb1bjLi8P_oQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a60-EVZZEeKb1bjLi8P_oQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a60-ElZZEeKb1bjLi8P_oQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a60-E1ZZEeKb1bjLi8P_oQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a60-FFZZEeKb1bjLi8P_oQ" type="5150"/>
+ <element xmi:type="uml:Comment" href="ProducerConsumer.uml#_KOEwwDefEeGPyrZ5I3hMlA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a6zv8VZZEeKb1bjLi8P_oQ" x="244" y="129" width="290" height="55"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_U0DChlZYEeKKZs15rvNNjA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U0DCh1ZYEeKKZs15rvNNjA"/>
+ </children>
+ <element xmi:type="uml:Class" href="ProducerConsumer.uml#_iP8c4NCREd-hqYHBJe17_Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_U0B0YVZYEeKKZs15rvNNjA" x="36" y="27" width="604" height="226"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_HvdK0VZYEeKKZs15rvNNjA"/>
+ <element xmi:type="uml:Package" href="ProducerConsumer.uml#_XLQjUDLiEd2RVeNawwNNzg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_wxMNYFZZEeKb1bjLi8P_oQ" type="4013" source="_iJQToFZZEeKb1bjLi8P_oQ" target="_kzTfEFZZEeKb1bjLi8P_oQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wxNbgFZZEeKb1bjLi8P_oQ" type="6025">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wxNbgVZZEeKb1bjLi8P_oQ" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wxNbglZZEeKb1bjLi8P_oQ" visible="false" type="6050">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wxNbg1ZZEeKb1bjLi8P_oQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wxNbhFZZEeKb1bjLi8P_oQ" visible="false" type="6051">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wxNbhVZZEeKb1bjLi8P_oQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wxNbhlZZEeKb1bjLi8P_oQ" visible="false" type="6052">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wxNbh1ZZEeKb1bjLi8P_oQ" y="20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wxMNYVZZEeKb1bjLi8P_oQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Connector" href="ProducerConsumer.uml#_iP8c49CREd-hqYHBJe17_Q"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wxMNYlZZEeKb1bjLi8P_oQ" points="[10, 5, -179, 0]$[179, 0, -10, -5]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Nr2l4FZaEeKb1bjLi8P_oQ" type="4002" source="_a6zv8FZZEeKb1bjLi8P_oQ" target="_wxMNYFZZEeKb1bjLi8P_oQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Nr2l4VZaEeKb1bjLi8P_oQ" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nr2l4lZaEeKb1bjLi8P_oQ" points="[-7, -6, 3, 62]$[-7, -68, 3, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NsRcoFZaEeKb1bjLi8P_oQ" id="(0.20689655172413793,0.10909090909090909)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NsRcoVZaEeKb1bjLi8P_oQ" id="(0.6071428571428571,0.7407407407407407)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.uml b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.uml
new file mode 100644
index 00000000000..08f377275a1
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ProducerConsumer.uml
@@ -0,0 +1,457 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Alloc="http://www.eclipse.org/papyrus/Alloc/1" xmlns:Cpp="http://papyrus/CppProfile/1" xmlns:FCM="http://papyrus/FCMProfile/1" xmlns:GCM="http://www.eclipse.org/papyrus/GCM/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/Alloc/1 http://www.eclipse.org/papyrus/MARTE/1#//Alloc http://www.eclipse.org/papyrus/GCM/1 http://www.eclipse.org/papyrus/MARTE/1#//GCM">
+ <uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="ProducerConsumer">
+ <packageImport xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:id="_Bc1WIFW4Ed63BrxiKsw-0Q">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:id="_rwBsMP7AEd6Zw96O-tCw7A">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packageImport xmi:id="_R8d6YP93Ed6628OhKk_dpg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/fifo.uml#_ePwqkHLmEd6R5tffIPrlPg"/>
+ </packageImport>
+ <packageImport xmi:id="_8KelgCgjEeC5Ga5kAgjl0g">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_TRACE/tracing.uml#_H-ZqYDKeEd-WprEKTCaiMA"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_LOqIEDLaEd2qeKRLMdIx_A" name="ComponentModel">
+ <packagedElement xmi:type="uml:Package" xmi:id="_tyiqsM__Ed-TP80eVS-2Rg" name="PullConsumer">
+ <ownedComment xmi:id="_-Hd2MDecEeGPyrZ5I3hMlA" annotatedElement="_tyiqsc__Ed-TP80eVS-2Rg">
+ <body>Variant of the consumper component that uses a &quot;pull style&quot;, i.e. actively demands whether new data is available. Since the component is active, it needs to have its own thread. This is realized by the combination of the lifecycle port with a container rule that intercepts the lifecycle operations and executes the activation operation in its own thread.
+Use the context menu to find out that the PullConsumer supports the &quot;runStartThread&quot; interceptor which intercepts the lifecycle port.</body>
+ </ownedComment>
+ <ownedComment xmi:id="_0D64MDedEeGPyrZ5I3hMlA">
+ <annotatedElement xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <body>Part of the Qompass model library. Provides the specific port &quot;lc&quot; (short for lifecycle). The &quot;activate&quot; operation of this port is called by generated boot-code after instantiation and configuration of a component. The deactivation is called before disposing a component</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tyiqsc__Ed-TP80eVS-2Rg" clientDependency="_DHTiQDF7EeCpQdhNuFCtew" name="PullConsumer_impl">
+ <generalization xmi:id="_tyiqss__Ed-TP80eVS-2Rg">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_tyiqs8__Ed-TP80eVS-2Rg" name="" type="_wFJ3IP91Ed6Jt8e-UqrRdQ" aggregation="composite"/>
+ <interfaceRealization xmi:id="_DHTiQDF7EeCpQdhNuFCtew" name="derived realization of ILifeCycle" client="_tyiqsc__Ed-TP80eVS-2Rg">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_tyjRwc__Ed-TP80eVS-2Rg" name="activate" specification="_tyjRy8__Ed-TP80eVS-2Rg">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;wait for data on port p&quot; &lt;&lt; endl;
+for (int i = 0; i&lt;25; i++) {
+ if (p->hasData ()) {
+ ComponentModel::interfaces::PubData data = p->pull ();
+ cout &lt;&lt; &quot;received data: x = &quot; &lt;&lt; data.x &lt;&lt; &quot; y = &quot; &lt;&lt; data.y &lt;&lt; endl;
+ }
+ usleep (100*1000);
+}
+cout &lt;&lt; &quot;finished waiting&quot; &lt;&lt; endl;
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_tyjRy8__Ed-TP80eVS-2Rg" name="activate" method="_tyjRwc__Ed-TP80eVS-2Rg"/>
+ <ownedOperation xmi:id="_tyjRzM__Ed-TP80eVS-2Rg" name="deactivate"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_OGM88DLaEd2qeKRLMdIx_A" name="PushConsumer">
+ <ownedComment xmi:id="_XfnmsDecEeGPyrZ5I3hMlA" annotatedElement="_oqZNUDLaEd2qeKRLMdIx_A">
+ <body>Push variant of a consumer, i.e. the consumer is called whenever new data is availble. It is not itself active.</body>
+ </ownedComment>
+ <ownedComment xmi:id="_gpptUDecEeGPyrZ5I3hMlA" annotatedElement="_4KiE8DLbEd2qeKRLMdIx_A">
+ <body>A MARTE flow port. The synchronisation between MARTE and FCM stereotype is automatic, yet it is possible to refine on FCM level, whether the port uses a push or pull style. In this case, the port uses a push style by setting the port kind to &quot;PushConsumer&quot;.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_oqZNUDLaEd2qeKRLMdIx_A" clientDependency="_Z16ywDF8EeCpQdhNuFCtew _T7BgIAcsEeGYWLReZHFIwA" name="PushConsumer_impl">
+ <generalization xmi:id="_NItbAP94Ed6628OhKk_dpg">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_4KiE8DLbEd2qeKRLMdIx_A" name="p" type="_wFJ3IP91Ed6Jt8e-UqrRdQ" aggregation="composite"/>
+ <interfaceRealization xmi:id="_Z16ywDF8EeCpQdhNuFCtew" name="derived realization of ILifeCycle" client="_oqZNUDLaEd2qeKRLMdIx_A">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <interfaceRealization xmi:id="_T7BgIAcsEeGYWLReZHFIwA" name="derived realization of D_Push_PubData" client="_oqZNUDLaEd2qeKRLMdIx_A" supplier="_lsBoMKwJEeCgusK7cm6qjQ" contract="_lsBoMKwJEeCgusK7cm6qjQ"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_RoXdMP94Ed6628OhKk_dpg" name="activate" specification="_uOmgID15Ed-qiK1VZWszhA">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;initialization of push consumer&quot; &lt;&lt; endl;
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qUSHYPdMEd-KM6l7lmIPkw" name="push" specification="_T7D8YAcsEeGYWLReZHFIwA">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;received data: x = &quot; &lt;&lt; data.x &lt;&lt; &quot; y = &quot; &lt;&lt; data.y &lt;&lt; endl;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_uOmgID15Ed-qiK1VZWszhA" name="activate" method="_RoXdMP94Ed6628OhKk_dpg"/>
+ <ownedOperation xmi:id="_uOtN0D15Ed-qiK1VZWszhA" name="deactivate"/>
+ <ownedOperation xmi:id="_T7D8YAcsEeGYWLReZHFIwA" name="push" method="_qUSHYPdMEd-KM6l7lmIPkw">
+ <ownedParameter xmi:id="_T7G_sAcsEeGYWLReZHFIwA" name="data" type="_wFJ3IP91Ed6Jt8e-UqrRdQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T7KDAAcsEeGYWLReZHFIwA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T7KqEAcsEeGYWLReZHFIwA" value="1"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_Tp4n8DLaEd2qeKRLMdIx_A" name="interfaces">
+ <packagedElement xmi:type="uml:DataType" xmi:id="_wFJ3IP91Ed6Jt8e-UqrRdQ" name="PubData">
+ <ownedAttribute xmi:id="_yywF0P91Ed6Jt8e-UqrRdQ" name="y" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_zUgvEP91Ed6Jt8e-UqrRdQ" name="x" isUnique="false" aggregation="composite">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_etOZkDLaEd2qeKRLMdIx_A" name="Producer">
+ <ownedComment xmi:id="_GzyJQDehEeGPyrZ5I3hMlA">
+ <annotatedElement xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ <body>Let the producer instance execute by the main thread by realising the specific port &quot;start&quot;, inherited from CStart (part of the Qompass &quot;core&quot; model library).
+</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IfjoETLbEd2qeKRLMdIx_A" clientDependency="_jkNdADF8EeCpQdhNuFCtew" name="Producer_impl">
+ <generalization xmi:id="_34FjAPx3Ed6O2oOTPfeAMA">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_DtWn4DLcEd2qeKRLMdIx_A" name="q" type="_wFJ3IP91Ed6Jt8e-UqrRdQ" aggregation="composite"/>
+ <interfaceRealization xmi:id="_jkNdADF8EeCpQdhNuFCtew" name="derived realization of IStart" client="_IfjoETLbEd2qeKRLMdIx_A">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <contract href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_yXNVoKF4Ed6FqJCjEUrkqQ" name="run" specification="_dH4RIKF4Ed6FqJCjEUrkqQ">
+ <language>C/C++</language>
+ <body>cout &lt;&lt; &quot;publish a value via port q;&quot; &lt;&lt; endl;
+ComponentModel::interfaces::PubData data;
+data.x = 2;
+data.y = 3;
+for (int i = 0; i&lt;20; i++) {
+ q->push (data);
+ cout &lt;&lt; &quot;.&quot; &lt;&lt; flush;
+ // wait 200ms
+ usleep (200*1000);
+}
+</body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_dH4RIKF4Ed6FqJCjEUrkqQ" name="run" method="_yXNVoKF4Ed6FqJCjEUrkqQ"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_XLQjUDLiEd2RVeNawwNNzg" name="System">
+ <packagedElement xmi:type="uml:Class" xmi:id="_bYJagDLiEd2RVeNawwNNzg" name="SystemPull_impl">
+ <ownedComment xmi:id="_JuaHYDbdEeGdqp2YT1LwWw" annotatedElement="_gV1cgDLiEd2RVeNawwNNzg">
+ <body>Pull consumer is executed by its own thread. This is specified via a container service (runStartThread)</body>
+ </ownedComment>
+ <ownedComment xmi:id="_lMxBQDeeEeGPyrZ5I3hMlA" annotatedElement="_efVI0E2rEeGl8qrc8BM7vA">
+ <body>Since producer and consumer call operations (the latter to actively retrieve data), the two ports would be incompatible without using a specific interaction component, in this case. a FIFO.
+Use the context menu on a selected connector to specify the interaction component.</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_gV1cgDLiEd2RVeNawwNNzg" name="con" visibility="public" type="_tyiqsc__Ed-TP80eVS-2Rg" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dCT24G6JEeGqWMX2LwdLDw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dCUd8G6JEeGqWMX2LwdLDw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_dCWTIG6JEeGqWMX2LwdLDw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_i-I7gDLiEd2RVeNawwNNzg" name="prod" visibility="public" type="_IfjoETLbEd2qeKRLMdIx_A" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_esReUG6JEeGqWMX2LwdLDw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_esSscG6JEeGqWMX2LwdLDw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_esUhoG6JEeGqWMX2LwdLDw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:id="_efVI0E2rEeGl8qrc8BM7vA" name="fifoconnector">
+ <end xmi:id="_efVv4E2rEeGl8qrc8BM7vA" partWithPort="_i-I7gDLiEd2RVeNawwNNzg" role="_DtWn4DLcEd2qeKRLMdIx_A">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efVv4k2rEeGl8qrc8BM7vA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efVv4U2rEeGl8qrc8BM7vA" value="1"/>
+ </end>
+ <end xmi:id="_efWW8E2rEeGl8qrc8BM7vA" partWithPort="_gV1cgDLiEd2RVeNawwNNzg" role="_tyiqs8__Ed-TP80eVS-2Rg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_efWW8k2rEeGl8qrc8BM7vA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_efWW8U2rEeGl8qrc8BM7vA" value="1"/>
+ </end>
+ </ownedConnector>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_iP8c4NCREd-hqYHBJe17_Q" name="SystemPush_impl">
+ <ownedComment xmi:id="_KOEwwDefEeGPyrZ5I3hMlA" annotatedElement="_iP8c49CREd-hqYHBJe17_Q">
+ <body>The push consumer provides the interface that the producer uses (requires), no specific connector is required</body>
+ </ownedComment>
+ <ownedAttribute xmi:id="_iP8c4dCREd-hqYHBJe17_Q" name="con" visibility="public" type="_oqZNUDLaEd2qeKRLMdIx_A" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_d0HHQG6JEeGqWMX2LwdLDw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_d0HuUG6JEeGqWMX2LwdLDw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_d0I8cG6JEeGqWMX2LwdLDw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_iP8c4tCREd-hqYHBJe17_Q" name="prod" visibility="public" type="_IfjoETLbEd2qeKRLMdIx_A" isUnique="false" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fbEeAG6JEeGqWMX2LwdLDw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fbFFEG6JEeGqWMX2LwdLDw" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_fbGTMG6JEeGqWMX2LwdLDw">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedConnector xmi:id="_iP8c49CREd-hqYHBJe17_Q" name="qpconnector">
+ <end xmi:id="_iP8c5NCREd-hqYHBJe17_Q" partWithPort="_iP8c4tCREd-hqYHBJe17_Q" role="_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <end xmi:id="_iP8c5dCREd-hqYHBJe17_Q" partWithPort="_iP8c4dCREd-hqYHBJe17_Q" role="_4KiE8DLbEd2qeKRLMdIx_A"/>
+ </ownedConnector>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_v3fMgDLiEd2RVeNawwNNzg" name="PlatformModel">
+ <ownedComment xmi:id="_jhF3sDegEeGPyrZ5I3hMlA" annotatedElement="_zY9vMDLiEd2RVeNawwNNzg">
+ <body>Simple single node configuration. TargetOS is set to Linux, but will work on other OS (supporting POSIX threads)</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Node" xmi:id="_zY9vMDLiEd2RVeNawwNNzg" name="MonoNode"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tZvNQDefEeGPyrZ5I3hMlA" name="Platform">
+ <ownedAttribute xmi:id="_4HAoQDefEeGPyrZ5I3hMlA" name="monoNode" visibility="public" type="_zY9vMDLiEd2RVeNawwNNzg" aggregation="composite">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6WEg0DefEeGPyrZ5I3hMlA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6WFu8DefEeGPyrZ5I3hMlA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_6WHkIDefEeGPyrZ5I3hMlA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_YxI8IDegEeGPyrZ5I3hMlA" name="HWArchitecturePlatform">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_GQ1ekKwHEeCQX8uv_p0Q4A" name="monoNode" classifier="_zY9vMDLiEd2RVeNawwNNzg"/>
+ </packagedElement>
+ <profileApplication xmi:id="_aOAnkKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:id="_aen2cKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SW_Concurrency"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_A_vtYBJeEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_234GEDLiEd2RVeNawwNNzg" name="DeploymentPlans">
+ <ownedComment xmi:id="_VMRFgDOJEeC7y-fR3OSnFw" annotatedElement="_qP52UCgjEeC5Ga5kAgjl0g">
+ <body>This configuration requires the installation of the OTF trace library.&lt;br /></body>
+ </ownedComment>
+ <ownedComment xmi:id="_gdeyMDefEeGPyrZ5I3hMlA">
+ <body>Cross references to diagrams</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_qP52UCgjEeC5Ga5kAgjl0g" name="withTracePush"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_xBxwoDOFEeCldqx_51Yicg" name="monoPush">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_xB3QMDOFEeCldqx_51Yicg" clientDependency="_cmk8EKwIEeCza-cLDL1uzQ _oZjTgE0tEeG4IqgA7gSE6w _wqyJ4E0tEeG4IqgA7gSE6w" name="mainInstance" classifier="_iP8c4NCREd-hqYHBJe17_Q">
+ <slot xmi:id="_xB6TgDOFEeCldqx_51Yicg" definingFeature="_iP8c4dCREd-hqYHBJe17_Q">
+ <value xmi:type="uml:InstanceValue" xmi:id="_xB66kDOFEeCldqx_51Yicg" instance="_xB5scDOFEeCldqx_51Yicg"/>
+ </slot>
+ <slot xmi:id="_xB8IsDOFEeCldqx_51Yicg" definingFeature="_iP8c4tCREd-hqYHBJe17_Q">
+ <value xmi:type="uml:InstanceValue" xmi:id="_xB8IsTOFEeCldqx_51Yicg" instance="_xB7hoDOFEeCldqx_51Yicg"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_xB5scDOFEeCldqx_51Yicg" name="mainInstance.con" classifier="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_xB7hoDOFEeCldqx_51Yicg" name="mainInstance.prod" classifier="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_cmk8EKwIEeCza-cLDL1uzQ" name="allocate to monoNode" client="_xB3QMDOFEeCldqx_51Yicg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_oZjTgE0tEeG4IqgA7gSE6w" name="allocate to monoNode" client="_xB3QMDOFEeCldqx_51Yicg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_wqyJ4E0tEeG4IqgA7gSE6w" name="allocate to monoNode" client="_xB3QMDOFEeCldqx_51Yicg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xekRQD5wEeC-VMxjm_qUAg" name="withTracePull"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_zwMLcLF4EeC9yscvWqW-eg" name="monoPull">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_zwQc4bF4EeC9yscvWqW-eg" clientDependency="_DQUvILGSEeCfWNndpgPDWA _vcX2AE0tEeG4IqgA7gSE6w" name="mainInstance" classifier="_bYJagDLiEd2RVeNawwNNzg">
+ <slot xmi:id="_zwY_wLF4EeC9yscvWqW-eg" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_zwZm0LF4EeC9yscvWqW-eg" instance="_zwUuUbF4EeC9yscvWqW-eg"/>
+ </slot>
+ <slot xmi:id="_zwaN4LF4EeC9yscvWqW-eg" definingFeature="_i-I7gDLiEd2RVeNawwNNzg">
+ <value xmi:type="uml:InstanceValue" xmi:id="_zwaN4bF4EeC9yscvWqW-eg" instance="_zwZm0bF4EeC9yscvWqW-eg"/>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_zwUHQLF4EeC9yscvWqW-eg" name="mainInstance.fifoconnector">
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE/fifo.uml#_Y1jF8HPpEd6R5tffIPrlPg"/>
+ <slot xmi:id="_zwUHQbF4EeC9yscvWqW-eg">
+ <definingFeature xmi:type="uml:Property" href="pathmap://QML_CORE/fifo.uml#_XDRnoHUIEd6R5tffIPrlPg"/>
+ <value xmi:type="uml:LiteralInteger" xmi:id="_zwUuULF4EeC9yscvWqW-eg" name="value for m_size" value="30">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </value>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_zwUuUbF4EeC9yscvWqW-eg" name="mainInstance.con">
+ <classifier xmi:type="uml:Class" href="#_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <classifier xmi:type="uml:Class" href="pathmap://QML_CORE//core.uml#_SiY_AP-EEd6628OhKk_dpg"/>
+ <slot xmi:id="_zwVVYLF4EeC9yscvWqW-eg">
+ <definingFeature xmi:type="uml:Property" href="pathmap://QML_CORE//core.uml#_rVfYoMGJEd-Mveea1W_olA"/>
+ <value xmi:type="uml:LiteralInteger" xmi:id="_zwV8cLF4EeC9yscvWqW-eg" name="value for priority">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </value>
+ </slot>
+ </packagedElement>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_zwZm0bF4EeC9yscvWqW-eg" name="mainInstance.prod" classifier="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_DQUvILGSEeCfWNndpgPDWA" name="allocate to monoNode" client="_zwQc4bF4EeC9yscvWqW-eg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ <packagedElement xmi:type="uml:Abstraction" xmi:id="_vcX2AE0tEeG4IqgA7gSE6w" name="allocate to monoNode" client="_zwQc4bF4EeC9yscvWqW-eg" supplier="_GQ1ekKwHEeCQX8uv_p0Q4A"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_lr9WwKwJEeCgusK7cm6qjQ" name="derivedInterfaces">
+ <packagedElement xmi:type="uml:Package" xmi:id="_lr_L8KwJEeCgusK7cm6qjQ" name="ProducerConsumer">
+ <packagedElement xmi:type="uml:Package" xmi:id="_lr_zAKwJEeCgusK7cm6qjQ" name="ComponentModel">
+ <packagedElement xmi:type="uml:Package" xmi:id="_lsBBIKwJEeCgusK7cm6qjQ" name="interfaces">
+ <packagedElement xmi:type="uml:Interface" xmi:id="_lsBoMKwJEeCgusK7cm6qjQ" name="D_Push_PubData">
+ <ownedOperation xmi:id="_lsKLEKwJEeCgusK7cm6qjQ" name="push">
+ <ownedParameter xmi:id="_lsMAQKwJEeCgusK7cm6qjQ" name="data" type="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ </ownedOperation>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Interface" xmi:id="_AaULULGSEeCfWNndpgPDWA" name="D_PullConsumer_PubData">
+ <ownedOperation xmi:id="_Aa-SoLGSEeCfWNndpgPDWA" name="pull">
+ <ownedParameter xmi:id="_AbXUMLGSEeCfWNndpgPDWA" name="ret" type="_wFJ3IP91Ed6Jt8e-UqrRdQ" direction="return"/>
+ </ownedOperation>
+ <ownedOperation xmi:id="_AbZwcLGSEeCfWNndpgPDWA" name="hasData">
+ <ownedParameter xmi:id="_Aba-kLGSEeCfWNndpgPDWA" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_Bv7l0B-VEd6nGq8wpI2tjg"/>
+ </ownedParameter>
+ </ownedOperation>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/StandardL2.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_GcC0cAHtEd6HSdiss9GQ0A">
+ <eAnnotations xmi:id="_Gd1kMAHtEd6HSdiss9GQ0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://papyrus/CppProfile/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PapyrusCpp_PROFILES/PapyrusCpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ <profileApplication xmi:id="_z1TwgFW3Ed63BrxiKsw-0Q">
+ <eAnnotations xmi:id="_z2GasFW3Ed63BrxiKsw-0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://papyrus/FCMProfile/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_sfyAwEbjEd-l4NeVOJZDkA">
+ <eAnnotations xmi:id="_siunEEbjEd-l4NeVOJZDkA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//GCM"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_YgAioAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_SPVg0KmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:id="_Se6N4KmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_b9oZ5rG3Ed-tmN4hwNCxXQ"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_3VS0wAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_SfbyUKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:id="_SuJjwKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SW_ResourceCore"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_-1fcUBJdEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ <profileApplication xmi:id="_f2hIMKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:id="_gEtVMKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SW_Concurrency"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_A_vtYBJeEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ <profileApplication xmi:id="_popJkKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:id="_p1PbIKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//HLAM"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_yNSZIAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_yzqusKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:id="_zCWq8KmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SW_Brokering"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_Cf874BJeEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ <profileApplication xmi:id="_6xYMIKmqEeCxII-g1_Lmeg">
+ <eAnnotations xmi:id="_6_6-cKmqEeCxII-g1_Lmeg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SW_Interaction"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_EIfnABJeEdy3Td9UhuLFPg"/>
+ </profileApplication>
+ <profileApplication xmi:id="_tZuBwE0tEeG4IqgA7gSE6w">
+ <eAnnotations xmi:id="_tisXkE0tEeG4IqgA7gSE6w" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ </profileApplication>
+ </uml:Model>
+ <FCM:DerivedElement xmi:id="_B9o7sP6yEd6Ie_kieu_3CQ" base_Element="_dH4RIKF4Ed6FqJCjEUrkqQ">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:Port xmi:id="_GofhQP6yEd6Ie_kieu_3CQ" base_Port="_4KiE8DLbEd2qeKRLMdIx_A">
+ <kind href="pathmap://QML_CORE/core.uml#_pE6GUFR1Ed6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:Port xmi:id="_IWQqoP6yEd6Ie_kieu_3CQ" base_Port="_DtWn4DLcEd2qeKRLMdIx_A">
+ <kind href="pathmap://QML_CORE/core.uml#_qOK0cFR1Ed6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:DerivedElement xmi:id="_RwGb8P6_Ed6Zw96O-tCw7A"/>
+ <FCM:DerivedElement xmi:id="_RxVyEP6_Ed6Zw96O-tCw7A"/>
+ <Cpp:CppInclude xmi:id="_7SAnAP76Ed6Zw96O-tCw7A" body="#include &lt;unistd.h>&#xA;#include &lt;iostream>&#xA;using namespace std;" base_class="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <Cpp:CppInclude xmi:id="_Sa4nEP77Ed6Zw96O-tCw7A" body="#include &lt;iostream>&#xA;using namespace std;" base_class="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <FCM:DerivedElement xmi:id="_RoIMoP94Ed6628OhKk_dpg"/>
+ <FCM:DerivedElement xmi:id="_IFlIEARJEd--t-uhRn9OBA"/>
+ <FCM:ContainerRule xmi:id="_b-TmAARJEd--t-uhRn9OBA">
+ <portSet href="pathmap://QML_CORE/core.uml#__SL-kNtxEd6nqsBVkgJEEA"/>
+ </FCM:ContainerRule>
+ <FCM:DerivedElement xmi:id="_bmwhUARMEd-OidZzGKCpzg"/>
+ <FCM:DerivedElement xmi:id="_xjNC4ATuEd-Zc_RSu20WjA"/>
+ <FCM:DerivedElement xmi:id="_LZoQ4AVIEd-rcKh6R_xjRQ"/>
+ <FCM:DerivedElement xmi:id="_oMpYkAWxEd-jrvNV_WQOlA"/>
+ <FCM:DerivedElement xmi:id="_Fd6d0AnREd-co_m_wv4b6A"/>
+ <FCM:DerivedElement xmi:id="_uLARMBGVEd-rfYlCjUOxJQ"/>
+ <FCM:DerivedElement xmi:id="_qdjxQBGkEd-Jq_XWT8Mhpg"/>
+ <FCM:DerivedElement xmi:id="_VOzfEBGlEd-Jq_XWT8Mhpg"/>
+ <FCM:DerivedElement xmi:id="_N8BrMBI4Ed-3zOZ0RGapGA"/>
+ <FCM:DerivedElement xmi:id="_jIS30BI8Ed-XjYZ05V-9-Q"/>
+ <FCM:DerivedElement xmi:id="_E5UhUBJIEd-XjYZ05V-9-Q"/>
+ <FCM:DerivedElement xmi:id="_THoRwBJWEd-QgZm_R1AKbA"/>
+ <FCM:DerivedElement xmi:id="_z0CVcBQ2Ed-_dI0JopJMvQ"/>
+ <FCM:DerivedElement xmi:id="_Ke_UsBb7Ed-u0pMEAnvpEQ"/>
+ <FCM:DerivedElement xmi:id="_uOkD4D15Ed-qiK1VZWszhA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE//sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_uOqKgD15Ed-qiK1VZWszhA" base_Element="_uOmgID15Ed-qiK1VZWszhA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_uOz7gD15Ed-qiK1VZWszhA" base_Element="_uOtN0D15Ed-qiK1VZWszhA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <Cpp:CppVisibility xmi:id="_0VnhsD15Ed-qiK1VZWszhA" value="public" base_generalization="_NItbAP94Ed6628OhKk_dpg"/>
+ <FCM:DerivedElement xmi:id="_a4LokD16Ed-qiK1VZWszhA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE//sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_a4RvMD16Ed-qiK1VZWszhA" base_Element="_uOmgID15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_a4VZkD16Ed-qiK1VZWszhA" base_Element="_uOtN0D15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_cdXBMD17Ed-qiK1VZWszhA" base_Element="_uOmgID15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_cdaEgD17Ed-qiK1VZWszhA" base_Element="_uOtN0D15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_C3YKUEbjEd-l4NeVOJZDkA" base_Element="_uOmgID15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_C3pQEEbjEd-l4NeVOJZDkA" base_Element="_uOtN0D15Ed-qiK1VZWszhA"/>
+ <FCM:DerivedElement xmi:id="_igKiENAAEd-TP80eVS-2Rg" base_Element="_tyjRy8__Ed-TP80eVS-2Rg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_igVhMNAAEd-TP80eVS-2Rg" base_Element="_tyjRzM__Ed-TP80eVS-2Rg">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <Cpp:CppInclude xmi:id="_11OtwPcaEd-KM6l7lmIPkw" body="#include &lt;unistd.h>&#xA;#include &lt;iostream>&#xA;using namespace std;" base_class="_tyiqsc__Ed-TP80eVS-2Rg"/>
+ <FCM:Configuration xmi:id="_qQdP8CgjEeC5Ga5kAgjl0g" base_Class="_qP52UCgjEeC5Ga5kAgjl0g" deploymentPlan="_xB2CEDOFEeCldqx_51Yicg">
+ <configOptions href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:Configuration>
+ <FCM:Target xmi:id="_LD_uICr7EeCfcI_SvPT4lw" base_Node="_zY9vMDLiEd2RVeNawwNNzg">
+ <targetArch href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ </FCM:Target>
+ <FCM:DeploymentPlan xmi:id="_xB2CEDOFEeCldqx_51Yicg" mainInstance="_xB3QMDOFEeCldqx_51Yicg" base_Package="_xBxwoDOFEeCldqx_51Yicg"/>
+ <FCM:Configuration xmi:id="_zNf4QD5wEeC-VMxjm_qUAg" base_Class="_xekRQD5wEeC-VMxjm_qUAg" deploymentPlan="_zwQc4LF4EeC9yscvWqW-eg">
+ <configOptions href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:Configuration>
+ <GCM:FlowPort xmi:id="_DwpFMJZ7EeCiU5xXzp1cKQ" direction="in" base_Port="_4KiE8DLbEd2qeKRLMdIx_A"/>
+ <GCM:FlowPort xmi:id="_NWXCQJZ7EeCiU5xXzp1cKQ" direction="in" base_Port="_tyiqs8__Ed-TP80eVS-2Rg"/>
+ <FCM:Port xmi:id="_tyjRzc__Ed-TP80eVS-2Rg" base_Port="_tyiqs8__Ed-TP80eVS-2Rg">
+ <kind href="pathmap://QML_CORE/core.uml#_x5mL4FRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <GCM:FlowPort xmi:id="_ow3PkJZ7EeCiU5xXzp1cKQ" direction="out" base_Port="_DtWn4DLcEd2qeKRLMdIx_A"/>
+ <FCM:DerivedElement xmi:id="_lsJkAKwJEeCgusK7cm6qjQ" base_Element="_lsBoMKwJEeCgusK7cm6qjQ" source="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ <FCM:DeploymentPlan xmi:id="_zwQc4LF4EeC9yscvWqW-eg" mainInstance="_zwQc4bF4EeC9yscvWqW-eg" base_Package="_zwMLcLF4EeC9yscvWqW-eg"/>
+ <FCM:DerivedElement xmi:id="_AawQMLGSEeCfWNndpgPDWA" base_Element="_AaULULGSEeCfWNndpgPDWA" source="_wFJ3IP91Ed6Jt8e-UqrRdQ"/>
+ <FCM:DerivedElement xmi:id="_T7RXwAcsEeGYWLReZHFIwA" base_Element="_T7D8YAcsEeGYWLReZHFIwA" source="_lsKLEKwJEeCgusK7cm6qjQ"/>
+ <Alloc:Allocate xmi:id="_vccHcE0tEeG4IqgA7gSE6w" base_Abstraction="_vcX2AE0tEeG4IqgA7gSE6w"/>
+ <Alloc:Allocate xmi:id="_wq1NME0tEeG4IqgA7gSE6w" base_Abstraction="_wqyJ4E0tEeG4IqgA7gSE6w"/>
+ <FCM:Connector xmi:id="_iADdkE2rEeGl8qrc8BM7vA" base_Connector="_efVI0E2rEeGl8qrc8BM7vA">
+ <ic href="pathmap://QML_CORE/fifo.uml#_xQ_ccHUuEd6R5tffIPrlPg"/>
+ </FCM:Connector>
+ <FCM:RuleApplication xmi:id="_FeS3AF7zEeGA7qTe7UD05A" base_Class="_tyiqsc__Ed-TP80eVS-2Rg">
+ <containerRule href="pathmap://QML_CORE/core.uml#_3Jq5MARLEd-OidZzGKCpzg"/>
+ <containerRule href="pathmap://QML_TRACE/tracing.uml#_ISo6gLdwEd-CtfrGQre34Q"/>
+ <propagateRule>false</propagateRule>
+ <propagateRule>false</propagateRule>
+ </FCM:RuleApplication>
+ <FCM:RuleApplication xmi:id="_vu8KkG6IEeGqWMX2LwdLDw" base_Class="_oqZNUDLaEd2qeKRLMdIx_A">
+ <containerRule href="pathmap://QML_TRACE/tracing.uml#_ISo6gLdwEd-CtfrGQre34Q"/>
+ <propagateRule>false</propagateRule>
+ </FCM:RuleApplication>
+</xmi:XMI>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.di b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.di
new file mode 100644
index 00000000000..606e074c54d
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.di
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi" xmlns:history="http://www.eclipse.org/papyrus/0.7.0/controlmode">
+ <di:SashWindowsMngr xmi:id="_m5icIOxGEd-2rr_yAeKkjQ">
+ <pageList xmi:id="_m5icIexGEd-2rr_yAeKkjQ">
+ <availablePage xmi:id="_m5icIuxGEd-2rr_yAeKkjQ">
+ <emfPageIdentifier href="tracing.notation#_U-SDoIKfEd-xPu-WdpUyIQ"/>
+ </availablePage>
+ <availablePage xmi:id="_m5icI-xGEd-2rr_yAeKkjQ">
+ <emfPageIdentifier href="tracing.notation#_o5H2cJagEd-kUIqFByffIQ"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="tracing.notation#_WYtQ8KbsEeCMd5eKvetORw"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="tracing.notation#_cL_W0PUPEeCn1-FCrfecFg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="tracing.notation#_noMIQPxWEeGOK9t90vpALA"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="tracing.notation#_PCJVYCmiEeKp-eCvZDLsaw"/>
+ </availablePage>
+ </pageList>
+ <sashModel xmi:id="_m5icJOxGEd-2rr_yAeKkjQ" currentSelection="_m5jDMOxGEd-2rr_yAeKkjQ">
+ <windows xmi:id="_m5icJexGEd-2rr_yAeKkjQ">
+ <children xsi:type="di:TabFolder" xmi:id="_m5jDMOxGEd-2rr_yAeKkjQ">
+ <children xmi:id="_m5jDMexGEd-2rr_yAeKkjQ">
+ <emfPageIdentifier href="tracing.notation#_U-SDoIKfEd-xPu-WdpUyIQ"/>
+ </children>
+ <children xmi:id="_m5jDMuxGEd-2rr_yAeKkjQ">
+ <emfPageIdentifier href="tracing.notation#_o5H2cJagEd-kUIqFByffIQ"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="tracing.notation#_WYtQ8KbsEeCMd5eKvetORw"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="tracing.notation#_cL_W0PUPEeCn1-FCrfecFg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="tracing.notation#_noMIQPxWEeGOK9t90vpALA"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="tracing.notation#_PCJVYCmiEeKp-eCvZDLsaw"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+ </di:SashWindowsMngr>
+ <history:ControledResource xmi:id="_m5jDM-xGEd-2rr_yAeKkjQ"/>
+ <history:ControledResource xmi:id="_m5jDNOxGEd-2rr_yAeKkjQ"/>
+ <history:ControledResource xmi:id="_m5jDNexGEd-2rr_yAeKkjQ"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.notation b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.notation
new file mode 100644
index 00000000000..bea3f251dce
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.notation
@@ -0,0 +1,1078 @@
+<?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:FCM="http://papyrus/FCMProfile/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_U-SDoIKfEd-xPu-WdpUyIQ" type="CompositeStructure" name="OTF composition" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_jKzMsIKfEd-xPu-WdpUyIQ" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jKzzwIKfEd-xPu-WdpUyIQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jKzzwYKfEd-xPu-WdpUyIQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jKzzwoKfEd-xPu-WdpUyIQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jK0a0IKfEd-xPu-WdpUyIQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jK0a0YKfEd-xPu-WdpUyIQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jK0a0oKfEd-xPu-WdpUyIQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_plj5oKbnEeC0_qP7CUZIiQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KvrVIKboEeC0_qP7CUZIiQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KvrVIaboEeC0_qP7CUZIiQ" key="StereotypeList" value="FCM::UseInstanceConfigurator"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Kvr8MKboEeC0_qP7CUZIiQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Kvr8MaboEeC0_qP7CUZIiQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Kvr8MqboEeC0_qP7CUZIiQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_jK0a04KfEd-xPu-WdpUyIQ" type="5156">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fyT24KbnEeC0_qP7CUZIiQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iaFxcKbnEeC0_qP7CUZIiQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iaFxcabnEeC0_qP7CUZIiQ" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iaFxcqbnEeC0_qP7CUZIiQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iaFxc6bnEeC0_qP7CUZIiQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_iaFxdKbnEeC0_qP7CUZIiQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jK0a1IKfEd-xPu-WdpUyIQ" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_rV9bULniEeCxXoyQxQ47PQ" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rV-CYLniEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rV-pcLniEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rV-pcbniEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rV-pcrniEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rV-pc7niEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rV-pdLniEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rV-pdbniEeCxXoyQxQ47PQ" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rV-pdrniEeCxXoyQxQ47PQ" type="7077">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rV-pd7niEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Property" href="tracing.uml#_plSuEF23Ed-12d_h0i1xhQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rV9bUbniEeCxXoyQxQ47PQ" x="26" y="5" width="150"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jK0a1YKfEd-xPu-WdpUyIQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_aF1w4DKeEd-WprEKTCaiMA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jKzMsYKfEd-xPu-WdpUyIQ" x="126" y="126" width="289" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__tMDsPZREd-o7NjgdW2_VA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__tXC0PZREd-o7NjgdW2_VA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__tXC0fZREd-o7NjgdW2_VA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__tXC0vZREd-o7NjgdW2_VA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__tXp4PZREd-o7NjgdW2_VA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__tXp4fZREd-o7NjgdW2_VA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__tXp4vZREd-o7NjgdW2_VA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-pwCgCheEeC5Ga5kAgjl0g" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_geSGsNCuEeGbAP2dj5QUzg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_geSGsdCuEeGbAP2dj5QUzg" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_geSGstCuEeGbAP2dj5QUzg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_geSGs9CuEeGbAP2dj5QUzg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_geSGtNCuEeGbAP2dj5QUzg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__tXp4_ZREd-o7NjgdW2_VA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__tXp5PZREd-o7NjgdW2_VA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__tXp5fZREd-o7NjgdW2_VA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UfVIkCVHEeCPS8GFKAaKxw" type="3069" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UfVvoCVHEeCPS8GFKAaKxw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UfWWsCVHEeCPS8GFKAaKxw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UfWWsSVHEeCPS8GFKAaKxw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UfWWsiVHEeCPS8GFKAaKxw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UfWWsyVHEeCPS8GFKAaKxw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UfWWtCVHEeCPS8GFKAaKxw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UfWWtSVHEeCPS8GFKAaKxw" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UfWWtiVHEeCPS8GFKAaKxw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UfW9wCVHEeCPS8GFKAaKxw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UfW9wSVHEeCPS8GFKAaKxw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UfVIkSVHEeCPS8GFKAaKxw" x="-10" y="54"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_apuYoDNwEd-1k-POY2IaLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__tMDsfZREd-o7NjgdW2_VA" x="540" y="126" width="199" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SrfzcCVHEeCPS8GFKAaKxw" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SrhBkCVHEeCPS8GFKAaKxw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SrhBkSVHEeCPS8GFKAaKxw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SrhBkiVHEeCPS8GFKAaKxw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SrhBkyVHEeCPS8GFKAaKxw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SrhBlCVHEeCPS8GFKAaKxw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SrhBlSVHEeCPS8GFKAaKxw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SrhBliVHEeCPS8GFKAaKxw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SrhBlyVHEeCPS8GFKAaKxw" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SrhBmCVHEeCPS8GFKAaKxw"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SrfzcSVHEeCPS8GFKAaKxw" x="540" y="27" width="199"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ap2xEKAdEeCF0uoVQbVQRg" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ap4mQKAdEeCF0uoVQbVQRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ap4mQaAdEeCF0uoVQbVQRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ap5NUKAdEeCF0uoVQbVQRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ap5NUaAdEeCF0uoVQbVQRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ap5NUqAdEeCF0uoVQbVQRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ap5NU6AdEeCF0uoVQbVQRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JvqrYKAeEeCF0uoVQbVQRg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_geWYINCuEeGbAP2dj5QUzg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_geWYIdCuEeGbAP2dj5QUzg" key="StereotypeList" value=",FCM::UseInstanceConfigurator"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_geWYItCuEeGbAP2dj5QUzg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_geWYI9CuEeGbAP2dj5QUzg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_geWYJNCuEeGbAP2dj5QUzg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ap5NVKAdEeCF0uoVQbVQRg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ap50YKAdEeCF0uoVQbVQRg" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ap50YaAdEeCF0uoVQbVQRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_aoSDwKAdEeCF0uoVQbVQRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ap2xEaAdEeCF0uoVQbVQRg" x="126" y="288" width="289" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_YUql4KAeEeCF0uoVQbVQRg" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YUrM8KAeEeCF0uoVQbVQRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YUrM8aAeEeCF0uoVQbVQRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YUr0AKAeEeCF0uoVQbVQRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YUr0AaAeEeCF0uoVQbVQRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_YUr0AqAeEeCF0uoVQbVQRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_YUr0A6AeEeCF0uoVQbVQRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_YUr0BKAeEeCF0uoVQbVQRg" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_YUcjcKAeEeCF0uoVQbVQRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YUql4aAeEeCF0uoVQbVQRg" x="486" y="333" width="253"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bctDoLniEeCxXoyQxQ47PQ" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bctDorniEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bctDo7niEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bctqsLniEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bctqsbniEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bctqsrniEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bctqs7niEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bctqtLniEeCxXoyQxQ47PQ" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_bb4kQLniEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bctDobniEeCxXoyQxQ47PQ" x="486" y="252" width="253"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Sf0aQDaUEeKkY-29HX5sMQ" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Sf4rsDaUEeKkY-29HX5sMQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sf5SwDaUEeKkY-29HX5sMQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Sf5SwTaUEeKkY-29HX5sMQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sf550DaUEeKkY-29HX5sMQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Sf550TaUEeKkY-29HX5sMQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sf550jaUEeKkY-29HX5sMQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Sf6g4DaUEeKkY-29HX5sMQ" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Sf6g4TaUEeKkY-29HX5sMQ" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Sf6g4jaUEeKkY-29HX5sMQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sf6g4zaUEeKkY-29HX5sMQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_MM6RwDaUEeKkY-29HX5sMQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Sf0aQTaUEeKkY-29HX5sMQ" x="126" y="18" width="288" height="73"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_U-SDoYKfEd-xPu-WdpUyIQ"/>
+ <element xmi:type="uml:Package" href="tracing.uml#_1rsK8PwkEeGWn-a9PUOYcA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Tbu9kCVHEeCPS8GFKAaKxw" type="4015" source="__tMDsPZREd-o7NjgdW2_VA" target="_SrfzcCVHEeCPS8GFKAaKxw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TbvkoCVHEeCPS8GFKAaKxw" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TbwLsCVHEeCPS8GFKAaKxw" x="-9" y="-55"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Tbu9kSVHEeCPS8GFKAaKxw" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="tracing.uml#_9zJj0DguEd-9wq2wHPy3lw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Tbu9kiVHEeCPS8GFKAaKxw" points="[-63, 22, 168, -57]$[-200, 68, 31, -11]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nSj-AKAdEeCF0uoVQbVQRg" type="4015" source="_ap2xEKAdEeCF0uoVQbVQRg" target="_jKzMsIKfEd-xPu-WdpUyIQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nSlzMKAdEeCF0uoVQbVQRg" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nSlzMaAdEeCF0uoVQbVQRg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_nSj-AaAdEeCF0uoVQbVQRg" fontName="" fontHeight="10"/>
+ <element xmi:type="uml:Generalization" href="tracing.uml#_nQ6YMKAdEeCF0uoVQbVQRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nSj-AqAdEeCF0uoVQbVQRg" points="[1, -9, 0, 71]$[3, -65, 2, 15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nTTk4KAdEeCF0uoVQbVQRg" id="(0.5,0.10588235294117647)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nTWBIKAdEeCF0uoVQbVQRg" id="(0.5017301038062284,0.981651376146789)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SC9GALniEeCxXoyQxQ47PQ" type="4002" source="_YUql4KAeEeCF0uoVQbVQRg" target="_ap2xEKAdEeCF0uoVQbVQRg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_SC9GAbniEeCxXoyQxQ47PQ" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SC9GArniEeCxXoyQxQ47PQ" points="[-43, -14, 37, 11]$[-70, -17, 10, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SDQoALniEeCxXoyQxQ47PQ" id="(0.0,0.5666666666666667)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SDQoAbniEeCxXoyQxQ47PQ" id="(0.8728813559322034,0.9058823529411765)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KOsDALnjEeCxXoyQxQ47PQ" type="4002" source="_bctDoLniEeCxXoyQxQ47PQ" target="_jKzMsIKfEd-xPu-WdpUyIQ" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_KOsDAbnjEeCxXoyQxQ47PQ" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KOsDArnjEeCxXoyQxQ47PQ" points="[-18, -15, 83, 67]$[-71, -78, 30, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KO9IwLnjEeCxXoyQxQ47PQ" id="(0.07003891050583658,0.45)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KO9v0LnjEeCxXoyQxQ47PQ" id="(0.9,0.6513761467889908)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_We5e8DaUEeKkY-29HX5sMQ" type="4015" source="_jKzMsIKfEd-xPu-WdpUyIQ" target="_Sf0aQDaUEeKkY-29HX5sMQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_We77MDaUEeKkY-29HX5sMQ" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_We77MTaUEeKkY-29HX5sMQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_We5e8TaUEeKkY-29HX5sMQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="tracing.uml#_WdRuUDaUEeKkY-29HX5sMQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_We5e8jaUEeKkY-29HX5sMQ" points="[-1, -11, 0, 49]$[-1, -46, 0, 14]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WfoewDaUEeKkY-29HX5sMQ" id="(0.5017301038062284,0.10091743119266056)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WfoewTaUEeKkY-29HX5sMQ" id="(0.5,0.8082191780821918)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_o5H2cJagEd-kUIqFByffIQ" type="PapyrusUMLClassDiagram" name="ExternTypes" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_s6A5AJagEd-kUIqFByffIQ" type="2007" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s6BgEJagEd-kUIqFByffIQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s6BgEZagEd-kUIqFByffIQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s6BgEpagEd-kUIqFByffIQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s6BgE5agEd-kUIqFByffIQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_s6BgFJagEd-kUIqFByffIQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_s6BgFZagEd-kUIqFByffIQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ufdrYMaZEd-EY7J8dSXmew" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ufeScMaZEd-EY7J8dSXmew" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ufeSccaZEd-EY7J8dSXmew" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ufeScsaZEd-EY7J8dSXmew" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ufeSc8aZEd-EY7J8dSXmew" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ufeSdMaZEd-EY7J8dSXmew" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s6BgFpagEd-kUIqFByffIQ" type="5026"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_s6BgF5agEd-kUIqFByffIQ" type="7016">
+ <children xmi:type="notation:Shape" xmi:id="_sXxuoJagEd-kUIqFByffIQ" type="2008" fontName="Sans Serif" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sXy8wJagEd-kUIqFByffIQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sXy8wZagEd-kUIqFByffIQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sXy8wpagEd-kUIqFByffIQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sXy8w5agEd-kUIqFByffIQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sXzj0JagEd-kUIqFByffIQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sXzj0ZagEd-kUIqFByffIQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_sXzj0pagEd-kUIqFByffIQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sXzj05agEd-kUIqFByffIQ" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sXzj1JagEd-kUIqFByffIQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sXzj1ZagEd-kUIqFByffIQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sXzj1pagEd-kUIqFByffIQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sXzj15agEd-kUIqFByffIQ" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sXzj2JagEd-kUIqFByffIQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sXzj2ZagEd-kUIqFByffIQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sXzj2pagEd-kUIqFByffIQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sXzj25agEd-kUIqFByffIQ" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sXzj3JagEd-kUIqFByffIQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sXzj3ZagEd-kUIqFByffIQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sXzj3pagEd-kUIqFByffIQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_W0t44Dj1Ed-nsvkE2JvSTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sXxuoZagEd-kUIqFByffIQ" x="40" y="32"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s6BgGJagEd-kUIqFByffIQ"/>
+ </children>
+ <element xmi:type="uml:Package" href="tracing.uml#_IewAUDguEd-9wq2wHPy3lw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s6A5AZagEd-kUIqFByffIQ" x="105" y="135" width="316" height="196"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_o5H2cZagEd-kUIqFByffIQ"/>
+ <element xmi:type="uml:Package" href="tracing.uml#_IewAUDguEd-9wq2wHPy3lw"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_WYtQ8KbsEeCMd5eKvetORw" type="PapyrusUMLClassDiagram" name="Tracing" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_HtaQcKcIEeCHb6NpAmqEdg" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HtbekKcIEeCHb6NpAmqEdg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HtbekacIEeCHb6NpAmqEdg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HtbekqcIEeCHb6NpAmqEdg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Htbek6cIEeCHb6NpAmqEdg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HtbelKcIEeCHb6NpAmqEdg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HtbelacIEeCHb6NpAmqEdg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HtbelqcIEeCHb6NpAmqEdg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HtcFoKcIEeCHb6NpAmqEdg" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_3B-kQBatEeGq1uSGvh4rcQ" type="3012" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Property" href="tracing.uml#_aF1w5TKeEd-WprEKTCaiMA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3B-kQRatEeGq1uSGvh4rcQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3B_LUBatEeGq1uSGvh4rcQ" type="3012" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Property" href="tracing.uml#_plSuEF23Ed-12d_h0i1xhQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3B_LURatEeGq1uSGvh4rcQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HtcFoacIEeCHb6NpAmqEdg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HtcFoqcIEeCHb6NpAmqEdg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HtcFo6cIEeCHb6NpAmqEdg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HtcFpKcIEeCHb6NpAmqEdg" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_3B8IABatEeGq1uSGvh4rcQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="tracing.uml#_aF1w7zKeEd-WprEKTCaiMA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3B8IARatEeGq1uSGvh4rcQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3B99MBatEeGq1uSGvh4rcQ" type="3013" fontName="Sans Serif" lineColor="0">
+ <element xmi:type="uml:Operation" href="tracing.uml#_aF1w8TKeEd-WprEKTCaiMA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3B99MRatEeGq1uSGvh4rcQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HtcFpacIEeCHb6NpAmqEdg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HtcFpqcIEeCHb6NpAmqEdg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HtcFp6cIEeCHb6NpAmqEdg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HtcFqKcIEeCHb6NpAmqEdg" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HtcFqacIEeCHb6NpAmqEdg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HtcFqqcIEeCHb6NpAmqEdg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HtcFq6cIEeCHb6NpAmqEdg"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_aF1w4DKeEd-WprEKTCaiMA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HtaQcacIEeCHb6NpAmqEdg" x="77" y="36" width="248" height="118"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xQ_EwLnhEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xQ_r0LnhEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xQ_r0bnhEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xQ_r0rnhEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xQ_r07nhEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xQ_r1LnhEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xQ_r1bnhEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xQ_r1rnhEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xQ_r17nhEeCxXoyQxQ47PQ" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xQ_r2LnhEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xQ_r2bnhEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xQ_r2rnhEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xQ_r27nhEeCxXoyQxQ47PQ" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xQ_r3LnhEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xQ_r3bnhEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xQ_r3rnhEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xRAS4LnhEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xRAS4bnhEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xRAS4rnhEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xRAS47nhEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_apuYoDNwEd-1k-POY2IaLg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xQ_EwbnhEeCxXoyQxQ47PQ" x="414" y="180"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xRVqELnhEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xRVqErnhEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xRVqE7nhEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xRWRILnhEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xRWRIbnhEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_xRWRIrnhEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xRWRI7nhEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xRWRJLnhEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xRWRJbnhEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xRWRJrnhEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xRWRJ7nhEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xRWRKLnhEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xRWRKbnhEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xRWRKrnhEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xRWRK7nhEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xRWRLLnhEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xRWRLbnhEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xRWRLrnhEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xRWRL7nhEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xRWRMLnhEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/OS-AL-core.uml#_-HeCsDj_Edy0Rd6V_tf1-Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xRVqEbnhEeCxXoyQxQ47PQ" x="414" y="36" height="91"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yDfDQLniEeCxXoyQxQ47PQ" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yDfqULniEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yDfqUbniEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yDfqUrniEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yDfqU7niEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yDfqVLniEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yDfqVbniEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yDgRYLniEeCxXoyQxQ47PQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yDgRYbniEeCxXoyQxQ47PQ" visible="false" type="7017">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yDgRYrniEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yDgRY7niEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yDgRZLniEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yDgRZbniEeCxXoyQxQ47PQ" visible="false" type="7018">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yDgRZrniEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yDgRZ7niEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yDgRaLniEeCxXoyQxQ47PQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yDgRabniEeCxXoyQxQ47PQ" visible="false" type="7019">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yDgRarniEeCxXoyQxQ47PQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yDgRa7niEeCxXoyQxQ47PQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yDgRbLniEeCxXoyQxQ47PQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_kIcwsKbnEeC0_qP7CUZIiQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yDfDQbniEeCxXoyQxQ47PQ" x="72" y="216" width="253" height="63"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zxrqcLniEeCxXoyQxQ47PQ" type="2012" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zxsRgLniEeCxXoyQxQ47PQ" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zxsRgbniEeCxXoyQxQ47PQ" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zxs4kLniEeCxXoyQxQ47PQ" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zxs4kbniEeCxXoyQxQ47PQ" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zxs4krniEeCxXoyQxQ47PQ" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zxs4k7niEeCxXoyQxQ47PQ" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_zxs4lLniEeCxXoyQxQ47PQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_hd5WkKPUEeClvI8FjeO1Ow"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zxrqcbniEeCxXoyQxQ47PQ" x="72" y="323" width="415"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_WYtQ8absEeCMd5eKvetORw"/>
+ <element xmi:type="uml:Package" href="tracing.uml#_g2IY8DKeEd-WprEKTCaiMA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_xTj3oLnhEeCxXoyQxQ47PQ" type="4008" source="_xQ_EwLnhEeCxXoyQxQ47PQ" target="_xRVqELnhEeCxXoyQxQ47PQ" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_xTkesLnhEeCxXoyQxQ47PQ" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xTkesbnhEeCxXoyQxQ47PQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xTkesrnhEeCxXoyQxQ47PQ" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xTkes7nhEeCxXoyQxQ47PQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_xTj3obnhEeCxXoyQxQ47PQ" fontName="Sans Serif"/>
+ <element xmi:type="uml:Usage" href="tracing.uml#_7uQr8D4OEeC-VMxjm_qUAg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xTj3ornhEeCxXoyQxQ47PQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_cL_W0PUPEeCn1-FCrfecFg" type="CompositeStructure" name="ContainerRules" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_fLhDAPUPEeCn1-FCrfecFg" type="2073" fontName="" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 1" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fLhqEPUPEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fLhqEfUPEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fLhqEvUPEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fLhqE_UPEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fLiRIPUPEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fLiRIfUPEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vao5oBIyEeGU49ezpRnvLg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vapgsBIyEeGU49ezpRnvLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vapgsRIyEeGU49ezpRnvLg" key="StereotypeList" value="FCM::ContainerRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vapgshIyEeGU49ezpRnvLg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vapgsxIyEeGU49ezpRnvLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vapgtBIyEeGU49ezpRnvLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fLiRIvUPEeCn1-FCrfecFg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_fLiRI_UPEeCn1-FCrfecFg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_lBRVcPUPEeCn1-FCrfecFg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lBR8gPUPEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lBR8gfUPEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lBR8gvUPEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lBR8g_UPEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lBR8hPUPEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lBR8hfUPEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RCIRAPUQEeCn1-FCrfecFg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RCI4EPUQEeCn1-FCrfecFg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RCI4EfUQEeCn1-FCrfecFg" key="StereotypeList" value="FCM::InterceptionRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RCI4EvUQEeCn1-FCrfecFg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RCI4E_UQEeCn1-FCrfecFg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_RCI4FPUQEeCn1-FCrfecFg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lBSjkPUPEeCn1-FCrfecFg" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lBSjkfUPEeCn1-FCrfecFg" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lBSjkvUPEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lBSjk_UPEeCn1-FCrfecFg"/>
+ </children>
+ <element xmi:type="uml:Property" href="tracing.uml#_lBO5MPUPEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lBRVcfUPEeCn1-FCrfecFg" x="31" y="10" width="190"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_fLiRJPUPEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fLiRJfUPEeCn1-FCrfecFg"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_GVZxwLdwEd-CtfrGQre34Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fLhDAfUPEeCn1-FCrfecFg" x="81" y="12" width="262" height="106"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gsUucPUPEeCn1-FCrfecFg" type="2073" fontName="" fontHeight="10" fillColor="8905185" gradient="16777215, 16777215, 1" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gsUucvUPEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gsUuc_UPEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gsUudPUPEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gsVVgPUPEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_gsVVgfUPEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gsVVgvUPEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uWhKMBIyEeGU49ezpRnvLg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uWiYUBIyEeGU49ezpRnvLg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uWiYURIyEeGU49ezpRnvLg" key="StereotypeList" value="FCM::ContainerRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uWi_YBIyEeGU49ezpRnvLg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uWi_YRIyEeGU49ezpRnvLg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uWi_YhIyEeGU49ezpRnvLg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gsVVg_UPEeCn1-FCrfecFg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gsVVhPUPEeCn1-FCrfecFg" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_pm7R8PUPEeCn1-FCrfecFg" type="3070" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pm75APUPEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pm8gEPUPEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pm8gEfUPEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pm8gEvUPEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pm8gE_UPEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pm8gFPUPEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TMU3sPUQEeCn1-FCrfecFg" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TMVewPUQEeCn1-FCrfecFg" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TMVewfUQEeCn1-FCrfecFg" key="StereotypeList" value="FCM::InterceptionRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TMVewvUQEeCn1-FCrfecFg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TMVew_UQEeCn1-FCrfecFg" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TMVexPUQEeCn1-FCrfecFg" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pm8gFfUPEeCn1-FCrfecFg" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pm8gFvUPEeCn1-FCrfecFg" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pm8gF_UPEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pm8gGPUPEeCn1-FCrfecFg"/>
+ </children>
+ <element xmi:type="uml:Property" href="tracing.uml#_pm5cwPUPEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pm7R8fUPEeCn1-FCrfecFg" x="31" y="4" width="190"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gsVVhfUPEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gsVVhvUPEeCn1-FCrfecFg"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_wHuA0KAdEeCF0uoVQbVQRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gsUucfUPEeCn1-FCrfecFg" x="81" y="135" width="262" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_48My0PUPEeCn1-FCrfecFg" type="2109" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_48NZ4PUPEeCn1-FCrfecFg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48OA8PUPEeCn1-FCrfecFg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_48OA8fUPEeCn1-FCrfecFg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48OA8vUPEeCn1-FCrfecFg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_48OA8_UPEeCn1-FCrfecFg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_48OA9PUPEeCn1-FCrfecFg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_48OA9fUPEeCn1-FCrfecFg" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_aX6QECVIEeCPS8GFKAaKxw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_48My0fUPEeCn1-FCrfecFg" x="432" y="45" width="190" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_I2dzMPwkEeGWn-a9PUOYcA" type="2073" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 1" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I2gPcPwkEeGWn-a9PUOYcA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I2gPcfwkEeGWn-a9PUOYcA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I2gPcvwkEeGWn-a9PUOYcA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I2gPc_wkEeGWn-a9PUOYcA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_I2gPdPwkEeGWn-a9PUOYcA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_I2gPdfwkEeGWn-a9PUOYcA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_RWfTgPwkEeGWn-a9PUOYcA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5GHJMC8CEeKwPrQVP28AQw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5GHJMS8CEeKwPrQVP28AQw" key="StereotypeList" value="FCM::ContainerRule,FCM::UseInstanceConfigurator"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5GHJMi8CEeKwPrQVP28AQw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5GHJMy8CEeKwPrQVP28AQw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_5GHJNC8CEeKwPrQVP28AQw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_I2gPdvwkEeGWn-a9PUOYcA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_I2g2gPwkEeGWn-a9PUOYcA" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_d7RCsPwkEeGWn-a9PUOYcA" type="3070" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d7RCsvwkEeGWn-a9PUOYcA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d7RCs_wkEeGWn-a9PUOYcA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d7RpwPwkEeGWn-a9PUOYcA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d7RpwfwkEeGWn-a9PUOYcA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_d7RpwvwkEeGWn-a9PUOYcA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_d7Rpw_wkEeGWn-a9PUOYcA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_m-VlsPwkEeGWn-a9PUOYcA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-VlsfwkEeGWn-a9PUOYcA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-VlsvwkEeGWn-a9PUOYcA" key="StereotypeList" value="FCM::InterceptionRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-Vls_wkEeGWn-a9PUOYcA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-VltPwkEeGWn-a9PUOYcA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_m-VltfwkEeGWn-a9PUOYcA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_d7RpxPwkEeGWn-a9PUOYcA" type="5126"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_d7RpxfwkEeGWn-a9PUOYcA" visible="false" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_d7RpxvwkEeGWn-a9PUOYcA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d7Rpx_wkEeGWn-a9PUOYcA"/>
+ </children>
+ <element xmi:type="uml:Property" href="tracing.uml#_d7If0PwkEeGWn-a9PUOYcA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d7RCsfwkEeGWn-a9PUOYcA" x="31" y="6" width="190" height="46"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_I2g2gfwkEeGWn-a9PUOYcA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I2g2gvwkEeGWn-a9PUOYcA"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_I2OioPwkEeGWn-a9PUOYcA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I2dzMfwkEeGWn-a9PUOYcA" x="81" y="252" width="262" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_z7rBMChKEeKFu939Pz1RFA" type="2109" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z7zkEChKEeKFu939Pz1RFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z7zkEShKEeKFu939Pz1RFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z7zkEihKEeKFu939Pz1RFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z7zkEyhKEeKFu939Pz1RFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z7zkFChKEeKFu939Pz1RFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z70LIChKEeKFu939Pz1RFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z70LIShKEeKFu939Pz1RFA" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_z43k0ChKEeKFu939Pz1RFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z7rBMShKEeKFu939Pz1RFA" x="432" y="153" width="190" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_068F0ChKEeKFu939Pz1RFA" type="2109" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_069T8ChKEeKFu939Pz1RFA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_069T8ShKEeKFu939Pz1RFA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_069T8ihKEeKFu939Pz1RFA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_069T8yhKEeKFu939Pz1RFA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_069T9ChKEeKFu939Pz1RFA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_069T9ShKEeKFu939Pz1RFA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0697AChKEeKFu939Pz1RFA" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_06dksChKEeKFu939Pz1RFA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_068F0ShKEeKFu939Pz1RFA" x="432" y="252" width="190" height="37"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IhxYwCqLEeKGrchWittz_g" type="2073" fontName="Sans Serif" fillColor="8905185" gradient="16777215, 16777215, 1" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ih2RQCqLEeKGrchWittz_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ih2RQSqLEeKGrchWittz_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ih24UCqLEeKGrchWittz_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ih24USqLEeKGrchWittz_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ih24UiqLEeKGrchWittz_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ih24UyqLEeKGrchWittz_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_phezgCzaEeK_M7tCCLbg5g" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gIh00C8DEeKwPrQVP28AQw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gIh00S8DEeKwPrQVP28AQw" key="StereotypeList" value="FCM::ContainerRule,FCM::UseInstanceConfigurator"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gIh00i8DEeKwPrQVP28AQw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gIib4C8DEeKwPrQVP28AQw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_gIib4S8DEeKwPrQVP28AQw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ih24VCqLEeKGrchWittz_g" type="5156">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NumqACqLEeKGrchWittz_g" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NunRECqLEeKGrchWittz_g" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NunRESqLEeKGrchWittz_g" key="StereotypeList" value="FCM::ContainerRule"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NunREiqLEeKGrchWittz_g" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NunREyqLEeKGrchWittz_g" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NunRFCqLEeKGrchWittz_g" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Ih3fYCqLEeKGrchWittz_g" type="7073">
+ <children xmi:type="notation:Shape" xmi:id="_AxC-IC8PEeKVAPO2lpiVnA" type="3070" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AxFaYC8PEeKVAPO2lpiVnA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AxFaYS8PEeKVAPO2lpiVnA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AxFaYi8PEeKVAPO2lpiVnA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AxGBcC8PEeKVAPO2lpiVnA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_AxGBcS8PEeKVAPO2lpiVnA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_AxGBci8PEeKVAPO2lpiVnA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_AxGBcy8PEeKVAPO2lpiVnA" type="5126">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GQ1AkC8PEeKVAPO2lpiVnA" source="CustomAppearance_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GQ1AkS8PEeKVAPO2lpiVnA" key="CustomAppearance_MaskValue" value="60"/>
+ </eAnnotations>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AxGBdC8PEeKVAPO2lpiVnA" type="7077">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AxGBdS8PEeKVAPO2lpiVnA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AxGBdi8PEeKVAPO2lpiVnA"/>
+ </children>
+ <element xmi:type="uml:Property" href="tracing.uml#_Avfe8C8PEeKVAPO2lpiVnA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AxC-IS8PEeKVAPO2lpiVnA" x="22" y="15" width="165"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Ih3fYSqLEeKGrchWittz_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ih3fYiqLEeKGrchWittz_g"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_If04ACqLEeKGrchWittz_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ihx_0CqLEeKGrchWittz_g" x="81" y="378" width="262" height="109"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LtiEgDdMEeKDRPyuWXNFNA" type="2109" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ltlu4DdMEeKDRPyuWXNFNA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ltlu4TdMEeKDRPyuWXNFNA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ltlu4jdMEeKDRPyuWXNFNA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ltlu4zdMEeKDRPyuWXNFNA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LtmV8DdMEeKDRPyuWXNFNA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LtmV8TdMEeKDRPyuWXNFNA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LtmV8jdMEeKDRPyuWXNFNA" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_LlPEIDdMEeKDRPyuWXNFNA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LtiEgTdMEeKDRPyuWXNFNA" x="432" y="405" width="199" height="28"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_cL_W0fUPEeCn1-FCrfecFg"/>
+ <element xmi:type="uml:Package" href="tracing.uml#_VzFlMLnhEeCxXoyQxQ47PQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_7Gcc0PUPEeCn1-FCrfecFg" type="4002" source="_48My0PUPEeCn1-FCrfecFg" target="_fLhDAPUPEeCn1-FCrfecFg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7Gcc0fUPEeCn1-FCrfecFg" fontName="" fontHeight="10"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7Gcc0vUPEeCn1-FCrfecFg" points="[-6, 6, 106, 0]$[-95, 4, 17, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7GdD4PUPEeCn1-FCrfecFg" id="(0.027649769585253458,0.3333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7GdD4fUPEeCn1-FCrfecFg" id="(0.9341085271317829,0.4154929577464789)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_2gqGcChKEeKFu939Pz1RFA" type="4002" source="_z7rBMChKEeKFu939Pz1RFA" target="_gsUucPUPEeCn1-FCrfecFg" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_2gqGcShKEeKFu939Pz1RFA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2gqGcihKEeKFu939Pz1RFA" points="[-14, -4, 113, 0]$[-116, -5, 11, -1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2hbigChKEeKFu939Pz1RFA" id="(0.14,0.5333333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2hcJkChKEeKFu939Pz1RFA" id="(0.9580152671755725,0.42201834862385323)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3Zi2QChKEeKFu939Pz1RFA" type="4002" source="_068F0ChKEeKFu939Pz1RFA" target="_I2dzMPwkEeGWn-a9PUOYcA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Zi2QShKEeKFu939Pz1RFA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Zi2QihKEeKFu939Pz1RFA" points="[-50, 7, 401, -59]$[-433, 41, 18, -25]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3aLvcChKEeKFu939Pz1RFA" id="(0.6717557251908397,0.14534883720930233)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_UW6VIDdMEeKDRPyuWXNFNA" type="4002" source="_LtiEgDdMEeKDRPyuWXNFNA" target="_IhxYwCqLEeKGrchWittz_g" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_UW6VITdMEeKDRPyuWXNFNA" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UW6VIjdMEeKDRPyuWXNFNA" points="[-4, 7, 105, 0]$[-93, 4, 16, -3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UXAbwDdMEeKDRPyuWXNFNA" id="(0.020100502512562814,0.2708333333333333)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UXAbwTdMEeKDRPyuWXNFNA" id="(0.9389312977099237,0.3486238532110092)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_noMIQPxWEeGOK9t90vpALA" type="CompositeStructure" name="LTTng composition" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_okSkIPxWEeGOK9t90vpALA" type="2073" fontName="" fontHeight="10" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_okSkIfxWEeGOK9t90vpALA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_okSkIvxWEeGOK9t90vpALA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_okSkI_xWEeGOK9t90vpALA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_okSkJPxWEeGOK9t90vpALA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_okSkJfxWEeGOK9t90vpALA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_okSkJvxWEeGOK9t90vpALA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_okSkJ_xWEeGOK9t90vpALA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_okSkKPxWEeGOK9t90vpALA" type="7073">
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_okSkKfxWEeGOK9t90vpALA"/>
+ </children>
+ <element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_okTLMPxWEeGOK9t90vpALA" x="550" y="34" width="199"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_px1VUPxWEeGOK9t90vpALA" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_px3xkPxWEeGOK9t90vpALA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_px3xkfxWEeGOK9t90vpALA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_px3xkvxWEeGOK9t90vpALA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_px3xk_xWEeGOK9t90vpALA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_px4YoPxWEeGOK9t90vpALA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_px4YofxWEeGOK9t90vpALA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__yYLMPzhEeGe5LUTfvP5hQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__yYyQPzhEeGe5LUTfvP5hQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__yYyQfzhEeGe5LUTfvP5hQ" key="StereotypeList" value="FCM::InteractionComponent"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__yYyQvzhEeGe5LUTfvP5hQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__yYyQ_zhEeGe5LUTfvP5hQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__yYyRPzhEeGe5LUTfvP5hQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_px4YovxWEeGOK9t90vpALA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_px4Yo_xWEeGOK9t90vpALA" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_px4YpPxWEeGOK9t90vpALA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_px4YpfxWEeGOK9t90vpALA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EFsToDY_EeKxVvAop17bHw" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EFsToTY_EeKxVvAop17bHw" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="tracing.uml#__yL98PzhEeGe5LUTfvP5hQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EFsTojY_EeKxVvAop17bHw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_EFzoYDY_EeKxVvAop17bHw" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_EFzoYTY_EeKxVvAop17bHw" showTitle="true"/>
+ <element xmi:type="FCM:UseInstanceConfigurator" href="tracing.uml#_1yKFIC8CEeKwPrQVP28AQw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EFzoYjY_EeKxVvAop17bHw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0FsPkDaSEeKxVvAop17bHw" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0Fs2oDaSEeKxVvAop17bHw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0Fs2oTaSEeKxVvAop17bHw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0Fs2ojaSEeKxVvAop17bHw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0Fs2ozaSEeKxVvAop17bHw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0Fs2pDaSEeKxVvAop17bHw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0FtdsDaSEeKxVvAop17bHw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0FtdsTaSEeKxVvAop17bHw" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0FtdsjaSEeKxVvAop17bHw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0FtdszaSEeKxVvAop17bHw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0FtdtDaSEeKxVvAop17bHw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_P4xVsNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0FsPkTaSEeKxVvAop17bHw" x="-10" y="39"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0Fur0DaSEeKxVvAop17bHw" type="3069" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0FvS4DaSEeKxVvAop17bHw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0FvS4TaSEeKxVvAop17bHw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0Fv58DaSEeKxVvAop17bHw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0Fv58TaSEeKxVvAop17bHw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0Fv58jaSEeKxVvAop17bHw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0Fv58zaSEeKxVvAop17bHw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Fv59DaSEeKxVvAop17bHw" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Fv59TaSEeKxVvAop17bHw" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0Fv59jaSEeKxVvAop17bHw" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0Fv59zaSEeKxVvAop17bHw" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_Qk0jYNtuEd2eM5kqcby5ZA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0Fur0TaSEeKxVvAop17bHw" x="280" y="39"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_pwl_MPxWEeGOK9t90vpALA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_px1VUfxWEeGOK9t90vpALA" x="136" y="159" width="290" height="67"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_rGaioPxWEeGOK9t90vpALA" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rGaiovxWEeGOK9t90vpALA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rGaio_xWEeGOK9t90vpALA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rGaipPxWEeGOK9t90vpALA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rGbJsPxWEeGOK9t90vpALA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_rGbJsfxWEeGOK9t90vpALA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_rGbJsvxWEeGOK9t90vpALA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__rfwQPxWEeGOK9t90vpALA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KSvqYCdaEeKGdt7FoegMYA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KSvqYSdaEeKGdt7FoegMYA" key="StereotypeList" value="Cpp::CppInclude,Cpp::ManualGeneration"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KSvqYidaEeKGdt7FoegMYA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KSwRcCdaEeKGdt7FoegMYA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_KSwRcSdaEeKGdt7FoegMYA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_rGbJs_xWEeGOK9t90vpALA" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_rGbJtPxWEeGOK9t90vpALA" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_rGbJtfxWEeGOK9t90vpALA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rGbJtvxWEeGOK9t90vpALA"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_rGPjgPxWEeGOK9t90vpALA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rGaiofxWEeGOK9t90vpALA" x="135" y="342" width="298" height="100"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_r8kHgPxWEeGOK9t90vpALA" type="2109" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r8kukPxWEeGOK9t90vpALA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r8kukfxWEeGOK9t90vpALA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r8kukvxWEeGOK9t90vpALA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r8kuk_xWEeGOK9t90vpALA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_r8kulPxWEeGOK9t90vpALA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_r8kulfxWEeGOK9t90vpALA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_r8kulvxWEeGOK9t90vpALA" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_r8PXYPxWEeGOK9t90vpALA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r8kHgfxWEeGOK9t90vpALA" x="594" y="288"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tt4UIPxWEeGOK9t90vpALA" type="2109" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tt47MfxWEeGOK9t90vpALA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tt47MvxWEeGOK9t90vpALA" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tt47M_xWEeGOK9t90vpALA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tt47NPxWEeGOK9t90vpALA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_tt5iQPxWEeGOK9t90vpALA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_tt5iQfxWEeGOK9t90vpALA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tt5iQvxWEeGOK9t90vpALA" type="5192"/>
+ <element xmi:type="uml:Comment" href="tracing.uml#_ttvxQPxWEeGOK9t90vpALA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tt47MPxWEeGOK9t90vpALA" x="595" y="360"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__O0wAPzSEeGKDvxFM1SZ_g" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__O4aYPzSEeGKDvxFM1SZ_g" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__O4aYfzSEeGKDvxFM1SZ_g" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__O5BcPzSEeGKDvxFM1SZ_g" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__O5BcfzSEeGKDvxFM1SZ_g" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__O5BcvzSEeGKDvxFM1SZ_g" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__O5Bc_zSEeGKDvxFM1SZ_g" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__O5ogPzSEeGKDvxFM1SZ_g" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__O5ogfzSEeGKDvxFM1SZ_g" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__O5ogvzSEeGKDvxFM1SZ_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__O5og_zSEeGKDvxFM1SZ_g"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_v-VBcPzSEeGKDvxFM1SZ_g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__O1XEPzSEeGKDvxFM1SZ_g" x="585" y="162" width="154" height="55"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7pVBUDHKEeKt1a2SZnJmwg" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7pdkMDHKEeKt1a2SZnJmwg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7pdkMTHKEeKt1a2SZnJmwg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7peLQDHKEeKt1a2SZnJmwg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7peLQTHKEeKt1a2SZnJmwg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7peLQjHKEeKt1a2SZnJmwg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7peLQzHKEeKt1a2SZnJmwg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7peyUDHKEeKt1a2SZnJmwg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7peyUTHKEeKt1a2SZnJmwg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7peyUjHKEeKt1a2SZnJmwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7peyUzHKEeKt1a2SZnJmwg"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_gveqADHKEeKt1a2SZnJmwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7pVBUTHKEeKt1a2SZnJmwg" x="586" y="234" width="153" height="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_a416YDWGEeKGAYOVxzQeAg" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a492MDWGEeKGAYOVxzQeAg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a492MTWGEeKGAYOVxzQeAg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a4-dQDWGEeKGAYOVxzQeAg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a4-dQTWGEeKGAYOVxzQeAg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_a4-dQjWGEeKGAYOVxzQeAg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_a4-dQzWGEeKGAYOVxzQeAg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_a4-dRDWGEeKGAYOVxzQeAg" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_a4_EUDWGEeKGAYOVxzQeAg" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_a4_EUTWGEeKGAYOVxzQeAg" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a4_EUjWGEeKGAYOVxzQeAg"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_C4FREDV7EeKGAYOVxzQeAg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a416YTWGEeKGAYOVxzQeAg" x="585" y="108" width="154" height="47"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ihO6UDaSEeKxVvAop17bHw" type="2073" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ihlfoDaSEeKxVvAop17bHw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ihlfoTaSEeKxVvAop17bHw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ihmGsDaSEeKxVvAop17bHw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ihmGsTaSEeKxVvAop17bHw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ihmGsjaSEeKxVvAop17bHw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ihmGszaSEeKxVvAop17bHw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ihmtwDaSEeKxVvAop17bHw" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ihmtwTaSEeKxVvAop17bHw" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ihmtwjaSEeKxVvAop17bHw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ihmtwzaSEeKxVvAop17bHw"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_dcP9gDaSEeKxVvAop17bHw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ihO6UTaSEeKxVvAop17bHw" x="135" y="72" width="289" height="55"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_noMIQfxWEeGOK9t90vpALA"/>
+ <element xmi:type="uml:Package" href="tracing.uml#_5gDNYPwkEeGWn-a9PUOYcA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_1-ITEPxWEeGOK9t90vpALA" type="4015" source="_px1VUPxWEeGOK9t90vpALA" target="_ihO6UDaSEeKxVvAop17bHw" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1-I6IPxWEeGOK9t90vpALA" type="6024">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1-I6IfxWEeGOK9t90vpALA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1-ITEfxWEeGOK9t90vpALA" fontName="Sans Serif"/>
+ <element xmi:type="uml:Generalization" href="tracing.uml#_1963sPxWEeGOK9t90vpALA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1-ITEvxWEeGOK9t90vpALA" points="[-8, -4, 0, 73]$[-8, -71, 0, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1-eRUPxWEeGOK9t90vpALA" id="(0.5344827586206896,0.05970149253731343)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1-eRUfxWEeGOK9t90vpALA" id="(0.5086505190311419,0.9090909090909091)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BWUoAPzTEeGKDvxFM1SZ_g" type="4008" source="_px1VUPxWEeGOK9t90vpALA" target="__O0wAPzSEeGKDvxFM1SZ_g" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BWV2IPzTEeGKDvxFM1SZ_g" visible="false" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BWV2IfzTEeGKDvxFM1SZ_g" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BWV2IvzTEeGKDvxFM1SZ_g" visible="false" type="6021">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BWV2I_zTEeGKDvxFM1SZ_g" x="6" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BWUoAfzTEeGKDvxFM1SZ_g" fontName="Sans Serif"/>
+ <element xmi:type="uml:Usage" href="tracing.uml#_BV2G4PzTEeGKDvxFM1SZ_g"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BWUoAvzTEeGKDvxFM1SZ_g" points="[10, 9, -228, -14]$[210, -5, -28, -28]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BW4BoPzTEeGKDvxFM1SZ_g" id="(0.9655172413793104,0.2537313432835821)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EUGAsPzTEeGKDvxFM1SZ_g" id="(0.045454545454545456,0.21818181818181817)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_e9huEBMnEeK_iPOWsxJHwg" type="4002" source="_tt4UIPxWEeGOK9t90vpALA" target="_rGaioPxWEeGOK9t90vpALA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_e9huERMnEeK_iPOWsxJHwg" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_e9huEhMnEeK_iPOWsxJHwg" points="[-9, -1, 176, 13]$[-171, -12, 14, 2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e-jBwBMnEeK_iPOWsxJHwg" id="(0.0,0.6)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e-jBwRMnEeK_iPOWsxJHwg" id="(0.9496644295302014,0.47)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-uRtcBMoEeK_iPOWsxJHwg" type="4002" source="_r8kHgPxWEeGOK9t90vpALA" target="_px1VUPxWEeGOK9t90vpALA" lineColor="0">
+ <styles xmi:type="notation:FontStyle" xmi:id="_-uRtcRMoEeK_iPOWsxJHwg" fontName="Sans Serif"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-uRtchMoEeK_iPOWsxJHwg" points="[-22, -6, 225, 78]$[-121, -6, 126, 78]$[-236, -77, 11, 7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-umdkBMoEeK_iPOWsxJHwg" id="(0.22,0.25)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-umdkRMoEeK_iPOWsxJHwg" id="(0.803448275862069,0.8955223880597015)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9zmggDHKEeKt1a2SZnJmwg" type="4010" source="_px1VUPxWEeGOK9t90vpALA" target="_7pVBUDHKEeKt1a2SZnJmwg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9zoVsDHKEeKt1a2SZnJmwg" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9zoVsTHKEeKt1a2SZnJmwg" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9zoVsjHKEeKt1a2SZnJmwg" visible="false" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9zoVszHKEeKt1a2SZnJmwg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9zmggTHKEeKt1a2SZnJmwg" fontName="Sans Serif"/>
+ <element xmi:type="uml:Dependency" href="tracing.uml#_9ygUUDHKEeKt1a2SZnJmwg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9zmggjHKEeKt1a2SZnJmwg" points="[4, 0, -164, -76]$[82, 0, -86, -76]$[91, 70, -77, -6]$[164, 70, -4, -6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_90MWYDHKEeKt1a2SZnJmwg" id="(0.9862068965517241,0.34328358208955223)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ApPQ4DHLEeKt1a2SZnJmwg" id="(0.026143790849673203,0.5217391304347826)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_c6NVMDWGEeKGAYOVxzQeAg" type="4010" source="_px1VUPxWEeGOK9t90vpALA" target="_a416YDWGEeKGAYOVxzQeAg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_c6OjUDWGEeKGAYOVxzQeAg" visible="false" type="6009">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_c6OjUTWGEeKGAYOVxzQeAg" y="60"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_c6OjUjWGEeKGAYOVxzQeAg" visible="false" type="6023">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_c6OjUzWGEeKGAYOVxzQeAg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_c6NVMTWGEeKGAYOVxzQeAg" fontName="Sans Serif"/>
+ <element xmi:type="uml:Dependency" href="tracing.uml#_c0nqkDWGEeKGAYOVxzQeAg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_c6NVMjWGEeKGAYOVxzQeAg" points="[9, 0, -193, 41]$[87, 0, -115, 41]$[96, -32, -106, 9]$[168, -32, -34, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_c7Fe8DWGEeKGAYOVxzQeAg" id="(0.9689655172413794,0.11940298507462686)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_c7Fe8TWGEeKGAYOVxzQeAg" id="(0.22448979591836735,0.39285714285714285)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_PCJVYCmiEeKp-eCvZDLsaw" type="PapyrusUMLClassDiagram" name="LTTng fixed" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_P4dSUCmiEeKp-eCvZDLsaw" type="2008" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P4fukCmiEeKp-eCvZDLsaw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P4gVoCmiEeKp-eCvZDLsaw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P4gVoSmiEeKp-eCvZDLsaw" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P4gVoimiEeKp-eCvZDLsaw" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P4gVoymiEeKp-eCvZDLsaw" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_P4gVpCmiEeKp-eCvZDLsaw" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_P4gVpSmiEeKp-eCvZDLsaw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_P4g8sCmiEeKp-eCvZDLsaw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_P4g8sSmiEeKp-eCvZDLsaw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_P4g8simiEeKp-eCvZDLsaw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_P4g8symiEeKp-eCvZDLsaw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P4g8tCmiEeKp-eCvZDLsaw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_P4g8tSmiEeKp-eCvZDLsaw" type="7018">
+ <children xmi:type="notation:Shape" xmi:id="_UxxxsCmiEeKp-eCvZDLsaw" type="3013" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X21eICmiEeKp-eCvZDLsaw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X21eISmiEeKp-eCvZDLsaw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X21eIimiEeKp-eCvZDLsaw" key="StereotypeList" value="StandardProfileL2::Create"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X21eIymiEeKp-eCvZDLsaw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X21eJCmiEeKp-eCvZDLsaw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X21eJSmiEeKp-eCvZDLsaw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="tracing.uml#_UvQpMCmiEeKp-eCvZDLsaw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UxxxsSmiEeKp-eCvZDLsaw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VUiggCmiEeKp-eCvZDLsaw" type="3013" fontName="Sans Serif" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZJzh4CmiEeKp-eCvZDLsaw" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZJ0I8CmiEeKp-eCvZDLsaw" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZJ0I8SmiEeKp-eCvZDLsaw" key="StereotypeList" value="StandardProfileL2::Destroy"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZJ0I8imiEeKp-eCvZDLsaw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZJ0I8ymiEeKp-eCvZDLsaw" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZJ0I9CmiEeKp-eCvZDLsaw" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <element xmi:type="uml:Operation" href="tracing.uml#_VUW6UCmiEeKp-eCvZDLsaw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VUiggSmiEeKp-eCvZDLsaw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_P4g8timiEeKp-eCvZDLsaw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_P4g8tymiEeKp-eCvZDLsaw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_P4g8uCmiEeKp-eCvZDLsaw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P4g8uSmiEeKp-eCvZDLsaw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_P4g8uimiEeKp-eCvZDLsaw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_P4g8uymiEeKp-eCvZDLsaw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_P4g8vCmiEeKp-eCvZDLsaw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_P4g8vSmiEeKp-eCvZDLsaw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P4g8vimiEeKp-eCvZDLsaw"/>
+ </children>
+ <element xmi:type="uml:Class" href="tracing.uml#_P2j04CmiEeKp-eCvZDLsaw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_P4dSUSmiEeKp-eCvZDLsaw" x="356" y="157"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_PCJVYSmiEeKp-eCvZDLsaw"/>
+ <element xmi:type="uml:Package" href="tracing.uml#_i3FbMPzOEeGKDvxFM1SZ_g"/>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.uml b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.uml
new file mode 100644
index 00000000000..79c61f1b245
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.uml
@@ -0,0 +1,771 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Cpp="http://papyrus/CppProfile/1" xmlns:FCM="http://papyrus/FCMProfile/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <uml:Model xmi:id="_H-ZqYDKeEd-WprEKTCaiMA" name="Tracing">
+ <packageImport xmi:id="_H-ZqYTKeEd-WprEKTCaiMA">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:id="_2NyU8DguEd-9wq2wHPy3lw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
+ </packageImport>
+ <packageImport xmi:id="_XW7KkEQYEd-RDttIPD8NUg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/OS-AL-core.uml#_ROTQYC-OEdySSa8YESkO2w"/>
+ </packageImport>
+ <packageImport xmi:id="_DRgF0D4NEeC-VMxjm_qUAg">
+ <importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/CORBA.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Package" xmi:id="_g2IY8DKeEd-WprEKTCaiMA" name="traceInterceptor">
+ <packageMerge xmi:id="_2RoSYKNfEeCdIOXlyrCmKQ">
+ <mergedPackage href="pathmap://QML_CORE/core.uml#_mMCK8PiPEd2UhpY2Y3WUyg"/>
+ </packageMerge>
+ <packagedElement xmi:type="uml:Package" xmi:id="_1rsK8PwkEeGWn-a9PUOYcA" name="otf">
+ <ownedComment xmi:id="_YUcjcKAeEeCF0uoVQbVQRg" annotatedElement="_aoSDwKAdEeCF0uoVQbVQRg">
+ <body>Variant of OTF trace that only reports values that change.</body>
+ </ownedComment>
+ <ownedComment xmi:id="_hd5WkKPUEeClvI8FjeO1Ow" annotatedElement="_kIcwsKbnEeC0_qP7CUZIiQ">
+ <body>A prior variant had a link with the methodCall_comp signature, since the operationIDs should be different, depending on the called component. This leads to a large number of generated classes. Current solution: configure the IDs on an instance level via ths InstanceConfigurator
+</body>
+ </ownedComment>
+ <ownedComment xmi:id="_bb4kQLniEeCxXoyQxQ47PQ" annotatedElement="_aF1w4DKeEd-WprEKTCaiMA">
+ <body>Trace implementation based on OTF trace library. Aggregates singleton TraceInit</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_aF1w4DKeEd-WprEKTCaiMA" clientDependency="_BuqlQDOcEd-1k-POY2IaLg" name="OTFTrace_impl">
+ <generalization xmi:id="_WdRuUDaUEeKkY-29HX5sMQ" general="_MM6RwDaUEeKkY-29HX5sMQ"/>
+ <ownedAttribute xmi:id="_aF1w5TKeEd-WprEKTCaiMA" name="timestamp" isUnique="false">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/OS-AL-core.uml#_FuKEEDj8Edy0Rd6V_tf1-Q"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aF1w5zKeEd-WprEKTCaiMA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aF1w5jKeEd-WprEKTCaiMA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_plSuEF23Ed-12d_h0i1xhQ" name="traceInit" type="_apuYoDNwEd-1k-POY2IaLg" isUnique="false" aggregation="shared">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xUhqoF23Ed-12d_h0i1xhQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xUpmcF23Ed-12d_h0i1xhQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_mfNqoBavEeGq1uSGvh4rcQ" name="hasDeclaredFunctions" isStatic="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_Bv7l0B-VEd6nGq8wpI2tjg"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mfSjIBavEeGq1uSGvh4rcQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mfTKMBavEeGq1uSGvh4rcQ" value="1"/>
+ <defaultValue xmi:type="uml:LiteralBoolean" xmi:id="_u-498Ba1EeGq1uSGvh4rcQ"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_aF1w6DKeEd-WprEKTCaiMA" name="&lt;%name%>" specification="_aF1w7zKeEd-WprEKTCaiMA">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public traceOp(operation: Operation)]
+
+// &lt;instance>_&lt;port>_&lt;operation>
+// easier: &lt;component>_&lt;port>_&lt;operation>
+updateTimestamp ();
+if (!hasDeclaredFunctions) {
+ declareFunctions();
+ hasDeclaredFunctions = true;
+}
+Tracing::TraceInit::wait();
+int processID = Tracing::TraceInit::getProcessID();
+OTF_Writer * writer = Tracing::TraceInit::getWriter();
+OTF_Writer_writeEnter (writer, timestamp.ticks(), &lt;%enumSvcPrefix%>::id_&lt;%owner.varName%>_&lt;%varName%>, processID, 0);
+OTF_Writer_writeEventComment (writer, timestamp.ticks(), processID, portName);
+OTF_Writer_writeEventComment (writer, timestamp.ticks(), processID, instanceName);
+Tracing::TraceInit::post();
+[if not (type = null)] [type.cppType()/] ret = [/if]rconn->[operation.cppCall()/];
+updateTimestamp ();
+Tracing::TraceInit::wait();
+OTF_Writer_writeLeave (writer, timestamp.ticks(), &lt;%enumSvcPrefix%>::id_&lt;%owner.varName%>_&lt;%varName%>, processID, 0);
+Tracing::TraceInit::post();
+[if not (type = null)] return ret;[/if]
+[/template]</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_aF1w6jKeEd-WprEKTCaiMA" name="updateTimestamp" specification="_aF1w8TKeEd-WprEKTCaiMA">
+ <language>C/C++</language>
+ <body>timestamp = OS_AL::Time::TimeVal::current ();
+// gettimeofday (&amp;currentTime, NULL);
+// timestamp = ...</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_73ynMBauEeGq1uSGvh4rcQ" name="declareFunctions" specification="_35DgwBauEeGq1uSGvh4rcQ">
+ <language>C/C++</language>
+ <body>// function groups are badly supported in OTF, since writeEnter/Leave do not support them
+// thus intial plan that each interface corresponds to a function group has not been implemented
+int fctGroupID = 0;
+int streamNr = 0;
+OTF_Writer * writer = Tracing::TraceInit::getWriter();
+&lt;%for (getAllOperations) {%>
+OTF_Writer_writeDefFunction (writer, streamNr, &lt;%enumSvcPrefix%>::id_&lt;%owner.varName%>_&lt;%varName%>, &lt;%quoteLiteral(&quot;InterfaceEnum&quot;, &quot;id_&lt;%owner.varName%>_&lt;%varName%>&quot;)%>, fctGroupID, 0);
+&lt;%}%></body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_aF1w7zKeEd-WprEKTCaiMA" name="[name/]" visibility="public" method="_aF1w6DKeEd-WprEKTCaiMA">
+ <ownedComment xmi:id="_4e51QBatEeGq1uSGvh4rcQ">
+ <body>&lt;&lt;TextualRepresentation>>public '&lt;%name%>' () { }</body>
+ </ownedComment>
+ </ownedOperation>
+ <ownedOperation xmi:id="_aF1w8TKeEd-WprEKTCaiMA" name="updateTimestamp" method="_aF1w6jKeEd-WprEKTCaiMA"/>
+ <ownedOperation xmi:id="_35DgwBauEeGq1uSGvh4rcQ" name="declareFunctions" method="_73ynMBauEeGq1uSGvh4rcQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_BuqlQDOcEd-1k-POY2IaLg" name="OTFTrace_impl => TraceInit" client="_aF1w4DKeEd-WprEKTCaiMA" supplier="_apuYoDNwEd-1k-POY2IaLg"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_U1rDwPL5Ed-1eY2qOvQSbw" name="TraceImpl">
+ <ownedTemplateSignature xmi:id="_krDBAPL5Ed-1eY2qOvQSbw" parameter="_krDoEvL5Ed-1eY2qOvQSbw">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_krDoEvL5Ed-1eY2qOvQSbw" parameteredElement="_krDoE_L5Ed-1eY2qOvQSbw">
+ <ownedParameteredElement xmi:type="uml:Class" xmi:id="_krDoE_L5Ed-1eY2qOvQSbw" name="T" templateParameter="_krDoEvL5Ed-1eY2qOvQSbw">
+ <eAnnotations xmi:id="_krDoFPL5Ed-1eY2qOvQSbw" source="http://www.eclipse.org/emf/2002/Ecore">
+ <details xmi:id="_krDoFfL5Ed-1eY2qOvQSbw" key="constraints" value="InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes"/>
+ </eAnnotations>
+ <generalization xmi:id="_krDoFvL5Ed-1eY2qOvQSbw">
+ <general xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EClassifier"/>
+ </generalization>
+ <ownedAttribute xmi:id="_krDoF_L5Ed-1eY2qOvQSbw" name="abstract" visibility="public" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EBoolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoGPL5Ed-1eY2qOvQSbw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_krDoGfL5Ed-1eY2qOvQSbw" name="interface" visibility="public" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EBoolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoGvL5Ed-1eY2qOvQSbw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_krDoG_L5Ed-1eY2qOvQSbw" name="eSuperTypes" type="_krDoE_L5Ed-1eY2qOvQSbw" isOrdered="true">
+ <eAnnotations xmi:id="_krDoHPL5Ed-1eY2qOvQSbw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:id="_krDoHfL5Ed-1eY2qOvQSbw" key="suppressedUnsetVisibility" value="true"/>
+ <details xmi:id="_krDoHvL5Ed-1eY2qOvQSbw" key="suppressedIsSetVisibility" value="true"/>
+ </eAnnotations>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoIPL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoH_L5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_krDoIfL5Ed-1eY2qOvQSbw" name="eOperations" isOrdered="true" aggregation="composite">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EOperation"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoI_L5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoIvL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_krDoJPL5Ed-1eY2qOvQSbw" name="eAllAttributes" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EAttribute"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoJvL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoJfL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_krDoJ_L5Ed-1eY2qOvQSbw" name="eAllReferences" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EReference"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoKfL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoKPL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_krDoKvL5Ed-1eY2qOvQSbw" name="eReferences" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EReference"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoLPL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoK_L5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_krDoLfL5Ed-1eY2qOvQSbw" name="eAttributes" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EAttribute"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoL_L5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoLvL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_krDoMPL5Ed-1eY2qOvQSbw" name="eAllContainments" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EReference"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoMvL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoMfL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_krDoM_L5Ed-1eY2qOvQSbw" name="eAllOperations" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EOperation"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoNfL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoNPL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_krDoNvL5Ed-1eY2qOvQSbw" name="eAllStructuralFeatures" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EStructuralFeature"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoOPL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoN_L5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_krDoOfL5Ed-1eY2qOvQSbw" name="eAllSuperTypes" type="_krDoE_L5Ed-1eY2qOvQSbw" isOrdered="true" isReadOnly="true" isDerived="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoO_L5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoOvL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_krDoPPL5Ed-1eY2qOvQSbw" name="eIDAttribute" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EAttribute"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoPfL5Ed-1eY2qOvQSbw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_krDoPvL5Ed-1eY2qOvQSbw" name="eStructuralFeatures" isOrdered="true" aggregation="composite">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EStructuralFeature"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoQPL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoP_L5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_krDoQfL5Ed-1eY2qOvQSbw" name="eGenericSuperTypes" isOrdered="true" aggregation="composite">
+ <eAnnotations xmi:id="_krDoQvL5Ed-1eY2qOvQSbw" source="http://www.eclipse.org/emf/2002/GenModel">
+ <details xmi:id="_krDoQ_L5Ed-1eY2qOvQSbw" key="suppressedUnsetVisibility" value="true"/>
+ <details xmi:id="_krDoRPL5Ed-1eY2qOvQSbw" key="suppressedIsSetVisibility" value="true"/>
+ </eAnnotations>
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EGenericType"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoRvL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoRfL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_krDoR_L5Ed-1eY2qOvQSbw" name="eAllGenericSuperTypes" isOrdered="true" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EGenericType"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoSfL5Ed-1eY2qOvQSbw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_krDoSPL5Ed-1eY2qOvQSbw" value="*"/>
+ </ownedAttribute>
+ <ownedOperation xmi:id="_krDoSvL5Ed-1eY2qOvQSbw" name="isSuperTypeOf" visibility="public">
+ <ownedParameter xmi:id="_krDoS_L5Ed-1eY2qOvQSbw" isOrdered="true" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EBoolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoTPL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_krDoTfL5Ed-1eY2qOvQSbw" name="someClass" type="_krDoE_L5Ed-1eY2qOvQSbw" isOrdered="true">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoTvL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_krDoT_L5Ed-1eY2qOvQSbw" name="getFeatureCount" visibility="public">
+ <ownedParameter xmi:id="_krDoUPL5Ed-1eY2qOvQSbw" isOrdered="true" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EInt"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoUfL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_krDoUvL5Ed-1eY2qOvQSbw" name="getEStructuralFeature" visibility="public">
+ <ownedParameter xmi:id="_krDoU_L5Ed-1eY2qOvQSbw" isOrdered="true" direction="return">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EStructuralFeature"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoVPL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_krDoVfL5Ed-1eY2qOvQSbw" name="featureID" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EInt"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoVvL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_krDoV_L5Ed-1eY2qOvQSbw" name="getFeatureID" visibility="public">
+ <ownedParameter xmi:id="_krDoWPL5Ed-1eY2qOvQSbw" isOrdered="true" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EInt"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoWfL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_krDoWvL5Ed-1eY2qOvQSbw" name="feature" isOrdered="true">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EStructuralFeature"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoW_L5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_krDoXPL5Ed-1eY2qOvQSbw" name="getEStructuralFeature" visibility="public">
+ <ownedParameter xmi:id="_krDoXfL5Ed-1eY2qOvQSbw" isOrdered="true" direction="return">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EStructuralFeature"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoXvL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ <ownedParameter xmi:id="_krDoX_L5Ed-1eY2qOvQSbw" name="featureName" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_METAMODELS/Ecore.metamodel.uml#EString"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_krDoYPL5Ed-1eY2qOvQSbw"/>
+ </ownedParameter>
+ </ownedOperation>
+ </ownedParameteredElement>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_aoSDwKAdEeCF0uoVQbVQRg" clientDependency="_Mgn2cKKXEeCdIOXlyrCmKQ" name="OTFTrace_vc">
+ <generalization xmi:id="_nQ6YMKAdEeCF0uoVQbVQRg" general="_aF1w4DKeEd-WprEKTCaiMA"/>
+ <ownedAttribute xmi:id="_EWKx4KD0EeCFDJJCA2W5wg" name="m_first">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_Bv7l0B-VEd6nGq8wpI2tjg"/>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4LoXcKAeEeCF0uoVQbVQRg" name="&lt;%name%>" specification="_k4TsoKAeEeCF0uoVQbVQRg">
+ <language>C/C++</language>
+ <body>// &lt;instance>_&lt;port>_&lt;operation>
+// easier: &lt;component>_&lt;port>_&lt;operation>
+OTF_Writer * writer = Tracing::Trace::TraceInit::getWriter();
+int processID = Tracing::Trace::TraceInit::getProcessID();
+updateTimestamp ();
+// need to store parameter values, but that is not simple, as we are not in the data-flow context
+// => need specific data-flow trace
+// (costly) solution? string comparison? [string has which size?] howto get string representation of each parameter?? (in particular for structs)
+// too complicated...
+// three specific data_flow trace, offering identical (but conjugated ports). PushP/PushP, PullC/PullC, PushC/PushC => three interceptors, howto select?
+
+/*
+if (m_first) {
+ m_first = false;
+ doTrace = true;
+}
+else
+*/
+bool doTrace = true;
+OS_AL::Util::BString200 parameters;
+parameters &lt;&lt; &quot;port=&quot; &lt;&lt; portName &lt;&lt; &quot; &quot;;
+if (doTrace) {
+ Tracing::Trace::TraceInit::wait();
+ &lt;%for (parametersInInout) {%>
+ &lt;%if (filter(&quot;DataType&quot;)) {%>
+ &lt;%for (ownedAttribute) {%>
+ parameters &lt;&lt; &lt;%name%> &lt;&lt; &quot;#&quot;;
+ &lt;%}%>
+ &lt;%} else {%>
+ parameters &lt;&lt; &lt;%name%> &lt;&lt; &quot;#&quot;;
+ &lt;%}%>
+ &lt;%}%>
+ OTF_Writer_writeEnter (writer, timestamp.ticks(), Tracing::Trace::ID_&lt;%args(0).varName%>_&lt;%varName%>, processID, 0);
+ Tracing::Trace::TraceInit::post();
+}
+&lt;%if (type != null) {%>&lt;%type.cppType%> ret = &lt;%}%>rconn->&lt;%cppCall%>;
+&lt;%if (type != null) {%>parameters &lt;&lt; &quot;r=&quot;
+ &lt;%if (type.filter(&quot;DataType&quot;)) {%>
+ &lt;%for (type.ownedAttribute) {%>
+ &lt;&lt; ret.&lt;%name%> &lt;&lt; &quot;#&quot;
+ &lt;%}%>;
+ &lt;%}else{%>
+ &lt;&lt; ret;
+ &lt;%}%>
+&lt;%}%>
+updateTimestamp ();
+if (doTrace) {
+ Tracing::Trace::TraceInit::wait();
+ OTF_Writer_writeEventComment (writer, timestamp.ticks(), processID, parameters.data());
+ OTF_Writer_writeLeave (writer, timestamp.ticks(), Tracing::Trace::ID_&lt;%args(0).varName%>_&lt;%varName%>, processID, 0);
+ Tracing::Trace::TraceInit::post();
+}
+&lt;%if (type != null) {%>return ret;&lt;%}%></body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_CyKWkKD2EeCFDJJCA2W5wg" name="OTFTrace_vc" specification="_rlkwoKD0EeCFDJJCA2W5wg">
+ <language>C/C++</language>
+ <body>m_first = true;</body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_k4TsoKAeEeCF0uoVQbVQRg" name="&lt;%name%>" method="_4LoXcKAeEeCF0uoVQbVQRg"/>
+ <ownedOperation xmi:id="_rlkwoKD0EeCFDJJCA2W5wg" name="OTFTrace_vc" method="_CyKWkKD2EeCFDJJCA2W5wg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_Mgn2cKKXEeCdIOXlyrCmKQ" name="OTFTrace_vc => BString" client="_aoSDwKAdEeCF0uoVQbVQRg">
+ <supplier xmi:type="uml:Class" href="pathmap://QML_CORE/OS-AL-core.uml#_0AwCEDO0EdyG-pUz-bb-Lg"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_3pab4PwkEeGWn-a9PUOYcA" name="cout"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_kIcwsKbnEeC0_qP7CUZIiQ" name="IConfiguratorTrace"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_nUAnQC8HEeKwPrQVP28AQw" name="IConfiguratorOTF"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_MM6RwDaUEeKkY-29HX5sMQ" name="Trace" isAbstract="true">
+ <generalization xmi:id="_MM6RwTaUEeKkY-29HX5sMQ">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ </generalization>
+ <ownedAttribute xmi:id="_MM6RwjaUEeKkY-29HX5sMQ" name="portName" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MM6RwzaUEeKkY-29HX5sMQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MM6RxDaUEeKkY-29HX5sMQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_MM6RxTaUEeKkY-29HX5sMQ" name="instanceName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MM6RxjaUEeKkY-29HX5sMQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_MM6RxzaUEeKkY-29HX5sMQ" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_VzFlMLnhEeCxXoyQxQ47PQ" name="containerrules">
+ <ownedComment xmi:id="_aX6QECVIEeCPS8GFKAaKxw" annotatedElement="_GVZxwLdwEd-CtfrGQre34Q">
+ <body>OTF (Open trace format) tracing mechanism</body>
+ </ownedComment>
+ <ownedComment xmi:id="_z43k0ChKEeKFu939Pz1RFA" annotatedElement="_wHuA0KAdEeCF0uoVQbVQRg">
+ <body>An OTF based trace mechanism that tracks value changes</body>
+ </ownedComment>
+ <ownedComment xmi:id="_06dksChKEeKFu939Pz1RFA" annotatedElement="_I2OioPwkEeGWn-a9PUOYcA">
+ <body>LTTng based trace mechanism for port interception</body>
+ </ownedComment>
+ <ownedComment xmi:id="_LlPEIDdMEeKDRPyuWXNFNA" annotatedElement="_If04ACqLEeKGrchWittz_g">
+ <body>LTTng LW mechanism for operations</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_GVZxwLdwEd-CtfrGQre34Q" name="RTraceOTF">
+ <ownedAttribute xmi:id="_lBO5MPUPEeCn1-FCrfecFg" name="trace" visibility="public" type="_aF1w4DKeEd-WprEKTCaiMA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wNCqUPUPEeCn1-FCrfecFg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wNIJ4PUPEeCn1-FCrfecFg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_wNMbUPUPEeCn1-FCrfecFg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_wHuA0KAdEeCF0uoVQbVQRg" name="RTraceOTF_VC">
+ <ownedAttribute xmi:id="_pm5cwPUPEeCn1-FCrfecFg" name="traceVC" visibility="public" type="_aoSDwKAdEeCF0uoVQbVQRg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yevnMPUPEeCn1-FCrfecFg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yez4oPUPEeCn1-FCrfecFg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_ye3jAPUPEeCn1-FCrfecFg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_I2OioPwkEeGWn-a9PUOYcA" name="RTraceLTTNG">
+ <ownedAttribute xmi:id="_d7If0PwkEeGWn-a9PUOYcA" name="interceptor" visibility="public" type="_pwl_MPxWEeGOK9t90vpALA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gYc20PwkEeGWn-a9PUOYcA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gZTLYPwkEeGWn-a9PUOYcA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_gZWOsPwkEeGWn-a9PUOYcA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_vt7dACdbEeKGdt7FoegMYA" name="Copy_Of_RTraceLTTNG">
+ <ownedAttribute xmi:id="_vt7dASdbEeKGdt7FoegMYA" name="interceptor" visibility="public" type="_pwl_MPxWEeGOK9t90vpALA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vt7dAidbEeKGdt7FoegMYA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vt7dAydbEeKGdt7FoegMYA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_vt7dBCdbEeKGdt7FoegMYA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_vt7dBSdbEeKGdt7FoegMYA" name="tp" visibility="public" type="_rGPjgPxWEeGOK9t90vpALA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vt7dBidbEeKGdt7FoegMYA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_vt7dBydbEeKGdt7FoegMYA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_vt7dCCdbEeKGdt7FoegMYA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_If04ACqLEeKGrchWittz_g" clientDependency="_riv0oC5vEeKMZ5P9cEChlg" name="LTTngLWRule">
+ <ownedAttribute xmi:id="_Avfe8C8PEeKVAPO2lpiVnA" name="instanceName" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BuA8sC8PEeKVAPO2lpiVnA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_BuFOIC8PEeKVAPO2lpiVnA" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_BuKtsC8PEeKVAPO2lpiVnA">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedAttribute>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DGqhEC2jEeKEc8wNVBgHJg" name="operation1" specification="_eZ1RMCqLEeKGrchWittz_g">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::modellibs::tracing::acceleo::traceLTTng/]
+
+[template public anOperation(operation : Operation)]
+[operation.invokeTP()/]
+[/template]</body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_eZ1RMCqLEeKGrchWittz_g" name="interceptOperation" method="_DGqhEC2jEeKEc8wNVBgHJg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_riv0oC5vEeKMZ5P9cEChlg" name="Dependency1" client="_If04ACqLEeKGrchWittz_g" supplier="_rGPjgPxWEeGOK9t90vpALA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_QOOpsPzOEeGKDvxFM1SZ_g" name="traceExtension">
+ <packagedElement xmi:type="uml:Package" xmi:id="_QApWIPzNEeGKDvxFM1SZ_g" name="lttng">
+ <packageMerge xmi:id="_kGXHMPzNEeGKDvxFM1SZ_g">
+ <mergedPackage href="pathmap://QML_CORE/core.uml#_m7SIwOUYEd-P08Bciq_LqQ"/>
+ </packageMerge>
+ <packagedElement xmi:type="uml:Class" xmi:id="_rGPjgPxWEeGOK9t90vpALA" name="LTTngClassTP"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_VMJ8QPzOEeGKDvxFM1SZ_g" name="fixed">
+ <packagedElement xmi:type="uml:Package" xmi:id="_K5J34PzNEeGKDvxFM1SZ_g" name="otf">
+ <packagedElement xmi:type="uml:Usage" xmi:id="_7uQr8D4OEeC-VMxjm_qUAg" name="TraceInit => Thread (for ThreadId)" client="_apuYoDNwEd-1k-POY2IaLg">
+ <supplier xmi:type="uml:Class" href="pathmap://QML_CORE/OS-AL-core.uml#_-HeCsDj_Edy0Rd6V_tf1-Q"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_apuYoDNwEd-1k-POY2IaLg" clientDependency="_UcPagD1nEd-Bk-AHd6yyoA _7uQr8D4OEeC-VMxjm_qUAg" name="TraceInit">
+ <generalization xmi:id="_9zJj0DguEd-9wq2wHPy3lw">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
+ </generalization>
+ <ownedAttribute xmi:id="_vYRuQDj1Ed-nsvkE2JvSTg" name="writer" isStatic="true" type="_W0t44Dj1Ed-nsvkE2JvSTg" isUnique="false" aggregation="shared"/>
+ <ownedAttribute xmi:id="_ZZ8mwDwLEd-CbfVdCYNz6Q" name="manager" isStatic="true" type="_LjsBkDwLEd-CbfVdCYNz6Q" isUnique="false" aggregation="shared"/>
+ <ownedAttribute xmi:id="_28RZED4NEeC-VMxjm_qUAg" name="streamNr" isStatic="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_cy5msJ6oEeCNsP1Kjt4f_w" name="sema" isStatic="true">
+ <type xmi:type="uml:Class" href="pathmap://QML_CORE/OS-AL-core.uml#_D8njME_gEdy2tpS719xBwQ"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_czA7cJ6oEeCNsP1Kjt4f_w" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_czCJkJ6oEeCNsP1Kjt4f_w" value="1"/>
+ </ownedAttribute>
+ <interfaceRealization xmi:id="_UcPagD1nEd-Bk-AHd6yyoA" name="derived realization of ILifeCycle" client="_apuYoDNwEd-1k-POY2IaLg">
+ <supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/SystemInterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract href="pathmap://QML_CORE/SystemInterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ </interfaceRealization>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ILWGsDgvEd-9wq2wHPy3lw" name="activate" specification="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <language>C/C++</language>
+ <body>const char *filename= &quot;trace.otf&quot;;
+
+//OTF_FileManager* manager;
+
+uint32_t streams= 1;
+
+/* file handles available */
+uint32_t files= 10;
+
+/* per-stream buffer size */
+uint32_t buffersize= 10*1024;
+
+/* compression on/off, test without compression to look at ASCII trace files */
+// int compression= 0;
+
+/*************************************
+* INIT *
+*************************************/
+manager= OTF_FileManager_open( files );
+// assert( NULL != manager );
+
+writer = OTF_Writer_open( filename, streams, manager );
+OTF_Writer_setBufferSizes( writer, buffersize );
+
+streamNr = 1;
+
+OTF_Writer_writeDefTimerResolution( writer,
+ streamNr /* uint32_t stream */,
+ 1e3 /* uint64_t ticksPerSecond */ );
+
+// initial post
+sema.post();</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_uUZ2cDj1Ed-nsvkE2JvSTg" name="getWriter" specification="_RNVZoDj1Ed-nsvkE2JvSTg">
+ <language>C/C++</language>
+ <body>return writer;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_2f_-UD1oEd-Bk-AHd6yyoA" name="deactivate" specification="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <language>C/C++</language>
+ <body> </body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_W9k18ChjEeC5Ga5kAgjl0g" name="TraceInit" specification="_MR0d4ChjEeC5Ga5kAgjl0g">
+ <language>C/C++</language>
+ <body>// do not close in deactivate, since additional calls to OTF_write may occur later.
+OTF_Writer_close(writer);
+</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_g2IBUD4NEeC-VMxjm_qUAg" name="getProcessID" specification="_uegYAD4MEeC-VMxjm_qUAg">
+ <language>C/C++</language>
+ <body>int id = OS_AL::ProcessingResources::Thread::getId ();
+for (int i = 0; i &lt; processSet.size (); i++) {
+ if (processSet.get(i) == id) {
+ return i+1;
+ }
+}
+// not known yet => add
+processSet.append(id);
+int processID = processSet.size();
+char name[16];
+sprintf(name, &quot;id: %x&quot;, id);
+OTF_Writer_writeDefProcess(writer, streamNr, processID, name, 0);
+// OS_AL name only valid for threads created with OS_AL
+// OTF_Writer_writeDefProcess(writer, streamNr, processID, OS_AL::ProcessingResources::Thread::getName().data(), 0);
+// not required
+// OTF_Writer_assignProcess(writer, processID, streamNr);
+// OTF_Writer_mapProcess(writer, processID);
+OTF_Writer_writeBeginProcess (writer, 0, processID);
+return processID;</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_KUVkMJ6pEeCNsP1Kjt4f_w" name="wait" specification="_VIPBEJ6oEeCNsP1Kjt4f_w">
+ <language>C/C++</language>
+ <body>sema.wait();</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_LNI0cJ6pEeCNsP1Kjt4f_w" name="post" specification="_Wm5-gJ6oEeCNsP1Kjt4f_w">
+ <language>C/C++</language>
+ <body>sema.post();</body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_RNVZoDj1Ed-nsvkE2JvSTg" name="getWriter" isStatic="true" method="_uUZ2cDj1Ed-nsvkE2JvSTg">
+ <ownedParameter xmi:id="_v6J20Dj2Ed-nsvkE2JvSTg" name="ret" type="_W0t44Dj1Ed-nsvkE2JvSTg" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zsxM0Dj2Ed-nsvkE2JvSTg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zsya8Dj2Ed-nsvkE2JvSTg" value="1"/>
+ <defaultValue xmi:type="uml:LiteralString" xmi:id="_zszCADj2Ed-nsvkE2JvSTg">
+ <value xsi:nil="true"/>
+ </defaultValue>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_Ucl_0D1nEd-Bk-AHd6yyoA" name="activate" method="_ILWGsDgvEd-9wq2wHPy3lw"/>
+ <ownedOperation xmi:id="_UdpIsD1nEd-Bk-AHd6yyoA" name="deactivate" method="_2f_-UD1oEd-Bk-AHd6yyoA"/>
+ <ownedOperation xmi:id="_MR0d4ChjEeC5Ga5kAgjl0g" name="TraceInit" method="_W9k18ChjEeC5Ga5kAgjl0g"/>
+ <ownedOperation xmi:id="_uegYAD4MEeC-VMxjm_qUAg" name="getProcessID" isStatic="true" method="_g2IBUD4NEeC-VMxjm_qUAg">
+ <ownedParameter xmi:id="_1PmRUD4MEeC-VMxjm_qUAg" name="ret" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/CORBA.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="_VIPBEJ6oEeCNsP1Kjt4f_w" name="wait" isStatic="true" method="_KUVkMJ6pEeCNsP1Kjt4f_w"/>
+ <ownedOperation xmi:id="_Wm5-gJ6oEeCNsP1Kjt4f_w" name="post" isStatic="true" method="_LNI0cJ6pEeCNsP1Kjt4f_w"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_IewAUDguEd-9wq2wHPy3lw" name="externtypes">
+ <packagedElement xmi:type="uml:Class" xmi:id="_W0t44Dj1Ed-nsvkE2JvSTg" name="OTF_Writer"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_LjsBkDwLEd-CbfVdCYNz6Q" name="OTF_FileManager"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_L90lEDYGEd-JF_b-mKqY4g" name="TraceTesting">
+ <ownedTemplateSignature xmi:id="_NJOoQDYGEd-JF_b-mKqY4g" parameter="_m8qNQDYKEd-JF_b-mKqY4g">
+ <ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_m8qNQDYKEd-JF_b-mKqY4g" parameteredElement="_pfAOMDYKEd-JF_b-mKqY4g">
+ <ownedParameteredElement xmi:type="uml:Enumeration" xmi:id="_pfAOMDYKEd-JF_b-mKqY4g" name="ParamEnumeration" templateParameter="_m8qNQDYKEd-JF_b-mKqY4g"/>
+ </ownedParameter>
+ </ownedTemplateSignature>
+ <packagedElement xmi:type="uml:Class" xmi:id="_QNXx4DYKEd-JF_b-mKqY4g" name="TraceInitB">
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_QNXx4TYKEd-JF_b-mKqY4g" name="initDefs" specification="_QNXx4jYKEd-JF_b-mKqY4g">
+ <language>C/C++</language>
+ <body>OTF_Writer_writeDefFunctionGroup (writer, 0, &quot;application functions&quot;);
+&lt;%for (ownedLiteral) {%>
+ OTF_Writer_writeDefFunction (writer, 0, &lt;%name%>, &quot;&lt;%name%>&quot;, 0, 0);
+&lt;%}%></body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_QNXx4jYKEd-JF_b-mKqY4g" name="initDefs" isStatic="true" method="_QNXx4TYKEd-JF_b-mKqY4g"/>
+ </packagedElement>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_NhImwPzNEeGKDvxFM1SZ_g" name="cout"/>
+ <packagedElement xmi:type="uml:Package" xmi:id="_i3FbMPzOEeGKDvxFM1SZ_g" name="lttng">
+ <packagedElement xmi:type="uml:Package" xmi:id="_nAkZEPzOEeGKDvxFM1SZ_g" name="externtypes">
+ <packagedElement xmi:type="uml:Class" xmi:id="_v-VBcPzSEeGKDvxFM1SZ_g" name="tracepoint"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_P2j04CmiEeKp-eCvZDLsaw" name="LTTngCreateDestroy">
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="__CHDcCmlEeKp-eCvZDLsaw" name="LTTngCreateDestroy" specification="_UvQpMCmiEeKp-eCvZDLsaw">
+ <language>C/C++</language>
+ <body>TRACEPOINT_EVENT([tpName/], createClass, [clazz.qualifiedName /])</body>
+ </ownedBehavior>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_B-fVACmmEeKp-eCvZDLsaw" name="LTTngCreateDestroy" specification="_VUW6UCmiEeKp-eCvZDLsaw">
+ <language>C/C++</language>
+ <body>TRACEPOINT_EVENT([tpName/], destroyClass, [clazz.qualifiedName /])</body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_UvQpMCmiEeKp-eCvZDLsaw" name="LTTngCreateDestroy" method="__CHDcCmlEeKp-eCvZDLsaw"/>
+ <ownedOperation xmi:id="_VUW6UCmiEeKp-eCvZDLsaw" name="LTTngCreateDestroy" method="_B-fVACmmEeKp-eCvZDLsaw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_C4FREDV7EeKGAYOVxzQeAg" name="InitLttng"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_HkxCkDY_EeKxVvAop17bHw" name="traceInterceptorPort">
+ <packageMerge xmi:id="_M9DV4DY_EeKxVvAop17bHw">
+ <mergedPackage href="pathmap://QML_CORE/core.uml#_gEZXADY7EeKvFqG4YPX3sg"/>
+ </packageMerge>
+ <packagedElement xmi:type="uml:Package" xmi:id="_5gDNYPwkEeGWn-a9PUOYcA" name="lttng">
+ <ownedComment xmi:id="_r8PXYPxWEeGOK9t90vpALA" annotatedElement="_pwl_MPxWEeGOK9t90vpALA">
+ <body>Interceptor</body>
+ </ownedComment>
+ <ownedComment xmi:id="_ttvxQPxWEeGOK9t90vpALA" annotatedElement="_rGPjgPxWEeGOK9t90vpALA">
+ <body>Trace Provider
+</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_pwl_MPxWEeGOK9t90vpALA" clientDependency="_BV2G4PzTEeGKDvxFM1SZ_g _9ygUUDHKEeKt1a2SZnJmwg _c0nqkDWGEeKGAYOVxzQeAg" name="LTTngInterceptor">
+ <generalization xmi:id="_1963sPxWEeGOK9t90vpALA" general="_dcP9gDaSEeKxVvAop17bHw"/>
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qLhLMPxXEeGOK9t90vpALA" name="[name/]" specification="_YU5H4PxXEeGOK9t90vpALA">
+ <language>C/C++</language>
+ <body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::modellibs::tracing::acceleo::traceLTTng/]
+
+[template public anOperation(operation : Operation)]
+
+// create event with operationID/portID and pass call
+[operation.invokeTP()/]
+[if not (type = null)]return [/if]rconn->[operation.cppCall()/];
+[/template]</body>
+ </ownedBehavior>
+ <ownedOperation xmi:id="_YU5H4PxXEeGOK9t90vpALA" name="[name/]" method="_qLhLMPxXEeGOK9t90vpALA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Usage" xmi:id="_BV2G4PzTEeGKDvxFM1SZ_g" name="Usage1" client="_pwl_MPxWEeGOK9t90vpALA" supplier="_v-VBcPzSEeGKDvxFM1SZ_g"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_gveqADHKEeKt1a2SZnJmwg" name="LTTngIntfTP"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_9ygUUDHKEeKt1a2SZnJmwg" name="Dependency1" client="_pwl_MPxWEeGOK9t90vpALA" supplier="_gveqADHKEeKt1a2SZnJmwg"/>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_c0nqkDWGEeKGAYOVxzQeAg" name="Dependency2" client="_pwl_MPxWEeGOK9t90vpALA" supplier="_C4FREDV7EeKGAYOVxzQeAg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_dcP9gDaSEeKxVvAop17bHw" name="TracePort" isAbstract="true">
+ <generalization xmi:id="_dcP9gTaSEeKxVvAop17bHw">
+ <general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
+ </generalization>
+ <ownedAttribute xmi:id="_dcP9gjaSEeKxVvAop17bHw" name="portName" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dcP9gzaSEeKxVvAop17bHw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dcP9hDaSEeKxVvAop17bHw" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="_dcP9hTaSEeKxVvAop17bHw" name="instanceName">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_dcP9hjaSEeKxVvAop17bHw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_dcP9hzaSEeKxVvAop17bHw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:id="_H_B8gDKeEd-WprEKTCaiMA">
+ <eAnnotations xmi:id="_H_DxsDKeEd-WprEKTCaiMA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://UML_PROFILES/StandardL2.profile.uml#_0"/>
+ </profileApplication>
+ <profileApplication xmi:id="_-DLL0DKnEd-WprEKTCaiMA">
+ <eAnnotations xmi:id="_-DXZEDKnEd-WprEKTCaiMA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://papyrus/FCMProfile/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ </profileApplication>
+ <profileApplication xmi:id="_N6l98DguEd-9wq2wHPy3lw">
+ <eAnnotations xmi:id="_N6vH4DguEd-9wq2wHPy3lw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://papyrus/CppProfile/1#/"/>
+ </eAnnotations>
+ <appliedProfile href="pathmap://PapyrusCpp_PROFILES/PapyrusCpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ </profileApplication>
+ </uml:Model>
+ <l2:ModelLibrary xmi:id="_ICaAoDKeEd-WprEKTCaiMA" base_Package="_H-ZqYDKeEd-WprEKTCaiMA"/>
+ <FCM:Template xmi:id="_bKc-kDNZEd-0bO2vHbUkEA" base_Element="_aF1w7zKeEd-WprEKTCaiMA" kind="LoopOperations">
+ <formalParam xmi:type="uml:Interface" href="pathmap://QML_CORE/core.uml#_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <templateParam xmi:type="uml:Interface" href="pathmap://QML_CORE/core.uml#_ZzlzMPfBEd2TbIfwytOyPA"/>
+ </FCM:Template>
+ <FCM:DerivedElement xmi:id="_Adb_0DgvEd-9wq2wHPy3lw">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
+ </FCM:DerivedElement>
+ <FCM:Singleton xmi:id="_AdBwIDgvEd-9wq2wHPy3lw" base_Class="_apuYoDNwEd-1k-POY2IaLg"/>
+ <Cpp:CppInclude xmi:id="_ZWEQwDj0Ed-nsvkE2JvSTg" body="#include &lt;otflib/otf.h>" base_class="_aF1w4DKeEd-WprEKTCaiMA"/>
+ <Cpp:CppExternClass xmi:id="_ZVArYDj1Ed-nsvkE2JvSTg" name="otflib/OTF_Writer.h" base_class="_W0t44Dj1Ed-nsvkE2JvSTg"/>
+ <Cpp:CppPtr xmi:id="_9n7OYDj2Ed-nsvkE2JvSTg" base_parameter="_v6J20Dj2Ed-nsvkE2JvSTg"/>
+ <FCM:DerivedElement xmi:id="_UdG9MD1nEd-Bk-AHd6yyoA" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_UeZ9sD1nEd-Bk-AHd6yyoA" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <Cpp:CppVirtual xmi:id="___fNAD1nEd-Bk-AHd6yyoA" base_operation="_UdpIsD1nEd-Bk-AHd6yyoA"/>
+ <Cpp:CppVirtual xmi:id="_AHNwMD1pEd-Bk-AHd6yyoA" base_operation="_Ucl_0D1nEd-Bk-AHd6yyoA"/>
+ <FCM:DerivedElement xmi:id="_Q44J0EI7Ed-BYfDlJlYJUQ" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_Q5EXEEI7Ed-BYfDlJlYJUQ" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_6f5KEEJEEd-Ps4Bfh0j9LQ" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_6gni0EJEEd-Ps4Bfh0j9LQ" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="__8ZM4EPiEd-NwdL0D_IutQ" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="__8bpIEPiEd-NwdL0D_IutQ" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_Md_SIEQYEd-RDttIPD8NUg" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_MeJqMEQYEd-RDttIPD8NUg" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_ibefIFKoEd-OfYmxqPWG5g" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_ibg7YFKoEd-OfYmxqPWG5g" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_KshoEFmvEd-9TNLvplUFDQ" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_KskrYFmvEd-9TNLvplUFDQ" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_JK7ncF2qEd-12d_h0i1xhQ" base_Element="_Ucl_0D1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_WHyq4Dz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:DerivedElement xmi:id="_JK-qwF2qEd-12d_h0i1xhQ" base_Element="_UdpIsD1nEd-Bk-AHd6yyoA">
+ <source xmi:type="uml:Operation" href="pathmap://QML_CORE/SystemInterfaces.uml#_W7YrADz6Ed-v9PxuTj6Elw"/>
+ </FCM:DerivedElement>
+ <FCM:CppLibrary xmi:id="_Sv6AMIKiEd-XA4A2KZ9L7Q" base_Package="_IewAUDguEd-9wq2wHPy3lw">
+ <libs>otf</libs>
+ <libPaths>/OTF-1.5/otflib/.libs</libPaths>
+ <includePaths>/OTF-1.5</includePaths>
+ <includes>otflib/includes.h</includes>
+ </FCM:CppLibrary>
+ <FCM:ContainerRule xmi:id="_ISo6gLdwEd-CtfrGQre34Q" base_Class="_GVZxwLdwEd-CtfrGQre34Q" extensionKind="InterceptAllPorts" interceptor="_35od4DKrEd-z5o2wSoJ16A">
+ <forConfig href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:ContainerRule>
+ <Cpp:CppExternClass xmi:id="_AGg3EPT8Ed-jjdbo8hMhwA" name="otflib/OTF_FileManager.h" base_class="_LjsBkDwLEd-CbfVdCYNz6Q"/>
+ <Cpp:CppInclude xmi:id="_mk_ccD5sEeC-VMxjm_qUAg" body="#include &lt;OS_AL/Sets/SetOf.h>&#xA;OS_AL::Sets::SetOf &lt;int> processSet;" base_class="_apuYoDNwEd-1k-POY2IaLg"/>
+ <FCM:ContainerRule xmi:id="_6FqQoKAdEeCF0uoVQbVQRg" base_Class="_wHuA0KAdEeCF0uoVQbVQRg" extensionKind="InterceptAllPorts" interceptor="_JvP0oKAeEeCF0uoVQbVQRg" propagate="true">
+ <forConfig href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:ContainerRule>
+ <FCM:Template xmi:id="_pplDQKAeEeCF0uoVQbVQRg" base_Element="_k4TsoKAeEeCF0uoVQbVQRg" kind="LoopOperations"/>
+ <FCM:InstanceConfigurator xmi:id="_nTMOYKbnEeC0_qP7CUZIiQ" base_Class="_kIcwsKbnEeC0_qP7CUZIiQ"/>
+ <FCM:UseInstanceConfigurator xmi:id="_plb90KbnEeC0_qP7CUZIiQ" base_Class="_aF1w4DKeEd-WprEKTCaiMA" configurator="_nUB1YC8HEeKwPrQVP28AQw"/>
+ <FCM:UseInstanceConfigurator xmi:id="_MmzO0KboEeC0_qP7CUZIiQ" base_Class="_aoSDwKAdEeCF0uoVQbVQRg" configurator="_nUB1YC8HEeKwPrQVP28AQw"/>
+ <FCM:InterceptionRule xmi:id="_RBO5IPUQEeCn1-FCrfecFg" interceptionKind="InterceptAllIn" base_Property="_lBO5MPUPEeCn1-FCrfecFg"/>
+ <FCM:InterceptionRule xmi:id="_TLg_YPUQEeCn1-FCrfecFg" interceptionKind="InterceptAllIn" base_Property="_pm5cwPUPEeCn1-FCrfecFg"/>
+ <FCM:Template xmi:id="_NDkWsBavEeGq1uSGvh4rcQ" base_Element="_35DgwBauEeGq1uSGvh4rcQ"/>
+ <FCM:InteractionComponent xmi:id="_7J88sG6FEeGqWMX2LwdLDw" base_Class="_aF1w4DKeEd-WprEKTCaiMA"/>
+ <FCM:InteractionComponent xmi:id="_-t6LoG6FEeGqWMX2LwdLDw" base_Class="_aoSDwKAdEeCF0uoVQbVQRg"/>
+ <FCM:ContainerRule xmi:id="_RWQC8PwkEeGWn-a9PUOYcA" base_Class="_I2OioPwkEeGWn-a9PUOYcA">
+ <forConfig href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:ContainerRule>
+ <FCM:InterceptionRule xmi:id="_m-L0sPwkEeGWn-a9PUOYcA" interceptionKind="InterceptAll" base_Property="_d7If0PwkEeGWn-a9PUOYcA"/>
+ <Cpp:CppInclude xmi:id="__rP4oPxWEeGOK9t90vpALA" header="[import org::eclipse::papyrus::qompass::modellibs::tracing::acceleo::traceLTTng/]&#xA;&#xA;[template public LTTngTP(clazz : Class)]&#xA;[clazz.declareTP()/]&#xA;[/template]" base_class="_rGPjgPxWEeGOK9t90vpALA" preBody="#define TRACEPOINT_CREATE_PROBES&#xA;#define TRACEPOINT_DEFINE"/>
+ <FCM:Template xmi:id="_bKW5IPxXEeGOK9t90vpALA" base_Element="_YU5H4PxXEeGOK9t90vpALA" kind="LoopOperations"/>
+ <FCM:CppLibrary xmi:id="_t_sHUPzOEeGKDvxFM1SZ_g" base_Package="_nAkZEPzOEeGKDvxFM1SZ_g">
+ <libs>lttng-ust</libs>
+ <libs>dl</libs>
+ </FCM:CppLibrary>
+ <Cpp:CppExternClass xmi:id="_1PAQ4PzSEeGKDvxFM1SZ_g" name="lttng/tracepoint.h" base_class="_v-VBcPzSEeGKDvxFM1SZ_g"/>
+ <FCM:Template xmi:id="_flfM8PzhEeGe5LUTfvP5hQ" base_Element="_rGPjgPxWEeGOK9t90vpALA"/>
+ <FCM:InteractionComponent xmi:id="__yL98PzhEeGe5LUTfvP5hQ" base_Class="_pwl_MPxWEeGOK9t90vpALA"/>
+ <Cpp:ManualGeneration xmi:id="_KSTlgCdaEeKGdt7FoegMYA" extensionBody="c" base_Class="_rGPjgPxWEeGOK9t90vpALA"/>
+ <FCM:InterceptionRule xmi:id="_vt_HYSdbEeKGdt7FoegMYA" interceptionKind="InterceptAllIn" base_Property="_vt7dASdbEeKGdt7FoegMYA"/>
+ <l2:Create xmi:id="_X1okQCmiEeKp-eCvZDLsaw" base_BehavioralFeature="_UvQpMCmiEeKp-eCvZDLsaw"/>
+ <l2:Destroy xmi:id="_ZJYEECmiEeKp-eCvZDLsaw" base_BehavioralFeature="_VUW6UCmiEeKp-eCvZDLsaw"/>
+ <FCM:ContainerRule xmi:id="_NtAukCqLEeKGrchWittz_g" base_Class="_If04ACqLEeKGrchWittz_g" kind="LightWeightOORule">
+ <forConfig href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ </FCM:ContainerRule>
+ <FCM:Template xmi:id="_AhsuYCqMEeKGrchWittz_g" base_Element="_eZ1RMCqLEeKGrchWittz_g"/>
+ <FCM:InterceptionRule xmi:id="_IN6uwC2jEeKEc8wNVBgHJg" interceptionKind="InterceptAll" base_Operation="_eZ1RMCqLEeKGrchWittz_g"/>
+ <FCM:UseInstanceConfigurator xmi:id="_1yKFIC8CEeKwPrQVP28AQw" base_Class="_pwl_MPxWEeGOK9t90vpALA" configurator="_nTMOYKbnEeC0_qP7CUZIiQ"/>
+ <FCM:UseInstanceConfigurator xmi:id="_5FYwcC8CEeKwPrQVP28AQw" base_Class="_I2OioPwkEeGWn-a9PUOYcA" configurator="_nTMOYKbnEeC0_qP7CUZIiQ"/>
+ <FCM:UseInstanceConfigurator xmi:id="_gH1RQC8DEeKwPrQVP28AQw" base_Class="_If04ACqLEeKGrchWittz_g" configurator="_nTMOYKbnEeC0_qP7CUZIiQ"/>
+ <FCM:InstanceConfigurator xmi:id="_nUB1YC8HEeKwPrQVP28AQw" base_Class="_nUAnQC8HEeKwPrQVP28AQw"/>
+ <Cpp:CppInclude xmi:id="_gvf4IDHKEeKt1a2SZnJmwg" header="[import org::eclipse::papyrus::qompass::modellibs::tracing::acceleo::traceLTTng/]&#xA;&#xA;[template public LTTngTP(intf : Interface)]&#xA;[intf.declareTP()/]&#xA;[/template]" base_class="_gveqADHKEeKt1a2SZnJmwg" preBody="#define TRACEPOINT_CREATE_PROBES&#xA;#define TRACEPOINT_DEFINE"/>
+ <FCM:Template xmi:id="_gvnM4DHKEeKt1a2SZnJmwg" base_Element="_gveqADHKEeKt1a2SZnJmwg"/>
+ <Cpp:ManualGeneration xmi:id="_gvnz8DHKEeKt1a2SZnJmwg" extensionBody="c" base_Class="_gveqADHKEeKt1a2SZnJmwg"/>
+ <Cpp:ManualGeneration xmi:id="_WUbVADV7EeKGAYOVxzQeAg" extensionBody="c" base_Class="_C4FREDV7EeKGAYOVxzQeAg"/>
+ <Cpp:CppInclude xmi:id="_ZdHkQDV7EeKGAYOVxzQeAg" header="[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]&#xA;[import org::eclipse::papyrus::qompass::designer::core::acceleo::TransformationContext/]&#xA;&#xA;[template public LTTngTP(cl : Classifier)]&#xA;#include &lt;lttng/tracepoint.h>&#xA;&#xA;TRACEPOINT_MODEL_EMF_URI(UMLmodel, starting, &quot;[getSourceRoot().getURI()/]&quot;)&#xA;[/template]&#xA;" base_class="_C4FREDV7EeKGAYOVxzQeAg" preBody=""/>
+ <FCM:Template xmi:id="_HOvQ0DWSEeKGAYOVxzQeAg" base_Element="_C4FREDV7EeKGAYOVxzQeAg" kind="PassClassifier"/>
+</xmi:XMI>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.properties b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.properties
new file mode 100644
index 00000000000..3909dafe6fc
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus extra: Qompass model library for tracing (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.xml b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.xml
new file mode 100644
index 00000000000..59fc39dabaa
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/plugin.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ name="Tracing"
+ point="org.eclipse.emf.ecore.uri_mapping">
+ <mapping
+ source="pathmap://QML_TRACE/"
+ target="platform:/plugin/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/">
+ </mapping>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.uml.extensionpoints.UMLLibrary">
+ <library
+ iconpath="platform:/plugin/org.eclipse.papyrus.qompass.designer.core/icons/Qompass-16x16.gif"
+ name="Qompass model library: tracing"
+ path="pathmap://QML_TRACE/tracing.uml"
+ provider="CEA LIST">
+ </library>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.qompass.designer.core.instanceConfig">
+ <client
+ configuratorID="IConfiguratorTrace"
+ class="org.eclipse.papyrus.qompass.modellibs.tracing.IConfiguratorTrace">
+ </client>
+ <client
+ class="org.eclipse.papyrus.qompass.modellibs.tracing.IConfiguratorOTF"
+ configuratorID="IConfiguratorOTF">
+ </client>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.infra.services.tracepoints.traceMechanism">
+ <client
+ class="org.eclipse.papyrus.qompass.modellibs.tracing.QompassTraceMechanism"
+ traceMechID="org.eclipse.papyrus.qompass.modellibs.tracing.qompass">
+ </client>
+ </extension>
+ <extension point="org.eclipse.ui.newWizards">
+ <wizard
+ category="org.eclipse.ui.Examples/org.eclipse.papyrus.qompass.designer.examples"
+ class="org.eclipse.papyrus.qompass.modellibs.tracing.ClientServerTraceTestModelWizard"
+ finalPerspective="org.eclipse.papyrus.infra.core.perspective"
+ icon="platform:/plugin/org.eclipse.papyrus.qompass.designer.core/icons/Qompass-16x16.gif"
+ id="org.eclipse.papyrus.qompass.modellibs.tracing.newb.ClientServerTraceTest"
+ name="Qompass client/server example with tracing">
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+ <extension
+ point="org.eclipse.help.toc">
+ <toc file="help/tocconcepts.xml"/>
+ </extension>
+</plugin>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/Activator.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/Activator.java
new file mode 100644
index 00000000000..a9e29bfc7a2
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/Activator.java
@@ -0,0 +1,51 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.qompass.modellibs.tracing"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/ClientServerTraceTestModelWizard.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/ClientServerTraceTestModelWizard.java
new file mode 100644
index 00000000000..44b716be54a
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/ClientServerTraceTestModelWizard.java
@@ -0,0 +1,11 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing;
+
+import org.eclipse.papyrus.qompass.modellibs.core.ModelCopyWizard;
+
+
+public class ClientServerTraceTestModelWizard extends ModelCopyWizard {
+
+ public ClientServerTraceTestModelWizard () {
+ modelName = "ClientServerTraceTest";
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorOTF.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorOTF.java
new file mode 100644
index 00000000000..6dae4aa1244
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorOTF.java
@@ -0,0 +1,53 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing;
+
+import org.eclipse.papyrus.qompass.designer.core.PortUtils;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepPlanUtils;
+import org.eclipse.papyrus.qompass.designer.core.extensions.IInstanceConfigurator;
+import org.eclipse.papyrus.qompass.designer.core.transformations.ContainerContext;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Property;
+
+
+public class IConfiguratorOTF implements IInstanceConfigurator {
+
+ static final String PROP_PORT_NAME = "portName";
+
+ static final String PROP_INSTANCE_NAME = "instanceName";
+
+ /**
+ * Configure the passed trace instance
+ *
+ * @see org.eclipse.papyrus.qompass.designer.gentools.core.extensions.IInstanceConfigurator
+ */
+ public void configureInstance(InstanceSpecification instance, Property componentPart, ContainerContext context) {
+ // The tracing code needs informations about the component instance and port.
+
+ DepPlanUtils.configureProperty(instance, PROP_INSTANCE_NAME, "\"" + instance.getName() + "\"");
+
+ // port in context => interception of port => provide information about port and interface
+ if(context.port != null) {
+ // obtain required or provided interface (TODO: will fail, if both are provided!)
+ Interface intf = PortUtils.getProvided(context.port);
+ if(intf == null) {
+ intf = PortUtils.getRequired(context.port);
+ }
+
+ DepPlanUtils.configureProperty(instance, PROP_PORT_NAME, "\"" + context.port.getName() + "\"");
+ if(intf != null) {
+ // this is specific for OTF:
+ // each container contains an attribute (id_<name>) for each operation. This is configured here,
+ // since we add instance information to the trace (is that useful??, seems like a hack)
+ for(Operation op : intf.getOperations()) {
+ String id = Utils.getTop(context.executorIS).getName() + "::Tracing::Trace::ID_" +
+ context.executorIS.getName().replace(".", "_") + "_" + op.getName();
+ DepPlanUtils.configureProperty(instance, "id_" + op.getName(), id);
+ }
+ }
+ }
+
+
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorTrace.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorTrace.java
new file mode 100644
index 00000000000..9e33f4bda66
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorTrace.java
@@ -0,0 +1,40 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing;
+
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepPlanUtils;
+import org.eclipse.papyrus.qompass.designer.core.extensions.IInstanceConfigurator;
+import org.eclipse.papyrus.qompass.designer.core.transformations.ContainerContext;
+import org.eclipse.papyrus.qompass.designer.core.transformations.ContainerTrafo;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Property;
+
+public class IConfiguratorTrace implements IInstanceConfigurator {
+
+ static final String PROP_PORT_NAME = "portName";
+
+ static final String PROP_INSTANCE_NAME = "instanceName";
+
+ /**
+ * Configure the passed trace instance
+ *
+ * @see org.eclipse.papyrus.qompass.designer.gentools.core.extensions.IInstanceConfigurator
+ */
+ public void configureInstance(InstanceSpecification instance, Property componentPart, ContainerContext context) {
+ // The tracing code needs informations about the component instance and port.
+
+ String instanceName = instance.getName();
+ int index = instanceName.lastIndexOf(".");
+ if(index != -1) {
+ String lastSegment = instanceName.substring(index + 1);
+ if(lastSegment.startsWith(ContainerTrafo.interceptorName)) {
+ instanceName = instanceName.substring(0, index);
+ }
+ }
+
+ DepPlanUtils.configureProperty(instance, PROP_INSTANCE_NAME, "\"" + instanceName + "\"");
+
+ // port in context => interception of port => provide information about port and interface
+ if(context.port != null) {
+ DepPlanUtils.configureProperty(instance, PROP_PORT_NAME, "\"" + context.port.getName() + "\"");
+ }
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/QompassTraceMechanism.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/QompassTraceMechanism.java
new file mode 100644
index 00000000000..0f0979541f7
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/QompassTraceMechanism.java
@@ -0,0 +1,181 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.utils.ServiceUtilsForActionHandlers;
+import org.eclipse.papyrus.infra.services.tracepoints.ITraceMechanism;
+import org.eclipse.papyrus.infra.services.tracepoints.MarkerUtils;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceActions.TAOperation;
+import org.eclipse.papyrus.infra.services.tracepoints.TracepointConstants;
+import org.eclipse.papyrus.qompass.designer.core.Description;
+import org.eclipse.papyrus.qompass.designer.core.StUtils;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Property;
+
+import FCM.ConfigOption;
+import FCM.ContainerRule;
+import FCM.RuleApplication;
+
+public class QompassTraceMechanism implements ITraceMechanism {
+
+ public static final String EC3M_TRACING_URI = "pathmap://QML_TRACE/tracing.uml";
+
+ public static final URI tracingURI = URI.createURI(EC3M_TRACING_URI);
+
+ public EList<String> getTraceMechanismIDs(EObject eObj) {
+ EList<String> ids = new BasicEList<String>();
+ // obtain list of all available container rules via Utils. Restrict to those doing tracing.
+ EList<ContainerRule> containerRules = getContainerRules(eObj);
+ for(ContainerRule containerRule : containerRules) {
+ if(isForTracing(containerRule)) {
+ Class clazz = containerRule.getBase_Class();
+ ids.add(clazz.getName());
+ }
+ }
+ if(ids.size() == 0) {
+ ids.add("dummy qompass rule");
+ }
+ return ids;
+ }
+
+ public String getTraceMechanismDescription(EObject eObj, String id) {
+ EList<ContainerRule> containerRules = getContainerRules(eObj);
+ for(ContainerRule containerRule : containerRules) {
+ if(isForTracing(containerRule)) {
+ Class clazz = containerRule.getBase_Class();
+ if(clazz.getName().equals(id)) {
+ return Description.getDescription(clazz);
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Apply the trace mechanism, i.e. set or unset the appropriate ContainerRule for tracing.
+ * Currently handles trace on class.
+ *
+ * Basic idea: always apply same container rule. But container rule expansion is different in function of set tracepoints.
+ * Need to unapply, if there is no longer a trace needing it.
+ */
+ public boolean applyTraceMechanism(EObject eObj, String id, int traceOption) {
+ Class clazzContext = getClassContext(eObj);
+ if(clazzContext == null) {
+ return false;
+ }
+ EList<ContainerRule> containerRules = getContainerRules(eObj);
+ for(ContainerRule containerRule : containerRules) {
+ if(isForTracing(containerRule)) {
+ Class clazz = containerRule.getBase_Class();
+
+ if(clazz.getName().equals(id)) {
+ if(traceOption == TAOperation.OnlyCall.ordinal()) {
+ // yes => what do we then (i.e. how is mapping done??)
+ }
+ RuleApplication ruleApplication = StUtils.applyApp(clazzContext, RuleApplication.class);
+ if((ruleApplication != null) && !ruleApplication.getContainerRule().contains(containerRule)) {
+ ruleApplication.getContainerRule().add(containerRule);
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ // QompassTraceMechanism
+
+ public boolean isForTracing(ContainerRule rule) {
+ for(ConfigOption co : rule.getForConfig()) {
+ // TODO: not very clean to used fixed string
+ if(co.getBase_Class().getName().equals("Trace")) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Return the class (component) for which we need to apply a container rule
+ * to enable the tracing of the passed eObject. This eObject may be
+ * (1) A class, in this case it could be returned directly
+ * (2) An operation. In this case, the owning class is returned (caveat: operation might belong to an interface)
+ * (3) A property of the class (including ports).
+ *
+ * @param eObj
+ * see description above
+ * @return the class to a container rule may be applied
+ */
+ public Class getClassContext(EObject eObj) {
+ if(eObj instanceof Class) {
+ return (Class)eObj;
+ } else if(eObj instanceof Operation) {
+ return ((Operation)eObj).getClass_();
+ } else if(eObj instanceof Property) {
+ return ((Property)eObj).getClass_();
+ } else {
+ return null;
+ }
+ }
+
+ public EList<ContainerRule> getContainerRules(EObject eObj) {
+ if(eObj == null) {
+ // load rules of registered Tracing model library
+ try {
+ ModelSet ms = ServiceUtilsForActionHandlers.getInstance().getModelSet();
+ Resource rs = ms.getResource(tracingURI, true);
+ EList<EObject> contents = rs.getContents();
+ if((contents.size() > 0) && (contents.get(0) instanceof Package)) {
+ return Utils.getAllRules((Package)contents.get(0));
+ }
+ } catch (ServiceException e) {
+ System.err.println(e);
+ }
+ return new BasicEList<ContainerRule>();
+ } else {
+ Package top = Utils.getTop((Element)eObj);
+ return Utils.getAllRules(top);
+ }
+ }
+
+ public boolean configureTraceMechanisms() {
+ String config = "";
+ try {
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+
+ if(root != null) {
+ Object tracePoints[] = root.findMarkers(TracepointConstants.tpOrbpMarker, true, IResource.DEPTH_INFINITE);
+ for(Object tracePointObj : tracePoints) {
+ if(tracePointObj instanceof IMarker) {
+ IMarker tracePoint = (IMarker)tracePointObj;
+ EObject eobj = MarkerUtils.getEObjectOfMarker(tracePoint);
+ if(MarkerUtils.isActive(tracePoint)) {
+ if(eobj instanceof NamedElement) {
+ config += ((NamedElement)eobj).getQualifiedName();
+ }
+ }
+ }
+ }
+ }
+ } catch (CoreException e) {
+ }
+ System.err.println(config);
+ return true;
+ }
+
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceUtils.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceUtils.java
new file mode 100644
index 00000000000..e8b0e395785
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/TraceUtils.java
@@ -0,0 +1,45 @@
+package org.eclipse.papyrus.qompass.modellibs.tracing.acceleo;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
+import org.eclipse.papyrus.infra.services.tracepoints.MarkerUtils;
+import org.eclipse.papyrus.infra.services.tracepoints.TracepointConstants;
+import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
+import org.eclipse.uml2.uml.Element;
+
+public class TraceUtils {
+
+ public static IMarker[] getMarkersForEObject(EObject eObject, String markerType) {
+ Resource resource = eObject.eResource();
+ IFile file = WorkspaceSynchronizer.getFile(resource);
+ if(file != null) {
+ try {
+ return file.findMarkers(markerType, true, IResource.DEPTH_INFINITE);
+ } catch (CoreException e) {
+ }
+ }
+ return new IMarker[0];
+ }
+
+ public static boolean hasTrace(Element eObject) {
+ IMarker markers[] = getMarkersForEObject(eObject, TracepointConstants.tpOrbpMarker);
+ for(IMarker marker : markers) {
+ // explicitly pass resourceSet of eObject we want to compare. Otherwise, the marker utils would
+ // load resources into its own resource set (leading to non-comparable eObjects)
+ EObject eObjOfMarker = MarkerUtils.getEObjectOfMarker(eObject.eResource().getResourceSet(), marker);
+ if(eObjOfMarker == eObject) {
+ return true;
+ }
+ }
+ // TODO: testing workaround (always return true for port based transformations)
+ if(TransformationContext.getPort() != null) {
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/traceCout.mtl b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/traceCout.mtl
new file mode 100644
index 00000000000..540bd60fa85
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/traceCout.mtl
@@ -0,0 +1,14 @@
+[module traceCout('http://www.eclipse.org/uml2/4.0.0/UML')]
+
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public traceOp(operation: Operation)]
+// declare operation & use directly. Problem: declaration can not be within the scope of an operation
+updateTimestamp ();
+cout "enter operation: " << [operation.name/] << " at " << timestamp.ticks() << " parameters: " <<
+ [for (parameter : Parameter | operation.ownedParameter)] "[parameter.name/] (of type [parameter.type.name/]): " << [parameter.name/] [/for] << endl;
+)
+[if not (type = null)] [type.cppType()/] ret = [/if]rconn->[operation.cppCall()/];
+[if not (type = null)] return ret; [/if]
+[/template]
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/traceLTTng.mtl b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/traceLTTng.mtl
new file mode 100644
index 00000000000..af7a3358147
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/traceLTTng.mtl
@@ -0,0 +1,172 @@
+[module traceLTTng('http://www.eclipse.org/uml2/4.0.0/UML')/]
+
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::TransformationContext/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[query public hasTrace(element : Element) : Boolean =
+ invoke('org.eclipse.papyrus.qompass.modellibs.tracing.acceleo.TraceUtils',
+ 'hasTrace(org.eclipse.uml2.uml.Element)',
+ Sequence{element}) /]
+
+[template public declareTP(cl: Classifier)]
+#if !defined(HFILENAME_H) || defined(TRACEPOINT_HEADER_MULTI_READ)
+#define HFILENAME_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <lttng/tracepoint.h>
+[for (operation : Operation | cl.getAllOperations())]
+[if hasTrace()]
+[declareTPop(tpName1(), operation)/]
+[/if]
+[/for]
+
+#undef TRACEPOINT_PROVIDER
+#define TRACEPOINT_PROVIDER [tpName1() /]
+
+#undef TRACEPOINT_INCLUDE_FILE
+#define TRACEPOINT_INCLUDE_FILE [trafoContextClassifier().getQualifiedName().replaceAll('::', '/') /].h
+
+#include <lttng/tracepoint-event.h>
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+[/template]
+
+[template public declareTPop(tpName : String, operation : Operation)]
+#include <stdint.h>
+
+// declare trace point
+TRACEPOINT_EVENT([tpName1()/], [operation.tpName2()/],
+ TP_ARGS(const char *, instanceName[if (operation.parametersInInout()->size() > 0)], [/if][for (parameter : Parameter | operation.parametersInInout()) separator(', ')][flattenParNameAndType()/][/for]),
+ TP_FIELDS(
+ ctf_string(instanceName, instanceName)
+ [for (parameter : Parameter | operation.parametersInInout())]
+ [trafoContextClassifier().declareDependency(parameter.type)/][flattenCtfType(parameter.type, parameter.name)/]
+ [/for]
+ )
+)
+TRACEPOINT_MODEL_EMF_URI([tpName1()/], [operation.tpName2()/], "[operation.modelRef()/]")
+
+[/template]
+
+[template public declareCreateDestroy(tpName : String)]
+TRACEPOINT_EVENT([tpName/], createClass,
+ TP_ARGS(const char *, classURI),
+ TP_FIELDS(
+ ctf_string(classURI, classURI)
+ )
+)
+TRACEPOINT_EVENT([tpName/], destroyClass,
+ TP_ARGS(const char *, className),
+ TP_FIELDS(
+ ctf_string(xmdID, className)
+ )
+)
+[/template]
+
+
+[comment
+ The name that is used for the trace provider
+/]
+[template public tpName1()]
+[templateBinding().getNearestPackage().getQualifiedName().varName()/]
+[/template]
+
+
+[comment
+ The name that is used for the type
+/]
+[template public tpName2(operation : Operation)]
+[operation.name/]
+[/template]
+
+
+[comment
+ Reference either the port (if available in the context) or the operation that is traced
+/]
+[template public modelRef(operation : Operation) post(trim())]
+[if (trafoContextPort() = null)]
+ [operation.getSourceRoot().getURI()/]#[operation.xmlID()/]
+[else]
+ [operation.getSourceRoot().getURI()/]#[trafoContextPort().xmlID()/]
+[/if]
+[/template]
+
+[comment
+/]
+[template public declareTraceOp(operation : Operation)]
+[/template]
+
+[template public invokeTP(operation : Operation)]
+[if hasTrace()]
+// use (call) tracepoint
+tracepoint([tpName1()/], [operation.tpName2()/], instanceName[if (operation.parametersInInout()->size() > 0)], [/if][for (parameter : Parameter | operation.parametersInInout()) separator(', ')][flattenParName()/][/for]);
+[/if]
+[/template]
+
+
+[template flattenParNameAndType(parameter : Parameter) post(trim())]
+[if (type.oclIsTypeOf(DataType))]
+ [for (attribute : Property | type.oclAsType(DataType).attribute) separator(', ')][attribute.type.cppTypeWB()/], [parameter.name + '_' + attribute.name/][/for]
+[else]
+ [parameter.type.cppTypeWB()/], [parameter.name/]
+[/if]
+[/template]
+
+[template flattenParName(parameter : Parameter) post(trim())]
+[if (type.oclIsTypeOf(DataType))]
+ [for (attribute : Property | type.oclAsType(DataType).attribute) separator(', ')][parameter.name + '.' + attribute.name/][/for]
+[else]
+ [parameter.name/]
+[/if]
+[/template]
+
+
+[template flattenCtfType(type : Type, name : String) post(trim())]
+[if (type.oclIsTypeOf(DataType))]
+ [for (attribute : Property | type.oclAsType(DataType).attribute) separator('\n')][ctfType(attribute.type, name + '_' + attribute.name)/][/for]
+[else]
+ [ctfType(type, name)/]
+[/if]
+[/template]
+
+
+[template cppTypeWB(type : Type) post(trim())]
+[if
+ (type.qualifiedName = 'UMLPrimitiveTypes::Boolean') or
+ (type.qualifiedName = 'PrimitiveTypes::Boolean') or
+ (type.qualifiedName = 'CORBA::Boolean')]
+ /* bool */ unsigned char
+[else]
+ [cppType()/]
+[/if]
+[/template]
+
+
+[comment
+ Calculate the typename, defaulting to ctf_integer
+ TODO: treat pointer & ref stereotypes (can only evaulate on parameter or attribute, not on Type)
+/]
+[template public ctfType(type : Type, name : String) post(trim())]
+[if
+ (type.qualifiedName = 'CORBA::String') or
+ (type.qualifiedName = 'PrimitiveTypes::String') or
+ (type.qualifiedName = 'UMLPrimitiveTypes::String')]
+ ctf_string([name/], [name/])
+[elseif
+ (type.qualifiedName = 'CORBA::Float') or
+ (type.qualifiedName = 'CORBA::Double') or
+ (type.qualifiedName = 'AnsiCLibrary::float') or
+ (type.qualifiedName = 'AnsiCLibrary::double')]
+ ctf_float([type.cppType()/], [name/], [name/])
+[else]
+ ctf_integer([type.cppTypeWB()/], [name/], [name/])
+[/if]
+[/template]
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/traceOTF.mtl b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/traceOTF.mtl
new file mode 100644
index 00000000000..dbf20923f40
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/acceleo/traceOTF.mtl
@@ -0,0 +1,28 @@
+[module traceOTF('http://www.eclipse.org/uml2/4.0.0/UML')/]
+
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
+[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
+
+[template public traceOp(operation: Operation)]
+
+// <instance>_<port>_<operation>
+// easier: <component>_<port>_<operation>
+updateTimestamp ();
+if (!hasDeclaredFunctions) {
+ declareFunctions();
+ hasDeclaredFunctions = true;
+}
+Tracing::TraceInit::wait();
+int processID = Tracing::TraceInit::getProcessID();
+OTF_Writer * writer = Tracing::TraceInit::getWriter();
+OTF_Writer_writeEnter (writer, timestamp.ticks(), <%enumSvcPrefix%>::id_<%owner.varName%>_<%varName%>, processID, 0);
+OTF_Writer_writeEventComment (writer, timestamp.ticks(), processID, portName);
+OTF_Writer_writeEventComment (writer, timestamp.ticks(), processID, instanceName);
+Tracing::TraceInit::post();
+[if not (type = null)] [type.cppType()/] ret = [/if]rconn->[operation.cppCall()/];
+updateTimestamp ();
+Tracing::TraceInit::wait();
+OTF_Writer_writeLeave (writer, timestamp.ticks(), <%enumSvcPrefix%>::id_<%owner.varName%>_<%varName%>, processID, 0);
+Tracing::TraceInit::post();
+[if not (type = null)] return ret;[/if]
+[/template] \ No newline at end of file
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/.classpath b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/.classpath
new file mode 100644
index 00000000000..64c5e31b7a2
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/.project b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/.project
new file mode 100644
index 00000000000..657d2f7a65c
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.views.tracepoints</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/META-INF/MANIFEST.MF b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..ccd7816299a
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/META-INF/MANIFEST.MF
@@ -0,0 +1,22 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.views.tracepoints; singleton:=true
+Bundle-Version: 0.9.2.qualifier
+Bundle-Activator: org.eclipse.papyrus.views.tracepoints.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.infra.services.tracepoints;bundle-version="0.9.2",
+ org.eclipse.core.resources;bundle-version="3.7.0",
+ org.eclipse.emf.ecore;bundle-version="2.8.0",
+ org.eclipse.gef;bundle-version="3.8.0",
+ org.eclipse.uml2.uml;bundle-version="4.0.0",
+ org.eclipse.papyrus.infra.core;bundle-version="0.9.2",
+ org.eclipse.papyrus.infra.widgets;bundle-version="0.9.2",
+ org.eclipse.emf.transaction;bundle-version="1.4.0",
+ org.eclipse.gmf.runtime.common.core;bundle-version="1.4.1",
+ org.eclipse.gmf.runtime.common.ui;bundle-version="1.5.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Vendor: %pluginProvider
+Bundle-Localization: plugin
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/about.html b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/about.html
new file mode 100644
index 00000000000..209103075a7
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/build.properties b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/build.properties
new file mode 100644
index 00000000000..8c05b0ac6b9
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/build.properties
@@ -0,0 +1,10 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+ META-INF/,\
+ .,\
+ icons/,\
+ contexts.xml,\
+ about.html,\
+ plugin.properties
+src.includes = about.html
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/contexts.xml b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/contexts.xml
new file mode 100644
index 00000000000..b3b18ae3d68
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/contexts.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<contexts>
+ <context id="viewer" title="Sample View">
+ <description>This is the context help for the sample view with a table viewer. It was generated by a PDE template.</description>
+ <topic href="/PLUGINS_ROOT/org.eclipse.platform.doc.isv/guide/ua_help_context.htm" label="Context-sensitive help">
+ <enablement>
+ <with variable="platform">
+ <test property="org.eclipse.core.runtime.isBundleInstalled" args="org.eclipse.platform.doc.isv"/>
+ </with>
+ </enablement>
+ </topic>
+ </context>
+</contexts>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/breakpoint_view.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/breakpoint_view.gif
new file mode 100644
index 00000000000..f529c5a4225
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/breakpoint_view.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/gotoobj_tsk.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/gotoobj_tsk.gif
new file mode 100644
index 00000000000..cf62b63ae3e
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/gotoobj_tsk.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/skip_brkp.gif b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/skip_brkp.gif
new file mode 100644
index 00000000000..c1751c3ff4f
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/icons/skip_brkp.gif
Binary files differ
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.properties b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.properties
new file mode 100644
index 00000000000..b02f21505bc
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2013 CEA LIST.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# CEA LIST - initial API and implementation
+###############################################################################
+pluginName=Papyrus Tracepoint View (Incubation)
+pluginProvider=Eclipse Modeling Project
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.xml b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.xml
new file mode 100644
index 00000000000..43cfbf7e29e
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/plugin.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ name="Tracepoints"
+ icon="icons/breakpoint_view.gif"
+ category="org.eclipse.papyrus.views.category"
+ class="org.eclipse.papyrus.views.tracepoints.views.TracepointView"
+ id="org.eclipse.papyrus.views.tracepoints.views.Tracepoints">
+ </view>
+ </extension>
+ <extension
+ point="org.eclipse.ui.perspectiveExtensions">
+ <perspectiveExtension
+ targetID="org.eclipse.jdt.ui.JavaPerspective">
+ <view
+ ratio="0.5"
+ relative="org.eclipse.ui.views.TaskList"
+ relationship="right"
+ id="org.eclipse.papyrus.views.tracepoints.views.SampleView">
+ </view>
+ </perspectiveExtension>
+ </extension>
+ <extension
+ point="org.eclipse.help.contexts">
+ <contexts
+ file="contexts.xml">
+ </contexts>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/Activator.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/Activator.java
new file mode 100644
index 00000000000..e12d420e77b
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/Activator.java
@@ -0,0 +1,78 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.views.tracepoints;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.views.tracepoints"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Returns an image descriptor for the image file at the given
+ * plug-in relative path
+ *
+ * @param path
+ * the path
+ * @return the image descriptor
+ */
+ public static ImageDescriptor getImageDescriptor(String path) {
+ return imageDescriptorFromPlugin(PLUGIN_ID, path);
+ }
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TraceViewImages.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TraceViewImages.java
new file mode 100644
index 00000000000..d1dc6b933aa
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TraceViewImages.java
@@ -0,0 +1,44 @@
+/*****************************************************************************
+* Copyright (c) 2012 CEA LIST.
+*
+*
+ * All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+*
+* Contributors:
+* Ansgar Radermacher (CEA LIST) - Initial API and implementation
+*
+*****************************************************************************/
+
+package org.eclipse.papyrus.views.tracepoints.views;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.papyrus.views.tracepoints.Activator;
+import org.eclipse.swt.graphics.Image;
+
+
+public class TraceViewImages {
+
+ public static ImageDescriptor getGotoObjID() {
+ org.eclipse.papyrus.infra.widgets.Activator widgetsActivator =
+ org.eclipse.papyrus.infra.widgets.Activator.getDefault();
+ return widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, "icons/gotoobj_tsk.gif");
+ }
+
+ public static ImageDescriptor getSkipAllID() {
+ org.eclipse.papyrus.infra.widgets.Activator widgetsActivator =
+ org.eclipse.papyrus.infra.widgets.Activator.getDefault();
+ return widgetsActivator.getImageDescriptor(Activator.PLUGIN_ID, "icons/skip_brkp.gif");
+ }
+
+ public static Image getSkipAllImage() {
+ if(skipAllImage == null) {
+ skipAllImage = getSkipAllID().createImage();
+ }
+ return skipAllImage;
+ }
+
+ protected static Image skipAllImage = null;
+}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TracepointView.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TracepointView.java
new file mode 100644
index 00000000000..ace3d79213b
--- /dev/null
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.views.tracepoints/src/org/eclipse/papyrus/views/tracepoints/views/TracepointView.java
@@ -0,0 +1,521 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Ansgar Radermacher (CEA LIST) - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.views.tracepoints.views;
+
+
+import java.util.Map;
+
+import javax.swing.text.View;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gmf.runtime.common.ui.resources.FileChangeManager;
+import org.eclipse.gmf.runtime.common.ui.resources.IFileObserver;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.util.OpenStrategy;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.jface.viewers.ICheckStateProvider;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.papyrus.infra.services.tracepoints.MarkerUtils;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceFunctions;
+import org.eclipse.papyrus.infra.services.tracepoints.TraceState;
+import org.eclipse.papyrus.infra.services.tracepoints.TracepointConstants;
+import org.eclipse.papyrus.infra.services.tracepoints.dialogs.TraceActionSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.ISelectionListener;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.ui.part.ViewPart;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+
+
+/**
+ * This sample class demonstrates how to plug-in a new
+ * workbench view. The view shows data obtained from the
+ * model. The sample creates a dummy model on the fly,
+ * but a real implementation would connect to the model
+ * available either in this or another plug-in (e.g. the workspace).
+ * The view is connected to the model using a content provider.
+ * <p>
+ * The view uses a label provider to define how model objects should be presented in the view. Each view can present the same model objects using
+ * different labels and icons, if needed. Alternatively, a single label provider can be shared between views in order to ensure that objects of the
+ * same type are presented in the same way everywhere.
+ * <p>
+ */
+
+public class TracepointView extends ViewPart implements ISelectionListener {
+
+ /**
+ * The ID of the view as specified by the extension.
+ */
+ public static final String ID = "org.eclipse.papyrus.views.tracepoints.views.Tracepoints";
+
+
+ private CheckboxTableViewer viewer;
+
+ protected Action actionDelete;
+
+ protected Action actionDeleteAll;
+
+ protected Action actionGoto;
+
+ protected Action actionSkip;
+
+ protected Action actionTraceSelect;
+
+ private Action doubleClickAction;
+
+ private IFileObserver fileObserver = null;
+
+ protected TraceActionSelection tas;
+
+ /**
+ * The content provider class is responsible for
+ * providing objects to the view. It can wrap
+ * existing objects in adapters or simply return
+ * objects as-is. These objects may be sensitive
+ * to the current input of the view, or ignore
+ * it and always show the same content
+ * (like Task List, for example).
+ */
+ class ViewContentProvider implements IStructuredContentProvider {
+
+ public void inputChanged(Viewer v, Object oldInput, Object newInput) {
+ }
+
+ public void dispose() {
+ }
+
+ public Object[] getElements(Object parent) {
+ try {
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ if(root != null) {
+ return root.findMarkers(TracepointConstants.tpOrbpMarker, true, IResource.DEPTH_INFINITE);
+ }
+ } catch (CoreException e) {
+ }
+ return new String[]{};
+ }
+ }
+
+
+
+ class ViewLabelProvider extends LabelProvider implements ITableLabelProvider {
+
+ public ViewLabelProvider() {
+ this.traceImage = new TraceFunctions();
+ }
+
+ public String getColumnText(Object obj, int index) {
+ if(obj instanceof IMarker) {
+ EObject eobj = MarkerUtils.getEObjectOfMarker((IMarker)obj);
+ if(eobj instanceof NamedElement) {
+ return ((NamedElement)eobj).getQualifiedName();
+ } else if(eobj != null) {
+ return eobj.toString();
+ }
+ }
+ return getText(obj);
+
+ }
+
+ public Image getColumnImage(Object obj, int index) {
+ if(TraceState.skipAllTracepoints) {
+ return TraceViewImages.getSkipAllImage();
+ }
+ if(obj instanceof IMarker) {
+ IMarker marker = (IMarker)obj;
+ ImageDescriptor id = traceImage.getImageDescriptorForGE(marker);
+ if(id != null) {
+ // TODO: leaks!
+ return id.createImage();
+ }
+ }
+ return null;
+ }
+
+ private TraceFunctions traceImage;
+ }
+
+ class NameSorter extends ViewerSorter {
+ }
+
+ /**
+ * The constructor.
+ */
+ public TracepointView() {
+ }
+
+ /**
+ * This is a callback that will allow us
+ * to create the viewer and initialize it.
+ */
+ @Override
+ public void createPartControl(Composite parent) {
+ viewer = CheckboxTableViewer.newCheckList(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
+ viewer.setContentProvider(new ViewContentProvider());
+ viewer.setLabelProvider(new ViewLabelProvider());
+ viewer.setCheckStateProvider(new ICheckStateProvider() {
+
+ public boolean isGrayed(Object element) {
+ return false;
+ }
+
+ public boolean isChecked(Object element) {
+ if(element instanceof IMarker) {
+ IMarker marker = (IMarker)element;
+ return marker.getAttribute(TracepointConstants.isActive, false);
+ }
+ return false;
+ }
+ });
+
+ viewer.setSorter(new NameSorter());
+ viewer.setInput(getViewSite());
+
+ getViewSite().getPage().addSelectionListener(this);
+
+
+ // Create the help context id for the viewer's control
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), "org.eclipse.papyrus.views.tracepoints.viewer");
+ makeActions();
+ hookContextMenu();
+ hookDoubleClickAction();
+ contributeToActionBars();
+ viewer.addCheckStateListener(new ICheckStateListener() {
+
+ public void checkStateChanged(CheckStateChangedEvent event) {
+ Object element = event.getElement();
+ boolean isChecked = event.getChecked();
+ if(element instanceof IMarker) {
+ IMarker marker = (IMarker)element;
+ try {
+ marker.setAttribute(TracepointConstants.isActive, isChecked);
+ switchUI();
+ } catch (CoreException e) {
+ }
+ }
+ }
+ });
+
+ fileObserver = new IFileObserver() {
+
+ public void handleMarkerDeleted(IMarker marker, @SuppressWarnings("rawtypes") Map attributes) {
+ switchUI();
+ }
+
+ public void handleMarkerChanged(IMarker marker) {
+ switchUI();
+ }
+
+ public void handleMarkerAdded(IMarker marker) {
+ switchUI();
+ }
+
+ // TODO need to handle?
+ public void handleFileRenamed(IFile oldFile, IFile file) {
+ }
+
+ public void handleFileMoved(IFile oldFile, IFile file) {
+ }
+
+ public void handleFileDeleted(IFile file) {
+ }
+
+ public void handleFileChanged(IFile file) {
+ }
+ };
+
+ FileChangeManager.getInstance().addFileObserver(fileObserver);
+ }
+
+ @Override
+ public void dispose() {
+ if(fileObserver != null) {
+ FileChangeManager.getInstance().addFileObserver(fileObserver);
+ }
+ super.dispose();
+ }
+
+ public void switchUI() {
+ Display.getDefault().asyncExec(new Runnable() {
+
+ public void run() {
+ // ... do any work that updates the screen ...
+ viewer.refresh();
+ }
+ });
+ }
+
+ private void hookContextMenu() {
+ MenuManager menuMgr = new MenuManager("#PopupMenu");
+ menuMgr.setRemoveAllWhenShown(true);
+ menuMgr.addMenuListener(new IMenuListener() {
+
+ public void menuAboutToShow(IMenuManager manager) {
+ TracepointView.this.fillContextMenu(manager);
+ }
+ });
+ Menu menu = menuMgr.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(menuMgr, viewer);
+ }
+
+ private void contributeToActionBars() {
+ IActionBars bars = getViewSite().getActionBars();
+ fillLocalPullDown(bars.getMenuManager());
+ fillLocalToolBar(bars.getToolBarManager());
+ }
+
+ protected void fillLocalPullDown(IMenuManager manager) {
+ manager.add(actionDelete);
+ manager.add(new Separator());
+ manager.add(actionGoto);
+ }
+
+ protected void fillContextMenu(IMenuManager manager) {
+ manager.add(actionDelete);
+ manager.add(actionGoto);
+ // Other plug-ins can contribute there actions here
+ manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+ }
+
+ protected void fillLocalToolBar(IToolBarManager manager) {
+ manager.add(actionDelete);
+ manager.add(actionDeleteAll);
+ manager.add(actionGoto);
+ manager.add(actionSkip);
+ manager.add(actionTraceSelect);
+ }
+
+ protected void makeActions() {
+ actionSkip = new Action("Skip all", Action.AS_CHECK_BOX) {
+
+ @Override
+ public void run() {
+ TraceState.skipAllTracepoints = !TraceState.skipAllTracepoints;
+ switchUI();
+ }
+ };
+ actionSkip.setChecked(TraceState.skipAllTracepoints);
+
+ actionSkip.setImageDescriptor(TraceViewImages.getSkipAllID());
+ actionSkip.setToolTipText("Toggle skipping all trace/break points");
+
+ actionDelete = new Action("Delete") {
+
+ @Override
+ public void run() {
+ ISelection selection = viewer.getSelection();
+ Object obj = ((IStructuredSelection)selection).getFirstElement();
+ if(obj instanceof IMarker) {
+ IMarker marker = (IMarker)obj;
+ try {
+ marker.delete();
+ } catch (CoreException e) {
+ }
+ }
+ }
+ };
+ actionDelete.setToolTipText("Delete trace/breakpoint");
+ actionDelete.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_ELCL_REMOVE));
+
+ actionDeleteAll = new Action() {
+
+ @Override
+ public void run() {
+
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ if(root != null) {
+ try {
+ root.deleteMarkers(TracepointConstants.tpOrbpMarker, true, 0);
+ } catch (CoreException e) {
+ }
+ }
+ }
+ };
+ actionDeleteAll.setText("Delete all");
+ actionDeleteAll.setToolTipText("Delete all trace/breakpoint");
+ actionDeleteAll.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_ELCL_REMOVEALL));
+
+ actionGoto = new Action() {
+
+ @Override
+ public void run() {
+ ISelection selection = viewer.getSelection();
+ Object obj = ((IStructuredSelection)selection).getFirstElement();
+ if(obj instanceof IMarker) {
+ IMarker marker = (IMarker)obj;
+ boolean onlyNavigatoToActiveEditor = false;
+ IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ if(onlyNavigatoToActiveEditor) {
+ IEditorPart part = activePage.getActiveEditor();
+ if(part instanceof IGotoMarker) {
+ ((IGotoMarker)part).gotoMarker(marker);
+ }
+ } else {
+ try {
+ IDE.openEditor(activePage, marker, OpenStrategy.activateOnOpen());
+ } catch (PartInitException e) {
+
+ }
+ }
+ }
+ }
+ };
+ actionGoto.setText("Goto");
+ actionGoto.setToolTipText("Navigate to trace/breakpoint");
+ actionGoto.setImageDescriptor(TraceViewImages.getGotoObjID());
+ doubleClickAction = actionGoto;
+
+ actionTraceSelect = new Action() {
+
+ @Override
+ public void run() {
+ ISelection selection = viewer.getSelection();
+ Object obj = ((IStructuredSelection)selection).getFirstElement();
+ if(obj instanceof IMarker) {
+ // EditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().openEditor(input, null);
+ IMarker marker = (IMarker)obj;
+ EObject eobj = MarkerUtils.getEObjectOfMarker(marker);
+ if(eobj instanceof Element) {
+ TraceActionSelection tad = new TraceActionSelection(new Shell(), (IMarker)obj, (Element)eobj);
+ tad.open();
+ if(tad.getReturnCode() == IDialogConstants.OK_ID) {
+ Object[] result = tad.getResult();
+ int traceAction = (Integer)result[0];
+ String traceMechanism = (String)result[1];
+ try {
+ marker.setAttribute(TracepointConstants.traceAction, traceAction);
+ marker.setAttribute(TracepointConstants.traceMechanism, traceMechanism);
+ } catch (CoreException e) {
+ }
+ }
+ }
+ }
+ }
+
+ };
+ actionTraceSelect.setText("trace action");
+ actionTraceSelect.setToolTipText("Select trace action");
+ actionTraceSelect.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_NEW_WIZARD));
+ }
+
+ protected void hookDoubleClickAction() {
+ viewer.addDoubleClickListener(new IDoubleClickListener() {
+
+ public void doubleClick(DoubleClickEvent event) {
+ doubleClickAction.run();
+ }
+ });
+ }
+
+ /**
+ * Passing the focus request to the viewer's control.
+ */
+ @Override
+ public void setFocus() {
+ viewer.getControl().setFocus();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart,
+ * org.eclipse.jface.viewers.ISelection)
+ */
+ // TODO: function not used currently
+ public void selectionChanged(IWorkbenchPart part, ISelection selection) {
+
+ IStructuredSelection sSelection = null;
+ if(selection instanceof IStructuredSelection) {
+ sSelection = (IStructuredSelection)selection;
+ }
+
+ // exclude case of an empty selection which is not a Tree selection, since changing views provokes an
+ // empty selection (selection gets lost, although same element remains selected)
+ if((selection != null) && (sSelection != null) && sSelection.isEmpty()) {
+ return;
+ }
+ currentElement = null;
+
+ // No available selection: switch to default panel
+ if((sSelection == null) || (sSelection.size() != 1)) {
+ switchUI();
+ return;
+ }
+
+ // Retrieve selected object
+ Object currentObject = sSelection.getFirstElement();
+ // If the object is an edit part, try to get semantic bridge
+ if(currentObject instanceof GraphicalEditPart) {
+ GraphicalEditPart editPart = (GraphicalEditPart)currentObject;
+ if(editPart.getModel() instanceof View) {
+ View view = (View)editPart.getModel();
+ if(view.getElement() instanceof Element) {
+ currentObject = view.getElement();
+ }
+ }
+ } else if(currentObject instanceof IAdaptable) {
+ // modisco ModelElementItem supports IAdaptable (cleaner than cast / dependency with modisco)
+ currentObject = ((IAdaptable)currentObject).getAdapter(EObject.class);
+ }
+
+ if(currentObject instanceof Element) {
+ currentElement = (Element)currentObject;
+ // switchUI();
+ }
+ }
+
+ protected Element currentElement;
+}

Back to the top