Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnsgar Radermacher2014-01-08 16:17:10 +0000
committerAnsgar Radermacher2014-01-08 16:28:07 +0000
commitbd07552d45da53a4ca1a42304a9e1279b46c8930 (patch)
treefc719fd771e304aae6bf2b2d7e498a80c556b27e /extraplugins
parentbcf7a4b1d02468d255ad131a37ebd4730545d089 (diff)
downloadorg.eclipse.papyrus-bd07552d45da53a4ca1a42304a9e1279b46c8930.tar.gz
org.eclipse.papyrus-bd07552d45da53a4ca1a42304a9e1279b46c8930.tar.xz
org.eclipse.papyrus-bd07552d45da53a4ca1a42304a9e1279b46c8930.zip
Bug 424927 - [QDesigner] Instance configurators should be applicable to all components
Diffstat (limited to 'extraplugins')
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Utils.java17
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/acceleo/EnumService.java3
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/BindingHelperExt.java78
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/EmbeddingRule.java2
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IEmbeddingRule.java9
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IInstanceConfigurator.java8
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/InstanceConfigurator.java25
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AbstractContainerTrafo.java2
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ApplyInstanceConfigurators.java40
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ContainerTrafo.java42
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/Copy.java3
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/FlattenInteractionComponents.java24
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/InstantiateDepPlan.java16
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/LWContainerTrafo.java3
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/MainModelTrafo.java22
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FixTemplateSync.java5
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.di6
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.notation47
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.uml16
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.notation284
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.uml23
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.uml11
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorOTF.java25
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/IConfiguratorTrace.java12
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/StringConstants.java1
25 files changed, 631 insertions, 93 deletions
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Utils.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Utils.java
index df81b6995f7..2fac99cac7b 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Utils.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Utils.java
@@ -52,6 +52,8 @@ import org.eclipse.uml2.uml.util.UMLUtil;
public class Utils {
+ public static final String QUOTE = "\""; //$NON-NLS-1$
+
/**
* Retrieve an element from a list of named elements via its name
*
@@ -496,4 +498,19 @@ public class Utils {
}
}
}
+
+ /**
+ * Put quotes around a string, unless string already starts with a quote.
+ *
+ * @param str
+ * @return
+ */
+ public static String quoteString(String str) {
+ if (str.startsWith(QUOTE)) {
+ return str;
+ }
+ else {
+ return QUOTE + str + QUOTE;
+ }
+ }
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/acceleo/EnumService.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/acceleo/EnumService.java
index 562f6cd4275..2870684a147 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/acceleo/EnumService.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/acceleo/EnumService.java
@@ -17,6 +17,7 @@ package org.eclipse.papyrus.qompass.designer.core.acceleo;
import java.util.HashMap;
import java.util.Map;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Classifier;
@@ -68,7 +69,7 @@ public class EnumService {
}
public static String quoteLiteral(Element dummy, String enumName, String literal) {
- return "\"" + literal(enumName, literal) + "\""; //$NON-NLS-1$//$NON-NLS-2$
+ return Utils.quoteString(literal(enumName, literal));
}
/**
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/BindingHelperExt.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/BindingHelperExt.java
new file mode 100644
index 00000000000..bbde28a4b23
--- /dev/null
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/BindingHelperExt.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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
+ *******************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.extensions;
+
+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.ecore.EObject;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.util.IBindingHelper;
+import org.eclipse.papyrus.qompass.designer.core.listeners.CopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.TemplateBinding;
+
+
+/**
+ * Support for binding helper
+ */
+public class BindingHelperExt {
+
+ public static final String IBINDING_HELPER_ID = org.eclipse.papyrus.FCM.Activator.PLUGIN_ID + ".fcmBindingHelper"; //$NON-NLS-1$
+
+ /**
+ *
+ * @param iConfiguratorName
+ * @param component
+ * containing composite (container)
+ * @param instance
+ */
+ public static EObject applyHelper(BindingHelper helper, Copy copy, TemplateBinding binding, EObject sourceEObj) {
+ IBindingHelper ihelper = getBindingHelper(helper.getBase_Class().getName());
+ if (sourceEObj instanceof Element) {
+ ihelper.handleElement(binding, (Element) sourceEObj);
+ }
+ if(ihelper instanceof CopyListener) {
+ return ((CopyListener) ihelper).copyEObject(copy, sourceEObj);
+ }
+ return sourceEObj;
+ }
+
+ public static IBindingHelper getBindingHelper(BindingHelper helper) {
+ if (helper != null) {
+ return getBindingHelper(helper.getBase_Class().getName());
+ }
+ return null;
+ }
+
+ public static IBindingHelper getBindingHelper(String helperName) {
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] configElements = reg.getConfigurationElementsFor(IBINDING_HELPER_ID);
+ for(IConfigurationElement configElement : configElements) {
+ try {
+ final String configHelperName = configElement.getAttribute("bindingHelperName"); //$NON-NLS-1$
+ if(configHelperName.equals(helperName)) {
+ // TODO: cache returned instance (avoid creating a new instance each time => more efficient, no need for static attributes)
+ final Object obj = configElement.createExecutableExtension("class"); //$NON-NLS-1$
+ if(obj instanceof IBindingHelper) {
+ return (IBindingHelper)obj;
+ }
+ }
+ } catch (CoreException exception) {
+ exception.printStackTrace();
+ }
+ }
+ return null;
+ }
+}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/EmbeddingRule.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/EmbeddingRule.java
index 455b6786b3e..ae8d03c3a06 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/EmbeddingRule.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/EmbeddingRule.java
@@ -22,7 +22,7 @@ import org.eclipse.uml2.uml.Port;
/**
* Support for embedding rules.
- * Currently not used, unclear if kept
+ * CAVEAT: Currently not used, unclear if kept
*/
@Deprecated
public class EmbeddingRule {
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IEmbeddingRule.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IEmbeddingRule.java
index 2e3f5dd966d..266fe4559b1 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IEmbeddingRule.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IEmbeddingRule.java
@@ -15,12 +15,13 @@ import org.eclipse.uml2.uml.InstanceSpecification;
import org.eclipse.uml2.uml.Port;
/**
- * Interface used by Qompass extensions that supports specific instance configurators,
- * used for containers.
+ * Interface used by Qompass extensions that supports specific embedding rules.
+ * CAVEAT: Currently not used, unclear if kept
*/
+@Deprecated
public interface IEmbeddingRule {
- // TODO: ordre? appliqué
+ // TODO: application order?
/**
* configure an instance (within a container)
* @param executorIS the instance specification of the component that is used as basis for configuring the instance
@@ -28,5 +29,5 @@ public interface IEmbeddingRule {
* @param port the port within a container transformation for which the instance is used as an interceptor.
* Is null for "normal" connectors or container extensions is configured.
*/
- public void embeddExtension (InstanceSpecification executorIS, InstanceSpecification instance, Port port);
+ public void embeddExtension(InstanceSpecification executorIS, InstanceSpecification instance, Port port);
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IInstanceConfigurator.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IInstanceConfigurator.java
index 18480c3de37..94df33a7003 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IInstanceConfigurator.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/IInstanceConfigurator.java
@@ -14,8 +14,6 @@ package org.eclipse.papyrus.qompass.designer.core.extensions;
import org.eclipse.uml2.uml.InstanceSpecification;
import org.eclipse.uml2.uml.Property;
-import org.eclipse.papyrus.qompass.designer.core.transformations.ContainerContext;
-
/**
* Interface used by Qompass extensions that supports specific instance configurators,
* used for containers.
@@ -27,12 +25,12 @@ public interface IInstanceConfigurator {
*
* @param instance
* the instance of an element which should be configured.
- * @param componentPort
+ * @param componentPart
* the property that represents the component within the enclosing composite. May be null, if the instance
* that should be configured is the main instance.
- * @param containerContext
+ * @param parentInstance
* additional information, if the element that should be configured is part of a container, e.g. an interceptor
* or an extension within the container.
*/
- public void configureInstance(InstanceSpecification instance, Property componentPart, ContainerContext containerContext);
+ public void configureInstance(InstanceSpecification instance, Property componentPart, InstanceSpecification parentInstnace);
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/InstanceConfigurator.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/InstanceConfigurator.java
index c8e2d0287b0..acb0084e888 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/InstanceConfigurator.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/InstanceConfigurator.java
@@ -19,7 +19,6 @@ import org.eclipse.papyrus.FCM.ContainerRule;
import org.eclipse.papyrus.FCM.UseInstanceConfigurator;
import org.eclipse.papyrus.qompass.designer.core.Activator;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
-import org.eclipse.papyrus.qompass.designer.core.transformations.ContainerContext;
import org.eclipse.uml2.uml.Classifier;
import org.eclipse.uml2.uml.InstanceSpecification;
import org.eclipse.uml2.uml.Property;
@@ -33,6 +32,8 @@ public class InstanceConfigurator {
public static final String IINSTANCE_CONFIG_ID = Activator.PLUGIN_ID + ".instanceConfig"; //$NON-NLS-1$
+ public static boolean onNodeModel = false;
+
/**
* Configure an instance. The configurator is selected by means of a stereotype on the classifier of
* the passed instance.
@@ -45,10 +46,10 @@ public class InstanceConfigurator {
* @param port
* a port within the context of container
*/
- public static void configureInstance(InstanceSpecification instance, Property componentPart, ContainerContext containerContext) {
+ public static void configureInstance(InstanceSpecification instance, Property componentPart, InstanceSpecification parentInstance) {
Classifier component = DepUtils.getClassifier(instance);
UseInstanceConfigurator useInstanceConfigurator = UMLUtil.getStereotypeApplication(component, UseInstanceConfigurator.class);
- configureInstance(useInstanceConfigurator, instance, componentPart, containerContext);
+ configureInstance(useInstanceConfigurator, instance, componentPart, parentInstance);
}
/**
@@ -64,9 +65,9 @@ public class InstanceConfigurator {
* @param port
* a port within the context of container
*/
- public static void configureInstance(ContainerRule rule, InstanceSpecification instance, Property componentPart, ContainerContext containerContext) {
+ public static void configureInstance(ContainerRule rule, InstanceSpecification instance, Property componentPart, InstanceSpecification parentInstance) {
UseInstanceConfigurator useInstanceConfigurator = UMLUtil.getStereotypeApplication(rule.getBase_Class(), UseInstanceConfigurator.class);
- configureInstance(useInstanceConfigurator, instance, componentPart, containerContext);
+ configureInstance(useInstanceConfigurator, instance, componentPart, parentInstance);
}
/**
@@ -77,15 +78,17 @@ public class InstanceConfigurator {
* @param componentPart
* @param containerContext
*/
- public static void configureInstance(UseInstanceConfigurator useInstanceConfigurator, InstanceSpecification instance, Property componentPart, ContainerContext containerContext) {
+ public static void configureInstance(UseInstanceConfigurator useInstanceConfigurator, InstanceSpecification instance, Property componentPart, InstanceSpecification parentInstance) {
if(useInstanceConfigurator != null) {
org.eclipse.papyrus.FCM.InstanceConfigurator instanceConfigurator = useInstanceConfigurator.getConfigurator();
- if(instanceConfigurator != null) {
- String id = instanceConfigurator.getBase_Class().getName();
- IInstanceConfigurator iConfigurator = getInstanceConfigurator(id);
- if(iConfigurator != null) {
- iConfigurator.configureInstance(instance, componentPart, containerContext);
+ if (instanceConfigurator.isOnNodeModel() == onNodeModel) {
+ if(instanceConfigurator != null) {
+ String id = instanceConfigurator.getBase_Class().getName();
+ IInstanceConfigurator iConfigurator = getInstanceConfigurator(id);
+ if(iConfigurator != null) {
+ iConfigurator.configureInstance(instance, componentPart, parentInstance);
+ }
}
}
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AbstractContainerTrafo.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AbstractContainerTrafo.java
index 2d7d5c39eef..12ca2ec6579 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AbstractContainerTrafo.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AbstractContainerTrafo.java
@@ -59,7 +59,7 @@ public abstract class AbstractContainerTrafo {
* @param context
* Additional information about the container that is used by instance configurators
*/
- public abstract InstanceSpecification createContainerInstance(Class tmComponent, InstanceSpecification tmIS, ContainerContext context)
+ public abstract InstanceSpecification createContainerInstance(Class tmComponent, InstanceSpecification tmIS)
throws TransformationException;
/**
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ApplyInstanceConfigurators.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ApplyInstanceConfigurators.java
new file mode 100644
index 00000000000..35839a25539
--- /dev/null
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ApplyInstanceConfigurators.java
@@ -0,0 +1,40 @@
+/*****************************************************************************
+ * 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:
+ * Ansgar Radermacher ansgar.radermacher@cea.fr
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.papyrus.qompass.designer.core.extensions.InstanceConfigurator;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+
+
+/**
+ * Apply instance configurators
+ *
+ */
+public class ApplyInstanceConfigurators {
+ public static void applyInstanceConfigurators(InstanceSpecification instance) {
+ for (Slot slot : instance.getSlots()) {
+ InstanceSpecification subInstance = DepUtils.getInstance(slot);
+ if (!DepUtils.isShared(slot) && (subInstance != null)) {
+ if (slot.getDefiningFeature() instanceof Property) {
+ InstanceConfigurator.configureInstance(subInstance, (Property) slot.getDefiningFeature(), instance);
+ }
+ applyInstanceConfigurators(subInstance);
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ContainerTrafo.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ContainerTrafo.java
index d2aece79dd0..40d7e55ae02 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ContainerTrafo.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ContainerTrafo.java
@@ -34,7 +34,6 @@ import org.eclipse.papyrus.qompass.designer.core.acceleo.UMLTool;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepCreation;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
import org.eclipse.papyrus.qompass.designer.core.deployment.DeployConstants;
-import org.eclipse.papyrus.qompass.designer.core.extensions.InstanceConfigurator;
import org.eclipse.papyrus.qompass.designer.core.templates.TemplateInstantiation;
import org.eclipse.papyrus.qompass.designer.core.templates.TemplateUtils;
import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
@@ -99,7 +98,7 @@ public class ContainerTrafo extends AbstractContainerTrafo {
*/
@Override
public void createContainer(Class smComponent, Class tmComponent) throws TransformationException {
- Package tmPkgOwner = (Package)tmComponent.getOwner();
+ Package tmPkgOwner = tmComponent.getNearestPackage();
// create a container with the suitable postfix
tmContainerImpl = tmPkgOwner.createOwnedClass(tmComponent.getName() + containerPostfix, false);
Copy.copyID(tmComponent, tmContainerImpl, containerPostfix);
@@ -177,7 +176,7 @@ public class ContainerTrafo extends AbstractContainerTrafo {
* Additional information about the container that is used by instance configurators
*/
@Override
- public InstanceSpecification createContainerInstance(Class tmComponent, InstanceSpecification tmIS, ContainerContext context) throws TransformationException {
+ public InstanceSpecification createContainerInstance(Class tmComponent, InstanceSpecification tmIS) throws TransformationException {
// create an instance specification for the container
InstanceSpecification containerIS =
(InstanceSpecification)tmCDP.createPackagedElement(tmIS.getName(), UMLPackage.eINSTANCE.getInstanceSpecification());
@@ -189,7 +188,6 @@ public class ContainerTrafo extends AbstractContainerTrafo {
DepCreation.createSlot(containerIS, tmIS, executorPart);
counter = 0;
// containers.put(tmComponent, this);
- context.executorIS = tmIS;
EList<Slot> connectorSlots = new BasicEList<Slot>();
// now create instances for the contained elements
@@ -212,12 +210,10 @@ public class ContainerTrafo extends AbstractContainerTrafo {
else {
isName = containerIS.getName() + "." + extensionPart.getName(); //$NON-NLS-1$
}
+ // create sub-instance and slot for extensions
if (containerExtIS == null) {
containerExtIS = DepCreation.createDepPlan(tmCDP, (Class)tmContainerExtImpl, isName, false);
}
- // configure extension
- context.port = portInfo.get(extensionPart);
- InstanceConfigurator.configureInstance(containerExtIS, extensionPart, context);
Slot partSlot = DepCreation.createSlot(containerIS, containerExtIS, extensionPart);
if (StereotypeUtil.isApplied(tmContainerExtImpl, InteractionComponent.class)) {
connectorSlots.add(partSlot);
@@ -241,7 +237,7 @@ public class ContainerTrafo extends AbstractContainerTrafo {
* @param tmComponent
* @param tmIS
*/
- public InstanceSpecification createHwContainerInstance(Class tmComponent, InstanceSpecification tmNode, ContainerContext context) {
+ public InstanceSpecification createHwContainerInstance(Class tmComponent, InstanceSpecification tmNode) {
// create an instance specification for the container
InstanceSpecification containerIS =
(InstanceSpecification)tmCDP.createPackagedElement(tmNode.getName() + hwContainerPostfix, UMLPackage.eINSTANCE.getInstanceSpecification());
@@ -251,7 +247,6 @@ public class ContainerTrafo extends AbstractContainerTrafo {
// containers.put(tmComponent, this);
counter = 0;
executorIS = tmNode;
- context.executorIS = executorIS;
// copy slots from HW instance specification
for (Slot slot : tmNode.getSlots()) {
Slot slotCopy = containerIS.createSlot();
@@ -613,6 +608,35 @@ public class ContainerTrafo extends AbstractContainerTrafo {
}
}
}
+
+ /**
+ * Return the containerTrafo associated with a container. This operation is useful for instance
+ * configurators that need more information about the container context, in particular to associate
+ * a part with a port that is intercepted.
+ *
+ * @param containerInstance the container instance (the parent instance of an instance of a container extension)ight be a container instance)
+ * @return the containerTrafo info, if found.
+ */
+ public static ContainerTrafo getContainerTrafo(InstanceSpecification containerInstance) {
+ Classifier containerCandidate = DepUtils.getClassifier(containerInstance);
+ Property executorPart = containerCandidate.getAttribute(executorPartName, null);
+ if ((executorPart != null) && executorPart.getType() instanceof Class) {
+ AbstractContainerTrafo containerTrafo = ContainerTrafo.get((Class) executorPart.getType());
+ if (containerTrafo instanceof ContainerTrafo) {
+ return (ContainerTrafo) containerTrafo;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Return the port that is intercepted when given a part
+ * @param containerPart a part that participates in a port interception
+ * @return intercepted port
+ */
+ public Port getInterceptedPort(Property containerPart) {
+ return portInfo.get(containerPart);
+ }
/**
* The attribute within the container that holds the executor, i.e. the
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/Copy.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/Copy.java
index 8c571972136..790048a6f5d 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/Copy.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/Copy.java
@@ -483,7 +483,8 @@ public class Copy extends Copier {
// e.g. if an operation is referenced, we need to copy the whole interface
// Currently: only the standard owning reference is not copied recursively.
- else if (!eReference.getName().equals("owner")) { //$NON-NLS-1$
+ else if (!eReference.getName().equals("owner") && //$NON-NLS-1$
+ (!eReference.getName().equals("owningInstance"))) { //$NON-NLS-1$
Object feature = sourceEObj.eGet(eStructuralFeature);
if(feature instanceof Element) {
copy((Element)feature);
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/FlattenInteractionComponents.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/FlattenInteractionComponents.java
index 536eefd7bd1..20d0a82461a 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/FlattenInteractionComponents.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/FlattenInteractionComponents.java
@@ -21,11 +21,13 @@ import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.EList;
import org.eclipse.papyrus.FCM.InteractionComponent;
import org.eclipse.papyrus.qompass.designer.core.ConnectorUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepPlanUtils;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Classifier;
import org.eclipse.uml2.uml.Connector;
import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.DirectedRelationship;
import org.eclipse.uml2.uml.InstanceSpecification;
import org.eclipse.uml2.uml.Port;
import org.eclipse.uml2.uml.Property;
@@ -62,6 +64,8 @@ import org.eclipse.uml2.uml.util.UMLUtil;
*/
public class FlattenInteractionComponents {
+ private static final String FLATTEN_SEP = "_"; //$NON-NLS-1$
+
public static FlattenInteractionComponents getInstance() {
return instance;
}
@@ -89,7 +93,9 @@ public class FlattenInteractionComponents {
flattenAssembly((Class) cl, instance, containingInstance, containingSlot);
}
}
- // create a copy, since flatten might modify the number of slots
+ // loop over sub-instances and apply flatten recursively.
+ // create a copy of the slots, since the recursive flatten call might modify
+ // the number of slots
EList<Slot> slots = new BasicEList<Slot>(instance.getSlots());
for (Slot subISslot : slots) {
InstanceSpecification subIS = DepUtils.getInstance(subISslot);
@@ -100,6 +106,7 @@ public class FlattenInteractionComponents {
}
/**
+ *
* Flatten a composite interaction component, i.e. replace it by the containing fragments. This includes the following actions
* 1. Parts typed with the interaction component must be replaced with a set of parts typed with the fragment.
* 2. Connectors must be redirected.
@@ -125,7 +132,7 @@ public class FlattenInteractionComponents {
for (Property fragmentPart : composite.getAllAttributes()) {
if (fragmentPart instanceof Port) continue;
- String partName = partForIA.getName() + "_" + fragmentPart.getName(); //$NON-NLS-1$
+ String partName = partForIA.getName() + FLATTEN_SEP + fragmentPart.getName();
// create a new part in the containing composite
Property newPartForFragment = containingComposite.createOwnedAttribute(partName, fragmentPart.getType());
replaceParts.put(fragmentPart, newPartForFragment);
@@ -159,11 +166,20 @@ public class FlattenInteractionComponents {
StructuralFeature sf = slot.getDefiningFeature();
if (replaceParts.containsKey(sf)) {
slot.setDefiningFeature(replaceParts.get(sf));
+ // assure naming convention for instances: here, we update the name of the instance
+ // and its sub-instances with the name of the containingInstance
+ InstanceSpecification subInstance = DepUtils.getInstance(slot);
+ if ((subInstance != null) && !DepUtils.isShared(slot)) {
+ DepPlanUtils.updateInstanceNames(subInstance, instance.getName() + FLATTEN_SEP + sf.getName());
+ }
}
}
- // TODO: assure naming convention for instances
-
+
containingSlot.destroy();
+ // destroy relationships of flattened instance, in particular allocation
+ for (DirectedRelationship dr : instance.getSourceDirectedRelationships()) {
+ dr.destroy();
+ }
instance.destroy();
partForIA.destroy();
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/InstantiateDepPlan.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/InstantiateDepPlan.java
index 1703501c2fa..ff8779bb0f0 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/InstantiateDepPlan.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/InstantiateDepPlan.java
@@ -41,7 +41,9 @@ import org.eclipse.papyrus.qompass.designer.core.deployment.AllocUtils;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepCreation;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
import org.eclipse.papyrus.qompass.designer.core.deployment.Deploy;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DeployConstants;
import org.eclipse.papyrus.qompass.designer.core.extensions.ILangSupport;
+import org.eclipse.papyrus.qompass.designer.core.extensions.InstanceConfigurator;
import org.eclipse.papyrus.qompass.designer.core.extensions.LanguageSupport;
import org.eclipse.papyrus.qompass.designer.core.generate.GenerateCode;
import org.eclipse.papyrus.qompass.designer.core.generate.GenerationOptions;
@@ -59,6 +61,7 @@ import org.eclipse.uml2.uml.InstanceSpecification;
import org.eclipse.uml2.uml.Model;
import org.eclipse.uml2.uml.NamedElement;
import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
import org.eclipse.uml2.uml.Profile;
import org.eclipse.uml2.uml.util.UMLUtil;
@@ -193,14 +196,19 @@ public class InstantiateDepPlan {
Package tmCDP = (Package)tmpCopy.get(smCDP);
ContainerTrafo.init();
+ InstanceConfigurator.onNodeModel = false;
MainModelTrafo mainModelTrafo = new MainModelTrafo(tmpCopy, tmCDP);
InstanceSpecification newRootIS = mainModelTrafo.transformInstance(rootIS, null);
+ DeploymentPlan newCDP = StereotypeUtil.applyApp(tmCDP, DeploymentPlan.class);
+ newCDP.setMainInstance(newRootIS);
monitor.worked(1);
// 1c: late bindings
// LateEval.bindLateOperations();
// 3: distribute to nodes
+ ApplyInstanceConfigurators.applyInstanceConfigurators(newRootIS);
+
FlattenInteractionComponents.getInstance().flattenAssembly(newRootIS, null);
String tmpPath = tmpMM.getPath(project, TEMP_MODEL_FOLDER, tmpModel.getName() + TEMP_MODEL_POSTFIX);
@@ -225,7 +233,8 @@ public class InstantiateDepPlan {
if (targetLanguage == null) {
targetLanguage = "C++"; //$NON-NLS-1$
}
-
+
+ InstanceConfigurator.onNodeModel = true;
for(InstanceSpecification node : nodes) {
String modelName = existingModel.getName() + "_" + node.getName(); //$NON-NLS-1$
if(configuration != null) {
@@ -294,6 +303,10 @@ public class InstantiateDepPlan {
}
monitor.worked(1);
+ PackageableElement depPlanFolder = genModel.getPackagedElement(DeployConstants.depPlanFolderHw);
+ if (depPlanFolder != null) {
+ depPlanFolder.destroy();
+ }
IProject genProject = ProjectManagement.getNamedProject(modelName);
if((genProject == null) || !genProject.exists()) {
genProject = langSupport.createProject(modelName, node);
@@ -305,6 +318,7 @@ public class InstantiateDepPlan {
}
}
+
if(generateCode) {
GenerateCode codeGen = new GenerateCode(genProject, langSupport, genMM, monitor);
codeGen.generate(node, targetLanguage, (genOptions & GenerationOptions.ONLY_CHANGED) != 0);
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/LWContainerTrafo.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/LWContainerTrafo.java
index b59434d7cf3..d47ec6d4196 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/LWContainerTrafo.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/LWContainerTrafo.java
@@ -347,9 +347,8 @@ public class LWContainerTrafo extends AbstractContainerTrafo {
* @see AbstractContainerTrafo.createContainerInstance
*/
@Override
- public InstanceSpecification createContainerInstance(Class tmComponent, InstanceSpecification executorIS, ContainerContext context) throws TransformationException {
+ public InstanceSpecification createContainerInstance(Class tmComponent, InstanceSpecification executorIS) throws TransformationException {
InstanceSpecification containerIS = executorIS;
- context.executorIS = executorIS;
// TODO ... incomplete!
// InstanceConfigurator.configureInstance(smContainerRule, containerIS, null, context);
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/MainModelTrafo.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/MainModelTrafo.java
index f9a2d26ba26..8bfea62d6af 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/MainModelTrafo.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/MainModelTrafo.java
@@ -42,7 +42,6 @@ import org.eclipse.papyrus.qompass.designer.core.deployment.AllocUtils;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepCreation;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepPlanUtils;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
-import org.eclipse.papyrus.qompass.designer.core.extensions.InstanceConfigurator;
import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Classifier;
@@ -232,7 +231,7 @@ public class MainModelTrafo {
// create instance of container. This is done after rule application, since
// elements that are added by the rules need to be instantiated as well.
// TODO: Cannot mix both rules.
- containerIS = containerTrafo.createContainerInstance(tmComponent, tmIS, new ContainerContext(copy, smIS, smDF, null));
+ containerIS = containerTrafo.createContainerInstance(tmComponent, tmIS);
}
// ------------------- end of container handling of SW nodes
@@ -265,7 +264,6 @@ public class MainModelTrafo {
// obtain property related to node instance
Slot smNodeSlot = DepUtils.getParentSlot(smNode);
- ContainerContext context = new ContainerContext(copy, smIS, smDF, smNodeSlot != null ? smNodeSlot.getDefiningFeature() : null);
Package smCDP = smIS.getNearestPackage();
DeploymentPlan smFCM_CDP = UMLUtil.getStereotypeApplication(smCDP, DeploymentPlan.class);
@@ -284,7 +282,7 @@ public class MainModelTrafo {
}
if (nodeContainerTrafo != null) {
InstanceSpecification hwContainerIS =
- nodeContainerTrafo.createHwContainerInstance(tmComponent, tmNode, context);
+ nodeContainerTrafo.createHwContainerInstance(tmComponent, tmNode);
// now add attribute in system (obtain via classifier of main instance in smCDP)
if(smFCM_CDP != null) {
InstanceSpecification smMI = smFCM_CDP.getMainInstance();
@@ -373,8 +371,12 @@ public class MainModelTrafo {
}
+ // NamedElement socket = Utils.getQualifiedElement(smComponent.getModel(), "SocketRuntime::Socket");
+ // NamedElement socketCopy = copy.getCopy(socket);
+
// loop on connectors
// TODO: check, if true (no instance specification exists for these - unlike a connector which is explicitly specified via a part)
+ // TODO: quite inefficient (and likely wrong), if same composite is instantiated several times (re-reification of connectors)
for(Connector smConnector : smComponent.getOwnedConnectors()) {
if(StUtils.isConnector(smConnector)) {
org.eclipse.papyrus.FCM.Connector fcmConn = StUtils.getConnector(smConnector);
@@ -405,24 +407,12 @@ public class MainModelTrafo {
for(Slot smSlot : smConnectorIS.getSlots()) {
copy.getCopy(smSlot);
}
- /*
- * InstanceSpecification tmConnectorIS = copy.getCopy(smConnectorIS);
- * Iterator<Slot> tmSlotIter = tmConnectorIS.getSlots().iterator();
- * while(tmSlotIter.hasNext()) {
- * Slot tmSlot = tmSlotIter.next();
- * tmReifiedConnectorIS.getSlots().add(hhtmSlot);
- * }
- * tmConnectorIS.getSlots().clear();
- */
}
Slot partSlot =
DepCreation.createSlot(tmIS, tmReifiedConnectorIS, connectorPart);
ConnectorReification.propagateNodeAllocation(tmComponent, tmIS, partSlot);
-
- // configure connector
- InstanceConfigurator.configureInstance(tmReifiedConnectorIS, connectorPart, null);
}
}
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FixTemplateSync.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FixTemplateSync.java
index d1b0fbbb8bd..02a492bb162 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FixTemplateSync.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FixTemplateSync.java
@@ -26,6 +26,7 @@ import org.eclipse.uml2.uml.Class;
* Synchronize derived realizations (after copying). If re-synchronization is not done, the
* relationship would point to wrong interface, if it is derived and depending on a formal parameter.
* (e.g. derived push interface with formal parameter T would be at wrong location).
+ * TODO: need better explanation. Solution is quite a hack.
*/
public class FixTemplateSync implements CopyListener {
@@ -43,7 +44,9 @@ public class FixTemplateSync implements CopyListener {
Class implementation = (Class)targetEObj;
CompImplSync.updatePorts(implementation);
CompImplSync.syncRealizations(implementation);
- CompImplSync.syncDerivedOperations(implementation);
+ // commented out, since it causes dangling references
+ // TODO: why needed originally? (
+ // CompImplSync.syncDerivedOperations(implementation);
}
}
return targetEObj;
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.di b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.di
index 2cc833a9acf..477408e4c6d 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.di
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.di
@@ -41,6 +41,9 @@
<availablePage>
<emfPageIdentifier href="core.notation#_DfG8kF7qEeGEmrrwB1vhPg"/>
</availablePage>
+ <availablePage>
+ <emfPageIdentifier href="core.notation#_zCsUsHI3EeOCrdvV8oxOKA"/>
+ </availablePage>
</pageList>
<sashModel xmi:id="_pKTSk9YFEd-CgJIavLpOxQ" currentSelection="_pKTSldYFEd-CgJIavLpOxQ">
<windows xmi:id="_pKTSlNYFEd-CgJIavLpOxQ">
@@ -84,6 +87,9 @@
<children>
<emfPageIdentifier href="core.notation#_A6ULINYGEd-CgJIavLpOxQ"/>
</children>
+ <children>
+ <emfPageIdentifier href="core.notation#_zCsUsHI3EeOCrdvV8oxOKA"/>
+ </children>
</children>
</windows>
</sashModel>
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.notation b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.notation
index d940e42fba9..17f6b6cd0f8 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.notation
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.notation
@@ -4338,4 +4338,51 @@
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eKfIIF7sEeGEmrrwB1vhPg" id="(0.504424778761062,0.1694915254237288)"/>
</edges>
</notation:Diagram>
+ <notation:Diagram xmi:id="_zCsUsHI3EeOCrdvV8oxOKA" type="PapyrusUMLClassDiagram" name="Binding helpers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_z30l4HI3EeOCrdvV8oxOKA" type="2008" fontName="" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z33CIHI3EeOCrdvV8oxOKA" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z33CIXI3EeOCrdvV8oxOKA" key="ShadowFigure_Value" value="true"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z33CInI3EeOCrdvV8oxOKA" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z33CI3I3EeOCrdvV8oxOKA" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z33CJHI3EeOCrdvV8oxOKA" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z33pMHI3EeOCrdvV8oxOKA" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_nLx6oHJDEeOMF7YEvnQt5g" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nLx6oXJDEeOMF7YEvnQt5g" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nLx6onJDEeOMF7YEvnQt5g" key="StereotypeList" value="FCM::BindingHelper"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nLyhsHJDEeOMF7YEvnQt5g" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nLyhsXJDEeOMF7YEvnQt5g" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_nLyhsnJDEeOMF7YEvnQt5g" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z33pMXI3EeOCrdvV8oxOKA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z33pMnI3EeOCrdvV8oxOKA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z33pM3I3EeOCrdvV8oxOKA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z33pNHI3EeOCrdvV8oxOKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z33pNXI3EeOCrdvV8oxOKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z33pNnI3EeOCrdvV8oxOKA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z33pN3I3EeOCrdvV8oxOKA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z33pOHI3EeOCrdvV8oxOKA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z33pOXI3EeOCrdvV8oxOKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z33pOnI3EeOCrdvV8oxOKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z33pO3I3EeOCrdvV8oxOKA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z33pPHI3EeOCrdvV8oxOKA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z33pPXI3EeOCrdvV8oxOKA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_z33pPnI3EeOCrdvV8oxOKA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_z33pP3I3EeOCrdvV8oxOKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z33pQHI3EeOCrdvV8oxOKA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_z4FroHI3EeOCrdvV8oxOKA" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_z4FroXI3EeOCrdvV8oxOKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z4FronI3EeOCrdvV8oxOKA"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_z2tyoHI3EeOCrdvV8oxOKA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z30l4XI3EeOCrdvV8oxOKA" x="64" y="17" width="135"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zCs7wHI3EeOCrdvV8oxOKA"/>
+ <element xmi:type="uml:Package" href="core.uml#_tkiC4HI3EeOCrdvV8oxOKA"/>
+ </notation:Diagram>
</xmi:XMI>
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.uml b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.uml
index 2fd3609ae47..b05f017b9bd 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.uml
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.uml
@@ -1318,6 +1318,9 @@ Be aware that the number of instantiated template packages will be considerably
<packagedElement xmi:type="uml:Class" xmi:id="_w2nVkNzEEeKPWMO32vUmzw" name="C"/>
<packagedElement xmi:type="uml:Class" xmi:id="_0rU9UNzEEeKPWMO32vUmzw" name="Java"/>
</packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_tkiC4HI3EeOCrdvV8oxOKA" name="bindingHelpers">
+ <packagedElement xmi:type="uml:Class" xmi:id="_z2tyoHI3EeOCrdvV8oxOKA" name="LoopOperations"/>
+ </packagedElement>
<profileApplication xmi:type="uml:ProfileApplication" xmi:id="_O6TiIjLUEd26WNosUASSSw">
<eAnnotations xmi:type="ecore:EAnnotation" 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#/"/>
@@ -1407,8 +1410,8 @@ Be aware that the number of instantiated template packages will be considerably
<FCM:DerivedElement xmi:id="_fYvj8DNZEd-0bO2vHbUkEA">
<source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
</FCM:DerivedElement>
- <FCM:Template xmi:id="_iOmWwDNZEd-0bO2vHbUkEA" base_Element="_KOvHsPiREd2UhpY2Y3WUyg" kind="LoopOperations" templateParam="_ZzlzMPfBEd2TbIfwytOyPA"/>
- <FCM:Template xmi:id="_qcrLcDNZEd-0bO2vHbUkEA" base_Element="__y0hwJ08Ed6l5bTPBsl00Q" kind="LoopOperations" formalParam="_ZzlzMPfBEd2TbIfwytOyPA" templateParam="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <FCM:Template xmi:id="_iOmWwDNZEd-0bO2vHbUkEA" base_Element="_KOvHsPiREd2UhpY2Y3WUyg" kind="LoopOperations" helper="_nLe_sHJDEeOMF7YEvnQt5g" templateParam="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <FCM:Template xmi:id="_qcrLcDNZEd-0bO2vHbUkEA" base_Element="__y0hwJ08Ed6l5bTPBsl00Q" kind="LoopOperations" helper="_nLe_sHJDEeOMF7YEvnQt5g" formalParam="_ZzlzMPfBEd2TbIfwytOyPA" templateParam="_ZzlzMPfBEd2TbIfwytOyPA"/>
<FCM:DerivedElement xmi:id="_K9PRoDNwEd-1k-POY2IaLg">
<source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_C9IK4JsqEd61Eo3nmu3JhQ"/>
</FCM:DerivedElement>
@@ -1471,8 +1474,8 @@ Be aware that the number of instantiated template packages will be considerably
<FCM:ConfigOption xmi:id="_tA2KcH7eEd-FNNgSS03RxQ" base_Class="_3myD0H7dEd-FNNgSS03RxQ"/>
<FCM:ConfigOption xmi:id="_t2ziEH7eEd-FNNgSS03RxQ" base_Class="_29YhgH7dEd-FNNgSS03RxQ"/>
<FCM:ConfigOption xmi:id="_u6LqoH7eEd-FNNgSS03RxQ" base_Class="_7JeHcH7dEd-FNNgSS03RxQ"/>
- <FCM:Template xmi:id="_3IqLUKE1Ed-r8p-5QgO3cg" base_Element="_pXzxjkJ1Ed-Ps4Bfh0j9LQ" kind="LoopOperations"/>
- <FCM:Template xmi:id="_9u11IKE1Ed-r8p-5QgO3cg" base_Element="_2bwsEClzEd-eoo60eNyGlg" kind="LoopOperations"/>
+ <FCM:Template xmi:id="_3IqLUKE1Ed-r8p-5QgO3cg" base_Element="_pXzxjkJ1Ed-Ps4Bfh0j9LQ" kind="LoopOperations" helper="_nLe_sHJDEeOMF7YEvnQt5g"/>
+ <FCM:Template xmi:id="_9u11IKE1Ed-r8p-5QgO3cg" base_Element="_2bwsEClzEd-eoo60eNyGlg" kind="LoopOperations" helper="_nLe_sHJDEeOMF7YEvnQt5g"/>
<FCM:PortKind xmi:id="_H5-aQLqOEd-SedGzMDDkww" base_Class="_AQZZwLqOEd-SedGzMDDkww"/>
<FCM:PortKind xmi:id="_KtgR0LqOEd-SedGzMDDkww" base_Class="__nMrwLqNEd-SedGzMDDkww"/>
<FCM:ConfigurationProperty xmi:id="_s0fGMMGJEd-Mveea1W_olA" base_Property="_rVfYoMGJEd-Mveea1W_olA"/>
@@ -1481,7 +1484,7 @@ Be aware that the number of instantiated template packages will be considerably
</C_Cpp:ExternLibrary>
<C_Cpp:External xmi:id="_p8NbMNYGEd-CgJIavLpOxQ" name="pthread.h" base_class="_ea234NYGEd-CgJIavLpOxQ"/>
<FCM:InteractionComponent xmi:id="_8BUh8NdwEd-ZnqCk2P2ZKg" base_Class="_3itBkNdwEd-ZnqCk2P2ZKg"/>
- <FCM:Template xmi:id="_CTIeQNdxEd-ZnqCk2P2ZKg" base_Element="_3itBoddwEd-ZnqCk2P2ZKg" kind="LoopOperations"/>
+ <FCM:Template xmi:id="_CTIeQNdxEd-ZnqCk2P2ZKg" base_Element="_3itBoddwEd-ZnqCk2P2ZKg" kind="LoopOperations" helper="_nLe_sHJDEeOMF7YEvnQt5g"/>
<C_Cpp:Typedef xmi:id="_68Aa4No9Ed-wvpj-p-V_QQ" definition="union {&#xA;&lt;%for (ownedOperations) {%>&#xA;struct Op_&lt;%name%> {&#xA;&lt;%for (ownedParameters) {%>&#xA;&lt;%cppType%> &lt;%name%>;&#xA;&lt;%}%>&#xA;} op_&lt;%name%>;&#xA;&lt;%}%>&#xA;};" base_primitivetype="_xOqL0No9Ed-wvpj-p-V_QQ"/>
<FCM:InteractionComponent xmi:id="_xaHRQDJKEeCAhMtIsY9HwA" base_Class="_pXzKcEJ1Ed-Ps4Bfh0j9LQ"/>
<FCM:Port xmi:id="_wz4-ULaaEeCj_-LEBuGpmA" base_Port="__SLXgNtxEd6nqsBVkgJEEA"/>
@@ -1516,7 +1519,7 @@ Be aware that the number of instantiated template packages will be considerably
<FCM:Port xmi:id="_Zd6hAENxEeGoAtSeIK7WLg" base_Port="_Zd558ENxEeGoAtSeIK7WLg" kind="_qOK0cFR1Ed6GqrP6fkWBoQ"/>
<FCM:Port xmi:id="_i6QeoEN8EeGfhclnRyNzoA" base_Port="_i5SOQEN8EeGfhclnRyNzoA" kind="_qOK0cFR1Ed6GqrP6fkWBoQ"/>
<FCM:Port xmi:id="_0KaqgF7pEeGEmrrwB1vhPg" base_Port="_0KY1UF7pEeGEmrrwB1vhPg" kind="_wySlkFRxEd6GqrP6fkWBoQ"/>
- <FCM:Template xmi:id="_GNBM8F7tEeGEmrrwB1vhPg" base_Element="_ChD4kF7tEeGEmrrwB1vhPg" kind="LoopOperations"/>
+ <FCM:Template xmi:id="_GNBM8F7tEeGEmrrwB1vhPg" base_Element="_ChD4kF7tEeGEmrrwB1vhPg" kind="LoopOperations" helper="_nLe_sHJDEeOMF7YEvnQt5g"/>
<FCM:InteractionComponent xmi:id="_UBcmIF7tEeGEmrrwB1vhPg" base_Class="_Mo2kwF7pEeGEmrrwB1vhPg"/>
<FCM:InteractionComponent xmi:id="_Z3Zs4F7tEeGEmrrwB1vhPg" base_Class="_TLShkF7qEeGEmrrwB1vhPg"/>
<FCM:PortKind xmi:id="_SrCqQC8qEeKx7OxAiA06uw" base_Class="_GjnlcC8qEeKx7OxAiA06uw"/>
@@ -1538,4 +1541,5 @@ Be aware that the number of instantiated template packages will be considerably
<FCM:DerivedElement xmi:id="_rlowAFy8EeOwKfaVRwV11Q" base_Element="_rljQcFy8EeOwKfaVRwV11Q">
<source xmi:type="uml:Operation" href="pathmap://QML_CORE/sysinterfaces.uml#_ns4qsClUEeO4bs_nkcnKOg"/>
</FCM:DerivedElement>
+ <FCM:BindingHelper xmi:id="_nLe_sHJDEeOMF7YEvnQt5g" base_Class="_z2tyoHI3EeOCrdvV8oxOKA"/>
</xmi:XMI>
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.notation b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.notation
index 193e35d019e..14fb5b3fd8d 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.notation
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.notation
@@ -1,5 +1,5 @@
<?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">
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/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="_deScIOUTEd-P08Bciq_LqQ" type="CompositeStructure" name="StateMachines" measurementUnit="Pixel">
<children xmi:type="notation:Shape" xmi:id="_en03EOUTEd-P08Bciq_LqQ" type="2073" fontName="" fontHeight="10" lineColor="0">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_en1eIOUTEd-P08Bciq_LqQ" source="ShadowFigure">
@@ -117,6 +117,15 @@
<element xmi:type="uml:Port" href="statemachine.uml#_xUE3QF8wEeGerN33d-RdRg"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_xVjd8V8wEeGerN33d-RdRg" x="225" y="72" width="20" height="20"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jo3KIHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jo3KIXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="statemachine.uml#_eGpZQBE1EeG3cfLoiI6G7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jo3KInJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jo5mYHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jo5mYXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jo5mYnJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Class" href="statemachine.uml#_ens7QOUTEd-P08Bciq_LqQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_en03EeUTEd-P08Bciq_LqQ" x="54" y="135" width="235" height="163"/>
</children>
@@ -231,6 +240,20 @@
<element xmi:type="uml:Port" href="statemachine.uml#_a4NKMOuMEeCTfOY57pgE3w"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_a7sjEeuMEeCTfOY57pgE3w" x="108" y="153" width="20" height="20"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpBiMHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpBiMXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="statemachine.uml#_hanSUOUUEd-P08Bciq_LqQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpBiMnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpBiM3JVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpBiNHJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:UseInstanceConfigurator" href="statemachine.uml#_StgB8CNYEeGj_4swHBbKwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpBiNXJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpCJQHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpCJQXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpCJQnJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Class" href="statemachine.uml#_u-qioOUTEd-P08Bciq_LqQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_u-vbIeUTEd-P08Bciq_LqQ" x="414" y="108" width="217" height="163"/>
</children>
@@ -248,6 +271,15 @@
<children xmi:type="notation:BasicCompartment" xmi:id="_OTjspDXLEeCZ5ODDEHnvRw" type="7073" collapsed="true">
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_OTjspTXLEeCZ5ODDEHnvRw"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpFMkHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpFMkXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="pathmap://QML_CORE/core.uml#_vEYVcFR1Ed6GqrP6fkWBoQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpFMknJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpFzoHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpFzoXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpFzonJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_Zx2ZUA1jEd6tvthBDl600Q"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_OTiegTXLEeCZ5ODDEHnvRw" x="414" y="18" width="217"/>
</children>
@@ -280,6 +312,15 @@
<styles xmi:type="notation:TitleStyle" xmi:id="_OlNhIRE0EeG3cfLoiI6G7g" showTitle="true"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_OlNhIhE0EeG3cfLoiI6G7g"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpHo0HJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpHo0XJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="pathmap://QML_CORE/core.uml#_Yx49gCaeEeG4fZdVXNtoOQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpHo0nJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpHo03JVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpHo1HJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpHo1XJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_JRmo0PNAEeCovO8AYZymZQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_OlJPsRE0EeG3cfLoiI6G7g" x="60" y="333" width="85"/>
</children>
@@ -298,6 +339,10 @@
<styles xmi:type="notation:TitleStyle" xmi:id="_Py7ReBE0EeG3cfLoiI6G7g" showTitle="true"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_Py7ReRE0EeG3cfLoiI6G7g"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpJeAHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpJeAXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpJeAnJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_WkkjoPNUEeCovO8AYZymZQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_Py6qYRE0EeG3cfLoiI6G7g" x="198" y="333" width="90"/>
</children>
@@ -324,6 +369,15 @@
<styles xmi:type="notation:TitleStyle" xmi:id="_KSCRhCNYEeGj_4swHBbKwg" showTitle="true"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_KSCRhSNYEeGj_4swHBbKwg"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpLTMHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpLTMXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:InstanceConfigurator" href="statemachine.uml#_QQYfQCNYEeGj_4swHBbKwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpLTMnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpLTM3JVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpLTNHJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpLTNXJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Class" href="statemachine.uml#_KEMp0CNYEeGj_4swHBbKwg"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_KR_OMSNYEeGj_4swHBbKwg" x="414" y="319" width="226" height="51"/>
</children>
@@ -342,6 +396,10 @@
<styles xmi:type="notation:TitleStyle" xmi:id="_XAnUMSWNEeGB3KV6qwTHBw" showTitle="true"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_XAnUMiWNEeGB3KV6qwTHBw"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JpNIYHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JpNIYXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JpNIYnJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_XAfYYSWNEeGB3KV6qwTHBw" x="54" y="36" width="235"/>
</children>
@@ -427,6 +485,10 @@
<styles xmi:type="notation:FilteringStyle" xmi:id="_62nAp-x1EeCeNZHeHxkazQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_62nAqOx1EeCeNZHeHxkazQ"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JrEwoHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JrEwoXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JrEwonJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_6uRBMOuqEeCTfOY57pgE3w"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_62kkYOx1EeCeNZHeHxkazQ" x="82" y="313"/>
</children>
@@ -463,6 +525,10 @@
<styles xmi:type="notation:FilteringStyle" xmi:id="_AByFDux2EeCeNZHeHxkazQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_AByFD-x2EeCeNZHeHxkazQ"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JtQh8HJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JtQh8XJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JtQh8nJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_6uRBMOuqEeCTfOY57pgE3w"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_ABwP0ex2EeCeNZHeHxkazQ" x="468" y="126"/>
</children>
@@ -495,6 +561,15 @@
<styles xmi:type="notation:FilteringStyle" xmi:id="_AwoID-x2EeCeNZHeHxkazQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_AwovEOx2EeCeNZHeHxkazQ"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JtSXIHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JtSXIXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="statemachine.uml#_eGpZQBE1EeG3cfLoiI6G7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JtSXInJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JtS-MHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JtS-MXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JtS-MnJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Class" href="statemachine.uml#_ens7QOUTEd-P08Bciq_LqQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_Awlrwex2EeCeNZHeHxkazQ" x="162" y="126"/>
</children>
@@ -600,6 +675,15 @@
<element xmi:type="uml:Port" href="statemachine.uml#_a4NKMOuMEeCTfOY57pgE3w"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_tE-AkfTXEeCn1-FCrfecFg" x="72" y="39"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jv6NUHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jv6NUXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:InterceptionRule" href="statemachine.uml#_Z5CnUPUQEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jv6NUnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jv6NU3JVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jv6NVHJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jv6NVXJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Property" href="statemachine.uml#_LyxAEPTXEeCn1-FCrfecFg"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_hobr6vTXEeCn1-FCrfecFg" x="31" y="4" width="235" height="49"/>
</children>
@@ -651,6 +735,10 @@
<element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_vGo9YfTXEeCn1-FCrfecFg" x="-10" y="18"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jv8pkHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jv8pkXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jv8pknJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Property" href="statemachine.uml#_jXX54PTXEeCn1-FCrfecFg"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_jXZIAfTXEeCn1-FCrfecFg" x="157" y="103" width="155" height="47"/>
</children>
@@ -731,6 +819,10 @@
<element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_4jFLASWdEeGX6PuSE-DJlQ" x="225" y="18"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jv_F0HJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jv_F0XJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jv_F0nJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Property" href="statemachine.uml#_mv6jAPTXEeCn1-FCrfecFg"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_mv8YMfTXEeCn1-FCrfecFg" x="31" y="211" width="235" height="46"/>
</children>
@@ -811,12 +903,25 @@
<element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_3Qs9ISWdEeGX6PuSE-DJlQ" x="126" y="18"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JwBiEHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JwBiEXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JwBiEnJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Property" href="statemachine.uml#_vcPiUCWdEeGX6PuSE-DJlQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_vjc9kSWdEeGX6PuSE-DJlQ" x="364" y="211" width="136" height="46"/>
</children>
<styles xmi:type="notation:TitleStyle" xmi:id="_hobr6_TXEeCn1-FCrfecFg"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_hobr7PTXEeCn1-FCrfecFg"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jv3xEHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jv3xEXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:ContainerRule" href="statemachine.uml#_RmD0YPTXEeCn1-FCrfecFg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jv3xEnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Jv4YIHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Jv4YIXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Jv4YInJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Class" href="statemachine.uml#_18qdsO67EeCZ9MjsZTV1zw"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_hobr7fTXEeCn1-FCrfecFg" x="72" y="38" width="550" height="334"/>
</children>
@@ -939,6 +1044,10 @@
<element xmi:type="uml:TemplateSignature" href="pathmap://QML_CORE/core.uml#_rNm5kOUYEd-P08Bciq_LqQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_afY_4f3HEeC1YdT2qA0bjA" x="181" y="8"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyPvoHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyPvoXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyPvonJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Package" href="pathmap://QML_CORE/core.uml#_m7SIwOUYEd-P08Bciq_LqQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z7x8gf3HEeC1YdT2qA0bjA" x="106" y="65"/>
</children>
@@ -980,6 +1089,10 @@
<element xmi:type="uml:TemplateSignature" href="pathmap://QML_CORE/core.uml#_V0b2APfBEd2TbIfwytOyPA"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_daof3HEeC1YdT2qA0bjA" x="159" y="3"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyQ9wHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyQ9wXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyQ9wnJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Package" href="pathmap://QML_CORE/core.uml#_mMCK8PiPEd2UhpY2Y3WUyg"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_dpF7wf3HEeC1YdT2qA0bjA" x="450" y="72"/>
</children>
@@ -1024,12 +1137,25 @@
<styles xmi:type="notation:FilteringStyle" xmi:id="_xln7sP3HEeC1YdT2qA0bjA"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_xln7sf3HEeC1YdT2qA0bjA"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyUBEHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyUBEXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="C_Cpp:Include" href="statemachine.uml#_eGpZQBE1EeG3cfLoiI6G7g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyUBEnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyUoIHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyUoIXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyUoInJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Class" href="statemachine.uml#_ens7QOUTEd-P08Bciq_LqQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_xlmtgf3HEeC1YdT2qA0bjA" x="41" y="10" height="43"/>
</children>
<styles xmi:type="notation:TitleStyle" xmi:id="_jCozUv3HEeC1YdT2qA0bjA"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_jCozU_3HEeC1YdT2qA0bjA"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JySy8HJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JySy8XJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JySy8nJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Package" href="statemachine.uml#_9J39cOupEeCTfOY57pgE3w"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_jCnlMP3HEeC1YdT2qA0bjA" x="108" y="234"/>
</children>
@@ -1074,12 +1200,30 @@
<styles xmi:type="notation:FilteringStyle" xmi:id="_vWSWTf3HEeC1YdT2qA0bjA"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_vWSWTv3HEeC1YdT2qA0bjA"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyYSgHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyYSgXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:InteractionComponent" href="statemachine.uml#_hanSUOUUEd-P08Bciq_LqQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyYSgnJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyYSg3JVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyYShHJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:UseInstanceConfigurator" href="statemachine.uml#_StgB8CNYEeGj_4swHBbKwg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyYShXJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyY5kHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyY5kXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyY5knJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Class" href="statemachine.uml#_u-qioOUTEd-P08Bciq_LqQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_vWQhEf3HEeC1YdT2qA0bjA" x="35" y="10" height="43"/>
</children>
<styles xmi:type="notation:TitleStyle" xmi:id="_rjO7YP3HEeC1YdT2qA0bjA"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_rjO7Yf3HEeC1YdT2qA0bjA"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JyWdUHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JyWdUXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JyWdUnJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Package" href="statemachine.uml#_i9AuoOUTEd-P08Bciq_LqQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_rjNtQf3HEeC1YdT2qA0bjA" x="451" y="234"/>
</children>
@@ -1118,11 +1262,11 @@
<details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_xEctlV81EeGbQoflzrdx0g" key="QualifiedNameDepth" value="1000"/>
</eAnnotations>
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_uqphYF_1EeGbQoflzrdx0g" source="Stereotype_Annotation">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VomFMGGDEeO2F4QRMDSOXg" key="StereotypeWithQualifiedNameList" value=""/>
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VomFMWGDEeO2F4QRMDSOXg" key="StereotypeList" value="FCM::Singleton"/>
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VomFMmGDEeO2F4QRMDSOXg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VomFM2GDEeO2F4QRMDSOXg" key="PropStereoDisplay" value=""/>
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VomFNGGDEeO2F4QRMDSOXg" key="StereotypePropertyLocation" value="Compartment"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-3zN4Hg_EeOejZqJpKQeww" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-3zN4Xg_EeOejZqJpKQeww" key="StereotypeList" value="FCM::Singleton,FCM::UseInstanceConfigurator"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-3z08Hg_EeOejZqJpKQeww" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-3z08Xg_EeOejZqJpKQeww" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-3z08ng_EeOejZqJpKQeww" key="StereotypePropertyLocation" value="Compartment"/>
</eAnnotations>
<children xmi:type="notation:DecorationNode" xmi:id="_xEdUoF81EeGbQoflzrdx0g" type="5156"/>
<children xmi:type="notation:BasicCompartment" xmi:id="_xEdUoV81EeGbQoflzrdx0g" type="7073">
@@ -1155,9 +1299,99 @@
<element xmi:type="uml:Port" href="statemachine.uml#_z94Y0F81EeGbQoflzrdx0g"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_z-vUcV81EeGbQoflzrdx0g" x="-10" y="64" width="20" height="20"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J0Gw0HJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J0Gw0XJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:Singleton" href="statemachine.uml#_uqa34F_1EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J0Gw0nJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J0Gw03JVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J0Gw1HJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:UseInstanceConfigurator" href="statemachine.uml#_VnhuMGGDEeO2F4QRMDSOXg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J0Gw1XJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J0HX4HJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J0HX4XJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J0HX4nJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZXfOMHg_EeOejZqJpKQeww" type="3069">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZXfOMng_EeOejZqJpKQeww" type="5125">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_hw-BoHg_EeOejZqJpKQeww" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hw-BoXg_EeOejZqJpKQeww" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hw-Bong_EeOejZqJpKQeww" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hw-Bo3g_EeOejZqJpKQeww" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hw-BpHg_EeOejZqJpKQeww" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_hw-BpXg_EeOejZqJpKQeww" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZXfOM3g_EeOejZqJpKQeww" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZXfONHg_EeOejZqJpKQeww" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZXfONXg_EeOejZqJpKQeww" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="statemachine.uml#_ZXYggHg_EeOejZqJpKQeww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZXfOMXg_EeOejZqJpKQeww" x="274" y="72" width="20" height="20"/>
+ </children>
<element xmi:type="uml:Class" href="statemachine.uml#_xELAwF81EeGbQoflzrdx0g"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_xEbfcV81EeGbQoflzrdx0g" x="203" y="116" width="284" height="128"/>
</children>
+ <children xmi:type="notation:Shape" xmi:id="_B1CQgHg_EeOejZqJpKQeww" type="2073">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_JO5aAHg_EeOejZqJpKQeww" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HXb4Hg_EeOejZqJpKQeww" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HXb4Xg_EeOejZqJpKQeww" key="StereotypeList" value="FCM::Singleton,FCM::UseInstanceConfigurator"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HXb4ng_EeOejZqJpKQeww" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HYC8Hg_EeOejZqJpKQeww" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4HYC8Xg_EeOejZqJpKQeww" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_B1CQgng_EeOejZqJpKQeww" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_B1C3kHg_EeOejZqJpKQeww" type="7073">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_K8aEsHg_EeOejZqJpKQeww" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_K8aEsXg_EeOejZqJpKQeww" key="showTitle" value="true"/>
+ </eAnnotations>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_B1C3kXg_EeOejZqJpKQeww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B1C3kng_EeOejZqJpKQeww"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_B1LacHg_EeOejZqJpKQeww" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_B1LacXg_EeOejZqJpKQeww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B1Lacng_EeOejZqJpKQeww"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_JOz6cHg_EeOejZqJpKQeww" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_JOz6cXg_EeOejZqJpKQeww" showTitle="true"/>
+ <element xmi:type="FCM:Singleton" href="statemachine.uml#_JOwQEHg_EeOejZqJpKQeww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JOz6cng_EeOejZqJpKQeww"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ML26YHg_EeOejZqJpKQeww" type="3069">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ncey8Hg_EeOejZqJpKQeww" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ncey8Xg_EeOejZqJpKQeww" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ncey8ng_EeOejZqJpKQeww" key="StereotypeList" value="FCM::Port"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ncey83g_EeOejZqJpKQeww" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ncey9Hg_EeOejZqJpKQeww" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ncey9Xg_EeOejZqJpKQeww" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ML3hcHg_EeOejZqJpKQeww" type="5125">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ML3hcXg_EeOejZqJpKQeww" x="25" y="3"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ML3hcng_EeOejZqJpKQeww" type="6029">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ML3hc3g_EeOejZqJpKQeww" x="25" y="-10"/>
+ </children>
+ <element xmi:type="uml:Port" href="statemachine.uml#_MLu-kHg_EeOejZqJpKQeww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ML26YXg_EeOejZqJpKQeww" x="-10" y="60" width="20" height="20"/>
+ </children>
+ <element xmi:type="uml:Class" href="statemachine.uml#_B0gFAHg_EeOejZqJpKQeww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B1CQgXg_EeOejZqJpKQeww" x="200" y="285" width="289" height="114"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vOvOUHg_EeOejZqJpKQeww" type="2073">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vOvOUng_EeOejZqJpKQeww" type="5156"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vOvOU3g_EeOejZqJpKQeww" type="7073">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vOvOVHg_EeOejZqJpKQeww" showTitle="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vOvOVXg_EeOejZqJpKQeww"/>
+ </children>
+ <element xmi:type="uml:Class" href="statemachine.uml#_QH7R8GGDEeO2F4QRMDSOXg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vOvOUXg_EeOejZqJpKQeww" x="570" y="289" width="211" height="110"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BLsjIHhAEeOejZqJpKQeww" type="2109">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BLsjInhAEeOejZqJpKQeww" type="5192"/>
+ <element xmi:type="uml:Comment" href="statemachine.uml#_BLcrgHhAEeOejZqJpKQeww"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BLsjIXhAEeOejZqJpKQeww" x="547" y="417" width="234" height="60"/>
+ </children>
<styles xmi:type="notation:DiagramStyle" xmi:id="_IOfaAV8wEeGerN33d-RdRg"/>
<element xmi:type="uml:Package" href="statemachine.uml#_F5DMoF8wEeGerN33d-RdRg"/>
</notation:Diagram>
@@ -1259,6 +1493,15 @@
<element xmi:type="uml:Port" href="statemachine.uml#_a4NKMOuMEeCTfOY57pgE3w"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_XQCUUV81EeGbQoflzrdx0g" x="35" y="35"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3dm0HJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3dm0XJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:InterceptionRule" href="statemachine.uml#_IeaTEF81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3dm0nJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3dm03JVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3dm1HJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3dm1XJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Property" href="statemachine.uml#_IeWosV81EeGbQoflzrdx0g"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qj1iEV81EeGbQoflzrdx0g" x="10" y="10" width="225"/>
</children>
@@ -1300,6 +1543,10 @@
<element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_MzO8gPNAEeCovO8AYZymZQ"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_X1IlcV81EeGbQoflzrdx0g" x="-10" y="23"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3gDEHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3gDEXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3gDEnJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Property" href="statemachine.uml#_IeWotV81EeGbQoflzrdx0g"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qj5McV81EeGbQoflzrdx0g" x="99" y="85" width="181" height="55"/>
</children>
@@ -1388,6 +1635,10 @@
<element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#__SLXgNtxEd6nqsBVkgJEEA"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_Yl8-Y181EeGbQoflzrdx0g" x="164" y="27"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3h4QHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3h4QXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3h4QnJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Property" href="statemachine.uml#_IeXPwV81EeGbQoflzrdx0g"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qj8PwV81EeGbQoflzrdx0g" x="27" y="175" width="190" height="64"/>
</children>
@@ -1432,6 +1683,10 @@
<element xmi:type="uml:Port" href="pathmap://QML_CORE/core.uml#_ZjdOAP-EEd6628OhKk_dpg"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zh1X0V81EeGbQoflzrdx0g" x="-10" y="27"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3k7kHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3k7kXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3k7knJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Property" href="statemachine.uml#_IeXPxV81EeGbQoflzrdx0g"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_Qj_6IV81EeGbQoflzrdx0g" x="378" y="175" width="145" height="64"/>
</children>
@@ -1450,7 +1705,7 @@
<details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IQmt0Fl-EeKFQZ_XV_Kn6g" key="CustomAppearance_MaskValue" value="28"/>
</eAnnotations>
</children>
- <children xmi:type="notation:BasicCompartment" xmi:id="_pTZMEF81EeGbQoflzrdx0g" type="7077">
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pTZMEF81EeGbQoflzrdx0g" type="7077" collapsed="true">
<styles xmi:type="notation:TitleStyle" xmi:id="_pTZMEV81EeGbQoflzrdx0g"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_pTZMEl81EeGbQoflzrdx0g"/>
</children>
@@ -1476,12 +1731,25 @@
<element xmi:type="uml:Port" href="statemachine.uml#_z94Y0F81EeGbQoflzrdx0g"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_CYirkV82EeGbQoflzrdx0g" x="-10" y="23"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3mwwHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3mwwXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3mwwnJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Property" href="statemachine.uml#_pTD04F81EeGbQoflzrdx0g"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pTX98V81EeGbQoflzrdx0g" x="225" y="283" width="226"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pTX98V81EeGbQoflzrdx0g" x="295" y="283" width="226" height="53"/>
</children>
<styles xmi:type="notation:TitleStyle" xmi:id="_PMiX8l81EeGbQoflzrdx0g"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_PMiX8181EeGbQoflzrdx0g"/>
</children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3bKkHJVEeOMF7YEvnQt5g" visible="false" type="AppliedStereotypeCompartement">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3bKkXJVEeOMF7YEvnQt5g" showTitle="true"/>
+ <element xmi:type="FCM:ContainerRule" href="statemachine.uml#_IeZE8F81EeGbQoflzrdx0g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3bKknJVEeOMF7YEvnQt5g"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J3bxoHJVEeOMF7YEvnQt5g" visible="false" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J3bxoXJVEeOMF7YEvnQt5g"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J3bxonJVEeOMF7YEvnQt5g"/>
+ </children>
<element xmi:type="uml:Class" href="statemachine.uml#_IeWosF81EeGbQoflzrdx0g"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_PMf7sV81EeGbQoflzrdx0g" x="157" y="88" width="609" height="372"/>
</children>
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.uml b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.uml
index 05cc3939310..14b0ff02a5b 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.uml
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/statemachine.uml
@@ -145,14 +145,18 @@ out->writeEvent (event);
<packagedElement xmi:type="uml:Class" xmi:id="_CV_x4O68EeCZ9MjsZTV1zw" name="CallEvents"/>
<packagedElement xmi:type="uml:Class" xmi:id="_KEMp0CNYEeGj_4swHBbKwg" name="CallEventConfigurator"/>
<packagedElement xmi:type="uml:Package" xmi:id="_F5DMoF8wEeGerN33d-RdRg" name="Animation">
- <packagedElement xmi:type="uml:Class" xmi:id="_xELAwF81EeGbQoflzrdx0g" clientDependency="_bmInQF_4EeGbQoflzrdx0g" name="AnimationServer">
- <ownedAttribute xmi:type="uml:Port" xmi:id="_z94Y0F81EeGbQoflzrdx0g" name="animServer" visibility="public" type="_L-I7kF8wEeGerN33d-RdRg" aggregation="composite">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_BLcrgHhAEeOejZqJpKQeww">
+ <body>Animation service configurator takes care of allocating the RemoveAnimService on the &quot;right&quot; node and to connect local and remote service configurators.</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xELAwF81EeGbQoflzrdx0g" clientDependency="_bmInQF_4EeGbQoflzrdx0g" name="LocalAnimService">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_z94Y0F81EeGbQoflzrdx0g" name="animSvc" visibility="public" type="_L-I7kF8wEeGerN33d-RdRg" aggregation="composite">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2Y7e8F81EeGbQoflzrdx0g" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2ZEB0F81EeGbQoflzrdx0g" value="1"/>
<defaultValue xmi:type="uml:LiteralString" xmi:id="_2ZSEQF81EeGbQoflzrdx0g">
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_ZXYggHg_EeOejZqJpKQeww" name="outAnimSvc" type="_L-I7kF8wEeGerN33d-RdRg" aggregation="composite"/>
<interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_bmInQF_4EeGbQoflzrdx0g" name="derived realization of IAnimation" client="_xELAwF81EeGbQoflzrdx0g" supplier="_L-I7kF8wEeGerN33d-RdRg" contract="_L-I7kF8wEeGerN33d-RdRg"/>
<ownedOperation xmi:type="uml:Operation" xmi:id="_bmbiMF_4EeGbQoflzrdx0g" name="enterState">
<ownedParameter xmi:type="uml:Parameter" xmi:id="_OJXykGEpEeGzd_21sXyuog" name="stateEnum">
@@ -212,6 +216,9 @@ out->writeEvent (event);
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_QH7R8GGDEeO2F4QRMDSOXg" name="AnimServiceConfigurator"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_B0gFAHg_EeOejZqJpKQeww" name="RemoteAnimService">
+ <ownedAttribute xmi:type="uml:Port" xmi:id="_MLu-kHg_EeOejZqJpKQeww" name="animSvc" type="_L-I7kF8wEeGerN33d-RdRg" aggregation="composite"/>
+ </packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_DEJCwF81EeGbQoflzrdx0g" name="rules">
<packagedElement xmi:type="uml:Class" xmi:id="_18qdsO67EeCZ9MjsZTV1zw" name="StateMachineWCallEvents">
@@ -379,7 +386,9 @@ out->writeEvent (event);
</profileApplication>
</uml:Model>
<FCM:InteractionComponent xmi:id="_hanSUOUUEd-P08Bciq_LqQ" base_Class="_u-qioOUTEd-P08Bciq_LqQ"/>
- <FCM:Template xmi:id="_9E8EUOUUEd-P08Bciq_LqQ" base_Element="_2qJyMOUUEd-P08Bciq_LqQ" kind="LoopOperations"/>
+ <FCM:Template xmi:id="_9E8EUOUUEd-P08Bciq_LqQ" base_Element="_2qJyMOUUEd-P08Bciq_LqQ" kind="LoopOperations">
+ <helper xmi:type="FCM:BindingHelper" href="pathmap://QML_CORE/core.uml#_nLe_sHJDEeOMF7YEvnQt5g"/>
+ </FCM:Template>
<FCM:Port xmi:id="_a45twOuMEeCTfOY57pgE3w" base_Port="_a4NKMOuMEeCTfOY57pgE3w">
<kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_9Fif4FRxEd6GqrP6fkWBoQ"/>
</FCM:Port>
@@ -417,4 +426,12 @@ out->writeEvent (event);
<FCM:DerivedElement xmi:id="_bmyukF_4EeGbQoflzrdx0g" base_Element="_bmo9kF_4EeGbQoflzrdx0g" source="_ZgY_oF8wEeGerN33d-RdRg"/>
<FCM:InstanceConfigurator xmi:id="_SdiecGGDEeO2F4QRMDSOXg" base_Class="_QH7R8GGDEeO2F4QRMDSOXg"/>
<FCM:UseInstanceConfigurator xmi:id="_VnhuMGGDEeO2F4QRMDSOXg" base_Class="_xELAwF81EeGbQoflzrdx0g" configurator="_SdiecGGDEeO2F4QRMDSOXg"/>
+ <FCM:Singleton xmi:id="_JOwQEHg_EeOejZqJpKQeww" base_Class="_B0gFAHg_EeOejZqJpKQeww"/>
+ <FCM:Port xmi:id="_hw3T8Hg_EeOejZqJpKQeww" base_Port="_ZXYggHg_EeOejZqJpKQeww">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:Port xmi:id="_ncWQEHg_EeOejZqJpKQeww" base_Port="_MLu-kHg_EeOejZqJpKQeww">
+ <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_wySlkFRxEd6GqrP6fkWBoQ"/>
+ </FCM:Port>
+ <FCM:UseInstanceConfigurator xmi:id="_4HKnkHg_EeOejZqJpKQeww" base_Class="_B0gFAHg_EeOejZqJpKQeww" configurator="_SdiecGGDEeO2F4QRMDSOXg"/>
</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
index 46a85218782..2a7232c407c 100644
--- 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
@@ -45,7 +45,7 @@
<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">
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_aF1w6DKeEd-WprEKTCaiMA" name="[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/]
@@ -247,7 +247,7 @@ OTF_Writer_writeDefFunction (writer, streamNr, &lt;%enumSvcPrefix%>::id_&lt;%own
<ownedAttribute xmi:type="uml:Property" 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">
+ <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4LoXcKAeEeCF0uoVQbVQRg" name="[name/]" specification="_k4TsoKAeEeCF0uoVQbVQRg">
<language>C/C++</language>
<body>// &lt;instance>_&lt;port>_&lt;operation>
// easier: &lt;component>_&lt;port>_&lt;operation>
@@ -307,7 +307,7 @@ if (doTrace) {
<language>C/C++</language>
<body>m_first = true;</body>
</ownedBehavior>
- <ownedOperation xmi:type="uml:Operation" xmi:id="_k4TsoKAeEeCF0uoVQbVQRg" name="&lt;%name%>" method="_4LoXcKAeEeCF0uoVQbVQRg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_k4TsoKAeEeCF0uoVQbVQRg" name="[name/]" method="_4LoXcKAeEeCF0uoVQbVQRg"/>
<ownedOperation xmi:type="uml:Operation" xmi:id="_rlkwoKD0EeCFDJJCA2W5wg" name="OTFTrace_vc" method="_CyKWkKD2EeCFDJJCA2W5wg"/>
</packagedElement>
<packagedElement xmi:type="uml:Dependency" xmi:id="_Mgn2cKKXEeCdIOXlyrCmKQ" name="OTFTrace_vc => BString" client="_aoSDwKAdEeCF0uoVQbVQRg">
@@ -653,6 +653,7 @@ return processID;</body>
</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">
+ <helper xmi:type="FCM:BindingHelper" href="pathmap://QML_CORE/core.uml#_nLe_sHJDEeOMF7YEvnQt5g"/>
<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>
@@ -727,7 +728,9 @@ return processID;</body>
<FCM:ContainerRule xmi:id="_6FqQoKAdEeCF0uoVQbVQRg" base_Class="_wHuA0KAdEeCF0uoVQbVQRg" extensionKind="InterceptAllPorts" interceptor="_JvP0oKAeEeCF0uoVQbVQRg" propagate="true">
<forConfig xmi:type="FCM:ConfigOption" href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
</FCM:ContainerRule>
- <FCM:Template xmi:id="_pplDQKAeEeCF0uoVQbVQRg" base_Element="_k4TsoKAeEeCF0uoVQbVQRg" kind="LoopOperations"/>
+ <FCM:Template xmi:id="_pplDQKAeEeCF0uoVQbVQRg" base_Element="_k4TsoKAeEeCF0uoVQbVQRg" kind="LoopOperations">
+ <helper xmi:type="FCM:BindingHelper" href="pathmap://QML_CORE/core.uml#_nLe_sHJDEeOMF7YEvnQt5g"/>
+ </FCM:Template>
<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"/>
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
index 48cf53a4695..3ebfe5a3d26 100644
--- 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
@@ -4,10 +4,11 @@ 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.papyrus.qompass.designer.core.transformations.ContainerTrafo;
import org.eclipse.uml2.uml.InstanceSpecification;
import org.eclipse.uml2.uml.Interface;
import org.eclipse.uml2.uml.Operation;
+import org.eclipse.uml2.uml.Port;
import org.eclipse.uml2.uml.Property;
@@ -22,32 +23,36 @@ public class IConfiguratorOTF implements IInstanceConfigurator {
*
* @see org.eclipse.papyrus.qompass.designer.gentools.core.extensions.IInstanceConfigurator
*/
- public void configureInstance(InstanceSpecification instance, Property componentPart, ContainerContext context) {
+ public void configureInstance(InstanceSpecification instance, Property componentPart, InstanceSpecification parentInstance) {
// The tracing code needs informations about the component instance and port.
DepPlanUtils.configureProperty(instance, PROP_INSTANCE_NAME, StringConstants.QUOTE + instance.getName() + StringConstants.QUOTE);
// port in context => interception of port => provide information about port and interface
- if(context.port != null) {
+ ContainerTrafo containerTrafo = ContainerTrafo.getContainerTrafo(parentInstance);
+ if (containerTrafo == null) {
+ return;
+ }
+ Port port = containerTrafo.getInterceptedPort(componentPart);
+ if(port != null) {
// obtain required or provided interface (TODO: will fail, if both are provided!)
- Interface intf = PortUtils.getProvided(context.port);
+ Interface intf = PortUtils.getProvided(port);
if(intf == null) {
- intf = PortUtils.getRequired(context.port);
+ intf = PortUtils.getRequired(port);
}
- DepPlanUtils.configureProperty(instance, PROP_PORT_NAME, StringConstants.QUOTE + context.port.getName() + StringConstants.QUOTE);
+ DepPlanUtils.configureProperty(instance, PROP_PORT_NAME, StringConstants.QUOTE + port.getName() + StringConstants.QUOTE);
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)
+ // TODO: originally, we used executorIS *in source model*
for(Operation op : intf.getOperations()) {
- String id = Utils.getTop(context.executorIS).getName() + "::Tracing::Trace::ID_" + //$NON-NLS-1$
- context.executorIS.getName().replace(".", "_") + "_" + op.getName(); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
+ String id = Utils.getTop(instance).getName() + "::Tracing::Trace::ID_" + //$NON-NLS-1$
+ instance.getName().replace(".", "_") + "_" + op.getName(); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
DepPlanUtils.configureProperty(instance, "id_" + op.getName(), id); //$NON-NLS-1$
}
}
}
-
-
}
}
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
index 43de8b800c1..c921ce96a3c 100644
--- 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
@@ -2,9 +2,9 @@ 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.Port;
import org.eclipse.uml2.uml.Property;
public class IConfiguratorTrace implements IInstanceConfigurator {
@@ -18,7 +18,7 @@ public class IConfiguratorTrace implements IInstanceConfigurator {
*
* @see org.eclipse.papyrus.qompass.designer.gentools.core.extensions.IInstanceConfigurator
*/
- public void configureInstance(InstanceSpecification instance, Property componentPart, ContainerContext context) {
+ public void configureInstance(InstanceSpecification instance, Property componentPart, InstanceSpecification parentInstance) {
// The tracing code needs informations about the component instance and port.
String instanceName = instance.getName();
@@ -33,8 +33,12 @@ public class IConfiguratorTrace implements IInstanceConfigurator {
DepPlanUtils.configureProperty(instance, PROP_INSTANCE_NAME, StringConstants.QUOTE + instanceName + StringConstants.QUOTE);
// port in context => interception of port => provide information about port and interface
- if(context.port != null) {
- DepPlanUtils.configureProperty(instance, PROP_PORT_NAME, StringConstants.QUOTE + context.port.getName() + StringConstants.QUOTE);
+ ContainerTrafo containerTrafo = ContainerTrafo.getContainerTrafo(parentInstance);
+ if (containerTrafo != null) {
+ Port port = containerTrafo.getInterceptedPort(componentPart);
+ if(port != null) {
+ DepPlanUtils.configureProperty(instance, PROP_PORT_NAME, StringConstants.QUOTE + port.getName() + StringConstants.QUOTE);
+ }
}
}
}
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/StringConstants.java b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/StringConstants.java
index 171fece98a4..d3ced2536a6 100644
--- a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/StringConstants.java
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/src/org/eclipse/papyrus/qompass/modellibs/tracing/StringConstants.java
@@ -2,5 +2,4 @@ package org.eclipse.papyrus.qompass.modellibs.tracing;
public class StringConstants {
public static final String QUOTE = "\""; //$NON-NLS-1$
-
}

Back to the top