diff options
Diffstat (limited to 'extraplugins/qompass-designer')
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 {
<%for (ownedOperations) {%>
struct Op_<%name%> {
<%for (ownedParameters) {%>
<%cppType%> <%name%>;
<%}%>
} op_<%name%>;
<%}%>
};" 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 "right" 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="<%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, <%enumSvcPrefix%>::id_<%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="<%name%>" specification="_k4TsoKAeEeCF0uoVQbVQRg"> + <ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_4LoXcKAeEeCF0uoVQbVQRg" name="[name/]" specification="_k4TsoKAeEeCF0uoVQbVQRg"> <language>C/C++</language> <body>// <instance>_<port>_<operation> // easier: <component>_<port>_<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="<%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$ - } |