Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnsgar Radermacher2014-04-03 10:04:15 -0400
committerAnsgar Radermacher2014-04-03 10:11:19 -0400
commit7c060d07079865052f139b083cee1e4bfd8b43c7 (patch)
tree1632e9b0015657edf39aeb5f3dc7e9144742c1d9
parent46940c8b6c5517e3e7abdfb30de83411b80340fb (diff)
downloadorg.eclipse.papyrus-7c060d07079865052f139b083cee1e4bfd8b43c7.tar.gz
org.eclipse.papyrus-7c060d07079865052f139b083cee1e4bfd8b43c7.tar.xz
org.eclipse.papyrus-7c060d07079865052f139b083cee1e4bfd8b43c7.zip
Bug 431917 - [QDesginer] Refactoring
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CreationUtils.java4
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ModelManagement.java5
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/OperationUtils.java6
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/StUtils.java6
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/acceleo/EnumService.java1
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/BootLoaderGen.java12
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/Deploy.java8
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/GatherConfigData.java8
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/InstanceDeployer.java4
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/PartialCopy.java6
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/BindingHelperExt.java28
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/ILangSupport.java2
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PostCopyListener.java (renamed from extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterComments.java)38
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PreCopyListener.java (renamed from extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/CopyListener.java)12
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/SyncBehaviorParameters.java4
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/BindingUtils.java6
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/PostTemplateInstantiationListener.java61
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/PreTemplateInstantiationListener.java (renamed from extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateInstantiationListener.java)27
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateInstantiation.java65
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateUtils.java4
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AbstractContainerTrafo.java2
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AcceleoException.java10
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AllocTransfo.java2
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ApplyInstanceConfigurators.java40
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/CompImplTrafos.java584
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ConnectorReification.java38
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ContainerTrafo.java50
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/InstantiateDepPlan.java738
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/LWContainerTrafo.java18
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/LazyCopier.java (renamed from extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/Copy.java)73
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/MainModelTrafo.java4
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/PropagateAllocationToSharedInstances.java58
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TrafoAndCodegenPackage.java12
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationUtil.java81
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/UpdateDerivedInterfaces.java51
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterRuleApplication.java8
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterSignatures.java8
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterStateMachines.java10
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterTemplate.java8
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FixTemplateSync.java9
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/C_CppLanguageSupport.java5
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/InstantiateDepPlanHandler.java14
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/components/HelloWorld.cpp33
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/components/HelloWorld.h58
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/platform/MonoNode.cpp24
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/platform/MonoNode.h38
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/META-INF/MANIFEST.MF3
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.di33
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.notation48
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/models/library/core.uml530
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/plugin.xml10
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindCppIncludeToFirstActual.java (renamed from extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/InstantiateCppInclude.java)44
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindOperation.java8
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/InstantiateCppIncludeWithItSelf.java (renamed from extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/InstantiateCppIncludeWOB.java)35
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/LoopOperations.java8
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/TemplatePort.java4
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.uml218
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.notation22
-rw-r--r--extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.uml28
59 files changed, 1870 insertions, 1404 deletions
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CreationUtils.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CreationUtils.java
index 305dd5319c9..bafb282bd89 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CreationUtils.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/CreationUtils.java
@@ -16,7 +16,7 @@ package org.eclipse.papyrus.qompass.designer.core;
import org.eclipse.core.runtime.Status;
import org.eclipse.emf.common.util.EList;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.uml2.uml.NamedElement;
import org.eclipse.uml2.uml.Namespace;
import org.eclipse.uml2.uml.Package;
@@ -55,7 +55,7 @@ public class CreationUtils {
if(pkg == null) {
// package does not exist => create it.
pkg = root.createNestedPackage(ns.getName());
- Copy.copyID(ns, pkg);
+ LazyCopier.copyID(ns, pkg);
// copy stereotype to create package
StUtils.copyStereotypes(ns, pkg);
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ModelManagement.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ModelManagement.java
index 36c6182b57b..d0a77e9f4ab 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ModelManagement.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ModelManagement.java
@@ -75,6 +75,11 @@ public class ModelManagement {
public Model getModel() {
return model;
}
+
+ public void saveModel(IProject project, String modelFolder, String modelPostfix) {
+ String path = this.getPath(project, modelFolder, this.getModel().getName() + modelPostfix);
+ this.saveModel(path);
+ }
/**
* Save a model within a passed project and a specified folder
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/OperationUtils.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/OperationUtils.java
index c01bd7a6932..04779cd1e99 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/OperationUtils.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/OperationUtils.java
@@ -16,7 +16,7 @@ package org.eclipse.papyrus.qompass.designer.core;
import java.util.Iterator;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Operation;
import org.eclipse.uml2.uml.Parameter;
@@ -141,7 +141,7 @@ public class OperationUtils {
*/
public static void syncOperation(Operation sourceOp, Operation targetOp) {
if(targetOp != null) {
- Copy.copyFeatureModifiers(sourceOp, targetOp);
+ LazyCopier.copyFeatureModifiers(sourceOp, targetOp);
// ordered and unique are derived from ret-parameter
targetOp.setIsQuery(sourceOp.isQuery());
targetOp.setIsAbstract(sourceOp.isAbstract());
@@ -152,7 +152,7 @@ public class OperationUtils {
Parameter newParameter =
targetOp.createOwnedParameter(parameter.getLabel(), type);
newParameter.setDirection(parameter.getDirection());
- Copy.copyMultElemModifiers(parameter, newParameter);
+ LazyCopier.copyMultElemModifiers(parameter, newParameter);
StUtils.copyStereotypes(parameter, newParameter);
}
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/StUtils.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/StUtils.java
index c484f764b1b..b387ae32341 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/StUtils.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/StUtils.java
@@ -18,7 +18,7 @@ import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
import org.eclipse.uml2.uml.Connector;
import org.eclipse.uml2.uml.Element;
@@ -43,7 +43,7 @@ public class StUtils {
* @param destination
* @return
*/
- public static void copyStereotypes(Copy copy, Element source, Element destination) {
+ public static void copyStereotypes(LazyCopier copy, Element source, Element destination) {
for(Stereotype stereotype : source.getAppliedStereotypes()) {
copyAttributes(copy, stereotype.getQualifiedName(), source, destination);
}
@@ -66,7 +66,7 @@ public class StUtils {
* @return
*/
@SuppressWarnings({ "unchecked" })
- public static boolean copyAttributes(Copy copy, String stereotypeName, Element source, Element destination) {
+ public static boolean copyAttributes(LazyCopier copy, String stereotypeName, Element source, Element destination) {
Stereotype stereoSource = source.getAppliedStereotype(stereotypeName);
Stereotype stereoDest = destination.getApplicableStereotype(stereotypeName);
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 e1e5d8eb9a0..e010bcc1140 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
@@ -135,6 +135,7 @@ public class EnumService {
}
public static void createEnumPackage(Package root) {
+ init();
enumPkg = root.createNestedPackage(GLOBALENUMS);
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/BootLoaderGen.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/BootLoaderGen.java
index 70f319beed4..1109a6fa230 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/BootLoaderGen.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/BootLoaderGen.java
@@ -30,7 +30,7 @@ import org.eclipse.papyrus.qompass.designer.core.StUtils;
import org.eclipse.papyrus.qompass.designer.core.Utils;
import org.eclipse.papyrus.qompass.designer.core.acceleo.UMLTool;
import org.eclipse.papyrus.qompass.designer.core.transformations.CompImplTrafos;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.papyrus.qompass.designer.core.transformations.PrefixConstants;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil;
@@ -77,7 +77,7 @@ public class BootLoaderGen {
* @param The
* package in which the bootloader should be created
*/
- public BootLoaderGen(Copy copy, int nodeIndex, int numberOfNodes)
+ public BootLoaderGen(LazyCopier copy, int nodeIndex, int numberOfNodes)
throws TransformationException {
// Class composite = (Class) ut.getClassifier (mainInstance);
// place in root (getModel()) to avoid the problem that the declaration of the bootLoader
@@ -300,7 +300,7 @@ public class BootLoaderGen {
* @param containerSlot
* @return
*/
- public static boolean hasUnconnectedStartRoutine(Copy copy, Class implementation, Slot containerSlot) {
+ public static boolean hasUnconnectedStartRoutine(LazyCopier copy, Class implementation, Slot containerSlot) {
if(implementation != null) {
Port startPort = AllocUtils.getStartPort(implementation);
if (startPort != null) {
@@ -320,7 +320,7 @@ public class BootLoaderGen {
* @param name
* @return
*/
- public static boolean hasUnconnectedLifeCycle(Copy copy, Class implementation, Slot containerSlot) {
+ public static boolean hasUnconnectedLifeCycle(LazyCopier copy, Class implementation, Slot containerSlot) {
if(implementation != null) {
Element lcPortElem = Utils.getNamedElementFromList(implementation.getAllAttributes(), "lc"); //$NON-NLS-1$
if(lcPortElem instanceof Port) {
@@ -344,7 +344,7 @@ public class BootLoaderGen {
* @Param a port that is checked for being connected
* @return true, if connected
*/
- private static boolean isConnected(Copy copy, Slot containerSlot, Port port) {
+ private static boolean isConnected(LazyCopier copy, Slot containerSlot, Port port) {
if(containerSlot != null) {
StructuralFeature sf = containerSlot.getDefiningFeature();
if(sf instanceof Property) {
@@ -523,7 +523,7 @@ public class BootLoaderGen {
/**
* copy variable (instances still point to non-copied classes)
*/
- private Copy m_copy;
+ private LazyCopier m_copy;
/**
* Store a map with index values to manage configuration of arrays
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/Deploy.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/Deploy.java
index 29c9fd2685e..10b3c5bde4e 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/Deploy.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/Deploy.java
@@ -19,7 +19,7 @@ import java.util.Stack;
import org.eclipse.papyrus.qompass.designer.core.Messages;
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.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Classifier;
@@ -48,7 +48,7 @@ public class Deploy {
* @param instance
* @throws TransformationException
*/
- public Deploy(Copy copy, ILangSupport langSupport, InstanceSpecification node,
+ public Deploy(LazyCopier copy, ILangSupport langSupport, InstanceSpecification node,
int nodeIndex, int numberOfNodes)
throws TransformationException
{
@@ -71,7 +71,7 @@ public class Deploy {
* distribute an instance, its contained sub-instances and the referenced
* classifiers to a certain node
*
- * @param copy
+ * @param copier
* @param node
* @param nodeIndex
* @param numberOfNodes
@@ -181,5 +181,5 @@ public class Deploy {
protected InstanceDeployer depInstance;
- protected Copy copy;
+ protected LazyCopier copy;
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/GatherConfigData.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/GatherConfigData.java
index d1b707e3573..22739bcaeb6 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/GatherConfigData.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/GatherConfigData.java
@@ -16,8 +16,8 @@ package org.eclipse.papyrus.qompass.designer.core.deployment;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.papyrus.qompass.designer.core.extensions.ILangSupport;
-import org.eclipse.papyrus.qompass.designer.core.listeners.CopyListener;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.uml2.uml.Class;
/**
@@ -27,7 +27,7 @@ import org.eclipse.uml2.uml.Class;
*
* @author ansgar
*/
-public class GatherConfigData implements CopyListener {
+public class GatherConfigData implements PreCopyListener {
/**
* Gather configuration data for a code generation project
@@ -40,7 +40,7 @@ public class GatherConfigData implements CopyListener {
this.langSupport = langSupport;
}
- public EObject copyEObject(Copy copy, EObject sourceEObj) {
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
if(sourceEObj instanceof Class) {
langSupport.gatherConfigData((Class)sourceEObj);
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/InstanceDeployer.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/InstanceDeployer.java
index c3ccc2ea8fb..e15562044f8 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/InstanceDeployer.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/InstanceDeployer.java
@@ -16,7 +16,7 @@ package org.eclipse.papyrus.qompass.designer.core.deployment;
import java.util.Stack;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
import org.eclipse.uml2.uml.InstanceSpecification;
import org.eclipse.uml2.uml.Slot;
@@ -39,7 +39,7 @@ public interface InstanceDeployer {
* @param node
* the node onto which the allocation should be done.
*/
- public void init(Copy sat, BootLoaderGen bootloader, InstanceSpecification node);
+ public void init(LazyCopier sat, BootLoaderGen bootloader, InstanceSpecification node);
/**
* Deploy an instance and copy the required classes into the target model.
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/PartialCopy.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/PartialCopy.java
index a49c7627a27..f000234df5c 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/PartialCopy.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/PartialCopy.java
@@ -16,7 +16,7 @@ package org.eclipse.papyrus.qompass.designer.core.deployment;
import java.util.Stack;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil;
import org.eclipse.uml2.uml.Class;
@@ -46,7 +46,7 @@ import org.eclipse.uml2.uml.Slot;
*/
public class PartialCopy implements InstanceDeployer {
- public void init(Copy copy, BootLoaderGen bootloader,
+ public void init(LazyCopier copy, BootLoaderGen bootloader,
InstanceSpecification node) {
this.copy = copy;
this.node = node; // only needed for debug output
@@ -120,5 +120,5 @@ public class PartialCopy implements InstanceDeployer {
private InstanceSpecification node;
- private Copy copy;
+ private LazyCopier copy;
}
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
index c8e363d11a9..9ed97f25fb9 100644
--- 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
@@ -18,8 +18,9 @@ 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.papyrus.qompass.designer.core.listeners.PostCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationRTException;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.TemplateBinding;
@@ -39,16 +40,33 @@ public class BindingHelperExt {
* containing composite (container)
* @param instance
*/
- public static EObject applyHelper(BindingHelper helper, Copy copy, TemplateBinding binding, EObject sourceEObj) {
+ public static EObject applyPreHelper(BindingHelper helper, LazyCopier copier, 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);
+ if(ihelper instanceof PreCopyListener) {
+ return ((PreCopyListener) ihelper).preCopyEObject(copier, sourceEObj);
}
return sourceEObj;
}
+
+ /**
+ *
+ * @param iConfiguratorName
+ * @param component
+ * containing composite (container)
+ * @param instance
+ */
+ public static void applyPostHelper(BindingHelper helper, LazyCopier copier, TemplateBinding binding, EObject targetEObj) {
+ IBindingHelper ihelper = getBindingHelper(helper.getBase_Class().getName());
+ if (targetEObj instanceof Element) {
+ ihelper.handleElement(binding, (Element) targetEObj);
+ }
+ if(ihelper instanceof PostCopyListener) {
+ ((PostCopyListener) ihelper).postCopyEObject(copier, targetEObj);
+ }
+ }
public static IBindingHelper getBindingHelper(BindingHelper helper) {
if (helper != null) {
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/ILangSupport.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/ILangSupport.java
index de5417e6931..163216422fa 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/ILangSupport.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/ILangSupport.java
@@ -45,6 +45,8 @@ public interface ILangSupport {
* the project (must already been initialized)
*/
public void setProject(IProject project);
+
+ public IProject getProject();
/**
* Re-create the project settings from model information
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterComments.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PostCopyListener.java
index 163d333c6b2..1500627eb64 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterComments.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PostCopyListener.java
@@ -12,34 +12,24 @@
*
*****************************************************************************/
-package org.eclipse.papyrus.qompass.designer.core.transformations.filters;
+package org.eclipse.papyrus.qompass.designer.core.listeners;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.papyrus.qompass.designer.core.listeners.CopyListener;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
-import org.eclipse.uml2.uml.Comment;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
/**
- * Do not copy comments
- *
- * @author ansgar
- *
+ * Interface for listeners that are notified when an eObject
+ * is copied
+ *
+ * @see org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier
*/
-public class FilterComments implements CopyListener {
-
- public static FilterComments getInstance() {
- if(instance == null) {
- instance = new FilterComments();
- }
- return instance;
- }
-
- public EObject copyEObject(Copy copy, EObject sourceEObj) {
- if(sourceEObj instanceof Comment) {
- return null;
- }
- return sourceEObj;
- }
+public interface PostCopyListener {
- private static FilterComments instance = null;
+ /**
+ * Is called for each EObject after is has been copied.
+ *
+ * @param targetEObj
+ * the EObject that has been copied
+ */
+ public void postCopyEObject(LazyCopier copy, EObject targetEObj);
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/CopyListener.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PreCopyListener.java
index 4052008abd3..f4a1a874e23 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/CopyListener.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/PreCopyListener.java
@@ -15,15 +15,15 @@
package org.eclipse.papyrus.qompass.designer.core.listeners;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
/**
- * Interface for listeners that are notified for the addition of a classifier
- * via copy
+ * Interface for listeners that are notified when an eObject
+ * is copied
*
- * @see org.eclipse.papyrus.qompass.designer.core.transformations.Copy
+ * @see org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier
*/
-public interface CopyListener {
+public interface PreCopyListener {
/**
* Is called for each EObject that is copied. If it returns null, the
@@ -34,5 +34,5 @@ public interface CopyListener {
* @param sourceEObj
* the added classifier
*/
- public EObject copyEObject(Copy copy, EObject sourceEObj);
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj);
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/SyncBehaviorParameters.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/SyncBehaviorParameters.java
index c7867b27203..1d06985049e 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/SyncBehaviorParameters.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/SyncBehaviorParameters.java
@@ -15,7 +15,7 @@
package org.eclipse.papyrus.qompass.designer.core.sync;
import org.eclipse.papyrus.qompass.designer.core.StUtils;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.uml2.uml.Behavior;
import org.eclipse.uml2.uml.BehavioralFeature;
import org.eclipse.uml2.uml.Parameter;
@@ -36,7 +36,7 @@ public class SyncBehaviorParameters {
for (Parameter parameter : bf.getOwnedParameters()) {
Parameter newParameter = method.createOwnedParameter(parameter.getName(), parameter.getType());
newParameter.setDirection(parameter.getDirection());
- Copy.copyMultElemModifiers(parameter, newParameter);
+ LazyCopier.copyMultElemModifiers(parameter, newParameter);
StUtils.copyStereotypes(parameter, newParameter);
}
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/BindingUtils.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/BindingUtils.java
index 27293a7923a..6dc84b895fd 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/BindingUtils.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/BindingUtils.java
@@ -20,7 +20,7 @@ import org.eclipse.papyrus.C_Cpp.ConstInit;
import org.eclipse.papyrus.qompass.designer.core.Messages;
import org.eclipse.papyrus.qompass.designer.core.PortUtils;
import org.eclipse.papyrus.qompass.designer.core.acceleo.AcceleoDriverWrapper;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
import org.eclipse.uml2.uml.Class;
@@ -44,7 +44,7 @@ public class BindingUtils {
* @param operation The operation template
* @return
*/
- public static Operation instantiateOperation(Copy copy, Element actual, Operation operation) {
+ public static Operation instantiateOperation(LazyCopier copy, Element actual, Operation operation) {
try {
Operation newOperation = copy.getCopy(operation);
if(actual instanceof Operation) {
@@ -76,7 +76,7 @@ public class BindingUtils {
* @return instantiated (bound) behavior.
* @throws TransformationException
*/
- public static OpaqueBehavior instantiateBehavior(Copy copy, Element actual, OpaqueBehavior opaqueBehavior) throws TransformationException {
+ public static OpaqueBehavior instantiateBehavior(LazyCopier copy, Element actual, OpaqueBehavior opaqueBehavior) throws TransformationException {
OpaqueBehavior newBehavior = copy.getCopy(opaqueBehavior);
if(actual instanceof NamedElement) {
String newName = AcceleoDriverWrapper.evaluate(opaqueBehavior.getName(), actual, null);
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/PostTemplateInstantiationListener.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/PostTemplateInstantiationListener.java
new file mode 100644
index 00000000000..2809ac60fb5
--- /dev/null
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/PostTemplateInstantiationListener.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * 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.templates;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.FCM.BindingHelper;
+import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.papyrus.qompass.designer.core.extensions.BindingHelperExt;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PostCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Template instantiation is implemented by means of a PostCopyListener that
+ * evaluates the template stereotype.
+ */
+
+public class PostTemplateInstantiationListener implements PostCopyListener {
+
+ public static PostTemplateInstantiationListener getInstance() {
+ if(postTemplateInstantiationListener == null) {
+ postTemplateInstantiationListener = new PostTemplateInstantiationListener();
+ }
+ return postTemplateInstantiationListener;
+ }
+
+ public void init(LazyCopier copy, TemplateBinding binding, Object[] args) {
+ this.binding = binding;
+ }
+
+ private TemplateBinding binding;
+
+ private static PostTemplateInstantiationListener postTemplateInstantiationListener;
+
+ public void postCopyEObject(LazyCopier copy, EObject targetEObj) {
+ if(targetEObj instanceof Element) {
+
+ Template template = UMLUtil.getStereotypeApplication((Element)targetEObj, Template.class);
+ if((template != null)) {
+ BindingHelper helper = template.getHelper();
+ if (helper != null) {
+ BindingHelperExt.applyPostHelper(helper, copy, binding, targetEObj);
+ }
+ }
+ }
+ }
+}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateInstantiationListener.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/PreTemplateInstantiationListener.java
index 9e3c5958ab4..1c97d6de0be 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateInstantiationListener.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/PreTemplateInstantiationListener.java
@@ -18,8 +18,8 @@ import org.eclipse.emf.ecore.EObject;
import org.eclipse.papyrus.FCM.BindingHelper;
import org.eclipse.papyrus.FCM.Template;
import org.eclipse.papyrus.qompass.designer.core.extensions.BindingHelperExt;
-import org.eclipse.papyrus.qompass.designer.core.listeners.CopyListener;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.uml2.uml.BehavioralFeature;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.OpaqueBehavior;
@@ -29,20 +29,19 @@ import org.eclipse.uml2.uml.util.UMLUtil;
/**
* Template instantiation is implemented by means of an CopyListener that
* evaluates the template stereotype.
- * This is a pre-copy listener.
*/
-public class TemplateInstantiationListener implements CopyListener {
+public class PreTemplateInstantiationListener implements PreCopyListener {
- public static TemplateInstantiationListener getInstance() {
- if(templateInstantiationListener == null) {
- templateInstantiationListener = new TemplateInstantiationListener();
- templateInstantiationListener.treatTemplate = false;
+ public static PreTemplateInstantiationListener getInstance() {
+ if(preTemplateInstantiationListener == null) {
+ preTemplateInstantiationListener = new PreTemplateInstantiationListener();
+ preTemplateInstantiationListener.treatTemplate = false;
}
- return templateInstantiationListener;
+ return preTemplateInstantiationListener;
}
- public void init(Copy copy, TemplateBinding binding, Object[] args) {
+ public void init(LazyCopier copy, TemplateBinding binding, Object[] args) {
this.binding = binding;
}
@@ -50,9 +49,9 @@ public class TemplateInstantiationListener implements CopyListener {
private boolean treatTemplate;
- private static TemplateInstantiationListener templateInstantiationListener;
+ private static PreTemplateInstantiationListener preTemplateInstantiationListener;
- public EObject copyEObject(Copy copy, EObject sourceEObj) {
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
if(treatTemplate) {
return sourceEObj;
}
@@ -62,7 +61,7 @@ public class TemplateInstantiationListener implements CopyListener {
return targetEObj;
}
- protected EObject checkEObject(Copy copy, EObject sourceEObj) {
+ protected EObject checkEObject(LazyCopier copy, EObject sourceEObj) {
// Specific treatment of OpaqueBehaviors: Template instantiations are typically managed
// by the associated operation which instantiates operation and behavior. In this case, the
@@ -84,7 +83,7 @@ public class TemplateInstantiationListener implements CopyListener {
if((template != null)) {
BindingHelper helper = template.getHelper();
if (helper != null) {
- return BindingHelperExt.applyHelper(helper, copy, binding, sourceEObj);
+ return BindingHelperExt.applyPreHelper(helper, copy, binding, sourceEObj);
}
}
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateInstantiation.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateInstantiation.java
index dd7ec368b62..2900ae8783f 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateInstantiation.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateInstantiation.java
@@ -18,7 +18,7 @@ import org.eclipse.emf.common.util.EList;
import org.eclipse.papyrus.FCM.BindingHelper;
import org.eclipse.papyrus.FCM.Template;
import org.eclipse.papyrus.qompass.designer.core.Messages;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FilterSignatures;
@@ -50,18 +50,18 @@ import org.eclipse.uml2.uml.util.UMLUtil;
public class TemplateInstantiation {
- public TemplateInstantiation(Copy copy, TemplateBinding binding) throws TransformationException {
+ public TemplateInstantiation(LazyCopier copy, TemplateBinding binding) throws TransformationException {
this(copy, binding, null);
}
/**
*
- * @param copy_ copier
+ * @param copier_ copier
* @param binding UML template binding
* @param args currently unused
* @throws TransformationException
*/
- public TemplateInstantiation(final Copy copy_, final TemplateBinding binding, Object args[]) throws TransformationException {
+ public TemplateInstantiation(final LazyCopier copier_, final TemplateBinding binding, Object args[]) throws TransformationException {
if(binding == null) {
// user should never see this exception
throw new TransformationException("Passed binding is null"); //$NON-NLS-1$
@@ -79,28 +79,28 @@ public class TemplateInstantiation {
* copy.postCopyListeners = new BasicEList<CopyListener>();
* copy.postCopyListeners.addAll(copy_.postCopyListeners);
*/
- copy = copy_;
+ copier = copier_;
Package boundPackage = (Package)binding.getBoundElement();
// set template instantiation parameter. Used by Acceleo templates to get relation between
// formal and actual parameters
TransformationContext.setTemplateInstantiation(this);
- copy.setPackageTemplate(packageTemplate, boundPackage);
+ copier.setPackageTemplate(packageTemplate, boundPackage);
// some parameters of the package template may not be owned. Thus, an additional package
// template is involved in the instantiation
for(TemplateParameter parameter : signature.getParameters()) {
//
if(parameter.getSignature() != signature) {
Package addedPkgTemplate = parameter.getSignature().getNearestPackage();
- copy.setPackageTemplate(addedPkgTemplate, boundPackage);
+ copier.setPackageTemplate(addedPkgTemplate, boundPackage);
}
}
if (boundPackage.getPackagedElements() != null) {
// bound package is not empty, but copy does not know about it. Fill copyMap with information about the relation
// This happens, if the original model already contains template instantiations, e.g. for template ports
- if (copy.getMap(signature).keySet().size() == 0) {
+ if (copier.getMap(signature).keySet().size() == 0) {
syncCopyMap(packageTemplate, boundPackage);
}
}
@@ -113,29 +113,28 @@ public class TemplateInstantiation {
for(TemplateParameterSubstitution substitution : binding.getParameterSubstitutions()) {
ParameterableElement formal = substitution.getFormal().getParameteredElement();
ParameterableElement actual = substitution.getActual();
- copy.putPair(formal, actual);
+ copier.putPair(formal, actual);
}
// add copy listeners ---
// remove template signature
- if(!copy.preCopyListeners.contains(FilterSignatures.getInstance())) {
- copy.preCopyListeners.add(FilterSignatures.getInstance());
+ if(!copier.preCopyListeners.contains(FilterSignatures.getInstance())) {
+ copier.preCopyListeners.add(FilterSignatures.getInstance());
}
- // 2. special treatment for elements stereotyped with template parameter
- if(!copy.preCopyListeners.contains(TemplateInstantiationListener.getInstance())) {
- copy.preCopyListeners.add(TemplateInstantiationListener.getInstance());
+ // 2a. special treatment for elements stereotyped with template parameter
+ if(!copier.preCopyListeners.contains(PreTemplateInstantiationListener.getInstance())) {
+ copier.preCopyListeners.add(PreTemplateInstantiationListener.getInstance());
}
- TemplateInstantiationListener.getInstance().init(copy, binding, args);
-
- if(!copy.postCopyListeners.contains(FixTemplateSync.getInstance())) {
- copy.postCopyListeners.add(FixTemplateSync.getInstance());
+ PreTemplateInstantiationListener.getInstance().init(copier, binding, args);
+ // 2b. special treatment for elements stereotyped with template parameter
+ if(!copier.postCopyListeners.contains(PostTemplateInstantiationListener.getInstance())) {
+ copier.postCopyListeners.add(PostTemplateInstantiationListener.getInstance());
}
+ PostTemplateInstantiationListener.getInstance().init(copier, binding, args);
- // TODO: programming language specific code!!
- InstantiateCppInclude.getInstance().init(binding, args);
- if(!copy.postCopyListeners.contains(InstantiateCppInclude.getInstance())) {
- copy.postCopyListeners.add(InstantiateCppInclude.getInstance());
+ if(!copier.postCopyListeners.contains(FixTemplateSync.getInstance())) {
+ copier.postCopyListeners.add(FixTemplateSync.getInstance());
}
}
@@ -149,7 +148,7 @@ public class TemplateInstantiation {
* @param targetPkg The bound package (target)
*/
public void syncCopyMap(Package sourcePkg, Package targetPkg) {
- copy.put(sourcePkg, targetPkg);
+ copier.put(sourcePkg, targetPkg);
for (PackageableElement target : targetPkg.getPackagedElements()) {
if (target instanceof NamedElement) {
String targetName = ((NamedElement) target).getName();
@@ -158,7 +157,7 @@ public class TemplateInstantiation {
syncCopyMap((Package) source, (Package) target);
}
else {
- copy.put(source, target);
+ copier.put(source, target);
}
}
}
@@ -168,7 +167,7 @@ public class TemplateInstantiation {
public TemplateBinding binding;
- public Copy copy;
+ public LazyCopier copier;
TemplateSignature signature;
@@ -183,7 +182,7 @@ public class TemplateInstantiation {
* actually created within the bound package. We call this mechanism lazy
* instantiation/binding
*
- * @param copy
+ * @param copier
* Source and target model
* @param namedElement
* A member within the package template which should be bound,
@@ -225,7 +224,7 @@ public class TemplateInstantiation {
Element owner = TemplateUtils.getTemplateOwner(namedElement, signature);
if(owner != null) {
// note that we might overwrite an existing value
- copy.put(owner, boundPackage);
+ copier.put(owner, boundPackage);
}
}
else {
@@ -238,8 +237,8 @@ public class TemplateInstantiation {
// template parameter)
TemplateSignature signatureOfNE = TemplateUtils.getSignature((TemplateableElement)namedElement);
if((signatureOfNE != null) && (signature != signatureOfNE)) {
- TemplateBinding subBinding = TemplateUtils.getSubBinding(copy.target, (TemplateableElement)namedElement, binding);
- TemplateInstantiation ti = new TemplateInstantiation(copy, subBinding, args);
+ TemplateBinding subBinding = TemplateUtils.getSubBinding(copier.target, (TemplateableElement)namedElement, binding);
+ TemplateInstantiation ti = new TemplateInstantiation(copier, subBinding, args);
NamedElement ret = ti.bindNamedElement(namedElement);
return (T)ret;
}
@@ -249,13 +248,13 @@ public class TemplateInstantiation {
// since the template is potentially instantiated in another model,
// the referenced element might need to be copied.
- return copy.getCopy(namedElement);
+ return copier.getCopy(namedElement);
}
// element is contained in the template package, examine whether it
// already exists in the
// bound package.
- NamedElement existingMember = (NamedElement)copy.get(namedElement);
+ NamedElement existingMember = (NamedElement)copier.get(namedElement);
/*
if((existingMember != null) && (templateKind != TemplateKind.ACCUMULATE)) {
// element is already existing (and thus bound), nothing to do
@@ -271,9 +270,9 @@ public class TemplateInstantiation {
*/
if(existingMember == null) {
FilterTemplate.getInstance().setActive(false);
- T copiedElement = copy.getCopy(namedElement);
+ T copiedElement = copier.getCopy(namedElement);
FilterTemplate.getInstance().setActive(true);
- copy.setPackageTemplate(null, null);
+ copier.setPackageTemplate(null, null);
return copiedElement;
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateUtils.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateUtils.java
index ef8ea120182..51f7ac4e79f 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateUtils.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateUtils.java
@@ -24,7 +24,7 @@ import org.eclipse.papyrus.qompass.designer.core.Log;
import org.eclipse.papyrus.qompass.designer.core.Messages;
import org.eclipse.papyrus.qompass.designer.core.PortUtils;
import org.eclipse.papyrus.qompass.designer.core.Utils;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
import org.eclipse.papyrus.uml.tools.utils.ConnectorUtil;
import org.eclipse.uml2.uml.Classifier;
@@ -228,7 +228,7 @@ public class TemplateUtils {
* @param sat
* @param binding
*/
- public static void adaptActualsToTargetModel(Copy copy, TemplateBinding binding) {
+ public static void adaptActualsToTargetModel(LazyCopier copy, TemplateBinding binding) {
for(TemplateParameterSubstitution substitution : binding.getParameterSubstitutions()) {
substitution.setActual(copy.getCopy(substitution.getActual()));
}
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 eb6e8fee831..7f7646ad10d 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
@@ -85,7 +85,7 @@ public abstract class AbstractContainerTrafo {
/**
* Copy class from source to target model
*/
- protected Copy copy;
+ protected LazyCopier copier;
/**
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AcceleoException.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AcceleoException.java
new file mode 100644
index 00000000000..2eb51c4c4ca
--- /dev/null
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AcceleoException.java
@@ -0,0 +1,10 @@
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+public class AcceleoException extends Exception {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AllocTransfo.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AllocTransfo.java
index 95f6cfbf170..7c3e1c4a04f 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AllocTransfo.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AllocTransfo.java
@@ -31,7 +31,7 @@ public class AllocTransfo {
* @param composite A composite. We analyze the allocations of the properties within this
* Composite. The composite must be an element of the target model that can be modified.
*/
- public void transformAllocs(Copy copy, Class composite) {
+ public void transformAllocs(LazyCopier copy, Class composite) {
EList<Property> attributeList = new BasicEList<Property>();
attributeList.addAll(composite.getOwnedAttributes()); // use a copy, since the loop eventually destroys an element of the list.
for (Property attribute : attributeList) {
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
deleted file mode 100644
index 35839a25539..00000000000
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ApplyInstanceConfigurators.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*****************************************************************************
- * 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/CompImplTrafos.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/CompImplTrafos.java
index da51cfadac2..77f44c5219f 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/CompImplTrafos.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/CompImplTrafos.java
@@ -36,6 +36,7 @@ import org.eclipse.uml2.uml.Connector;
import org.eclipse.uml2.uml.ConnectorEnd;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Model;
import org.eclipse.uml2.uml.OpaqueBehavior;
import org.eclipse.uml2.uml.Operation;
import org.eclipse.uml2.uml.Package;
@@ -48,19 +49,19 @@ import org.eclipse.uml2.uml.Type;
import org.eclipse.uml2.uml.UMLPackage;
/**
- * This class realizes the transformations for a component implementation (the executor)
- * It includes:
- * 1. add the get_p operation for a port with a provided interface.
- * 2. add the connect_q operation and realization (*including a storage attribute*) for
- * a port with a required interface
- * 3. add an implementation for the getcnx_q operation for a port with a required interface
- * (the operation itself has been added before)
+ * This class realizes the transformations for a component implementation (the
+ * executor) It includes: 1. add the get_p operation for a port with a provided
+ * interface. 2. add the connect_q operation and realization (*including a
+ * storage attribute*) for a port with a required interface 3. add an
+ * implementation for the getcnx_q operation for a port with a required
+ * interface (the operation itself has been added before)
*
* TODO: C++ specific, support different "component to OO" mappings
*
- * Caveat: Assure that the folder derivedInterfaces already exists in a model. Otherwise
- * the call to getProvided/getRequired interface might trigger its creation resulting in
- * the corruption of list iterators (ConcurrentAccess exception)
+ * Caveat: Assure that the folder derivedInterfaces already exists in a model.
+ * Otherwise the call to getProvided/getRequired interface might trigger its
+ * creation resulting in the corruption of list iterators (ConcurrentAccess
+ * exception)
*
*/
public class CompImplTrafos {
@@ -68,20 +69,25 @@ public class CompImplTrafos {
public static Class bootloader;
public static final String retParamName = "ret"; //$NON-NLS-1$
-
+
public static final String progLang = "C/C++"; //$NON-NLS-1$
-
- public static void addPortOperations(Copy copy, Package pkg) throws TransformationException {
+
+ public static void addPortOperations(LazyCopier copy, Package pkg)
+ throws TransformationException {
EList<PackageableElement> peList = new BasicEList<PackageableElement>();
peList.addAll(pkg.getPackagedElements());
- for(PackageableElement element : peList) {
- if(element instanceof Package) {
- addPortOperations(copy, (Package)element);
- } else if(element instanceof Class) {
- Class implementation = (Class)element;
- // we may not apply the transformation to the boot-loader itself, in particular it would transform
+ for (PackageableElement element : peList) {
+ if (element instanceof Package) {
+ addPortOperations(copy, (Package) element);
+ } else if (element instanceof Class) {
+ Class implementation = (Class) element;
+ // we may not apply the transformation to the boot-loader
+ // itself, in particular it would transform
// singletons into pointers.
- if(Utils.isCompImpl(implementation) && (implementation != bootloader) && !StereotypeUtil.isApplied(implementation, PortKind.class)) {
+ if (Utils.isCompImpl(implementation)
+ && (implementation != bootloader)
+ && !StereotypeUtil.isApplied(implementation,
+ PortKind.class)) {
addGetPortOperation(copy, implementation);
addConnectPortOperation(copy, implementation);
markPartsPointer(implementation);
@@ -92,80 +98,103 @@ public class CompImplTrafos {
}
/**
- * Add the get_p operation for each port with a provided interface. It also adds a suitable
- * implementation that evaluates delegation connectors from the port to a property within
- * the composite. The delegation target could either be a normal class (no port) or an
- * inner component.
+ * Add the get_p operation for each port with a provided interface. It also
+ * adds a suitable implementation that evaluates delegation connectors from
+ * the port to a property within the composite. The delegation target could
+ * either be a normal class (no port) or an inner component.
*
* @param implementation
*/
- private static void addGetPortOperation(Copy copy, Class implementation) {
- for(PortInfo portInfo : PortUtils.flattenExtendedPorts(PortUtils.getAllPorts2(implementation))) {
+ private static void addGetPortOperation(LazyCopier copy, Class implementation) {
+ for (PortInfo portInfo : PortUtils.flattenExtendedPorts(PortUtils
+ .getAllPorts2(implementation))) {
Interface providedIntf = portInfo.getProvided();
- if(providedIntf != null) {
- // port provides an interface, add "get_p" operation & implementation
+ if (providedIntf != null) {
+ // port provides an interface, add "get_p" operation &
+ // implementation
- String opName = PrefixConstants.getP_Prefix + portInfo.getName();
- Operation op = implementation.getOwnedOperation(opName, null, null);
+ String opName = PrefixConstants.getP_Prefix
+ + portInfo.getName();
+ Operation op = implementation.getOwnedOperation(opName, null,
+ null);
if (op != null) {
- // operation already exists. Assume that user wants to override standard delegation
+ // operation already exists. Assume that user wants to
+ // override standard delegation
if (op.getType() != providedIntf) {
op.createOwnedParameter(retParamName, providedIntf);
}
continue;
}
- op = implementation.createOwnedOperation(opName, null, null, providedIntf);
+ op = implementation.createOwnedOperation(opName, null, null,
+ providedIntf);
Parameter retParam = op.getOwnedParameters().get(0);
retParam.setName(retParamName);
StereotypeUtil.apply(retParam, Ptr.class);
- OpaqueBehavior behavior = (OpaqueBehavior)
- implementation.createOwnedBehavior(opName,
- UMLPackage.eINSTANCE.getOpaqueBehavior());
+ OpaqueBehavior behavior = (OpaqueBehavior) implementation
+ .createOwnedBehavior(opName,
+ UMLPackage.eINSTANCE.getOpaqueBehavior());
op.getMethods().add(behavior);
- ConnectorEnd ce = ConnectorUtil.getDelegation(implementation, portInfo.getModelPort());
- // if there is an delegation to an inner property, delegate to it
- // Make distinction between delegation to component (with a port) or
+ ConnectorEnd ce = ConnectorUtil.getDelegation(implementation,
+ portInfo.getModelPort());
+ // if there is an delegation to an inner property, delegate to
+ // it
+ // Make distinction between delegation to component (with a
+ // port) or
// "normal" class (without).
String body;
- if(ce != null) {
+ if (ce != null) {
Property part = ce.getPartWithPort();
ConnectableElement role = ce.getRole();
- body = "return "; //$NON-NLS-1$
- if(role instanceof Port) {
- // check whether the part exists within the implementation (might not be the case
+ body = "return "; //$NON-NLS-1$
+ if (role instanceof Port) {
+ // check whether the part exists within the
+ // implementation (might not be the case
// due to partially copied composites).
- // Check is based on names, since the connector points to elements within another
- // model (copyClassifier does not make a proper connector copy)
+ // Check is based on names, since the connector points
+ // to elements within another
+ // model (copyClassifier does not make a proper
+ // connector copy)
// body += part.getName() + refOp(part) + opName + "();"; //$NON-NLS-1$
// TODO: this will NOT work for extended ports!
- body += part.getName() + refOp(part) + PrefixConstants.getP_Prefix + role.getName() + "();"; //$NON-NLS-1$
- }
- else {
- // role is not a port: connector connects directly to a structural feature
+ body += part.getName() + refOp(part)
+ + PrefixConstants.getP_Prefix + role.getName()
+ + "();"; //$NON-NLS-1$
+ } else {
+ // role is not a port: connector connects directly to a
+ // structural feature
// without passing via a port
// TODO: check whether structural feature exists
body += role.getName();
}
} else {
- // no delegation, check whether port implements provided interface
- boolean implementsIntf = implementation.getInterfaceRealization(null, providedIntf) != null;
+ // no delegation, check whether port implements provided
+ // interface
+ boolean implementsIntf = implementation
+ .getInterfaceRealization(null, providedIntf) != null;
if (!implementsIntf) {
- // The extended port itself is not copied to the target model (since referenced via a stereotype). Therefore,
- // a port of an extended port still points to the original model. We try whether the providedIntf within
- // the target model is within the interface realizations.
- Interface providedIntfInCopy = (Interface) copy.get(providedIntf);
- implementsIntf = implementation.getInterfaceRealization(null, providedIntfInCopy) != null;
+ // The extended port itself is not copied to the target
+ // model (since referenced via a stereotype). Therefore,
+ // a port of an extended port still points to the
+ // original model. We try whether the providedIntf
+ // within
+ // the target model is within the interface
+ // realizations.
+ Interface providedIntfInCopy = (Interface) copy
+ .get(providedIntf);
+ implementsIntf = implementation
+ .getInterfaceRealization(null,
+ providedIntfInCopy) != null;
}
if (implementsIntf) {
- body = "return this;"; //$NON-NLS-1$
- }
- else {
+ body = "return this;"; //$NON-NLS-1$
+ } else {
throw new RuntimeException(String.format(
- Messages.CompImplTrafos_IntfNotImplemented,
- providedIntf.getName(), portInfo.getPort().getName(), implementation.getName()));
+ Messages.CompImplTrafos_IntfNotImplemented,
+ providedIntf.getName(), portInfo.getPort()
+ .getName(), implementation.getName()));
}
}
// todo: defined by template
@@ -176,23 +205,24 @@ public class CompImplTrafos {
}
/**
- * if the bootloader is responsible for creating an instance (if it is a abstract type), mark
- * the associated part as a C++ pointer.
- * We do not want to change the aggregation kind, since it remains logically a composition, it
- * is merely an implementation issue that it must be a pointer for C++ if the concrete type is
- * not yet known.
+ * if the bootloader is responsible for creating an instance (if it is a
+ * abstract type), mark the associated part as a C++ pointer. We do not want
+ * to change the aggregation kind, since it remains logically a composition,
+ * it is merely an implementation issue that it must be a pointer for C++ if
+ * the concrete type is not yet known.
*
*
* @param implementation
*/
private static void markPartsPointer(Class implementation) {
- for(Property attribute : Utils.getParts(implementation)) {
+ for (Property attribute : Utils.getParts(implementation)) {
Type type = attribute.getType();
- if(type instanceof Class) {
- Class cl = (Class)type;
- // => requires adaptations of boot-loader which is then only responsible for creating instances
- // corresponding to types
- if(instantiateViaBootloader(cl)) {
+ if (type instanceof Class) {
+ Class cl = (Class) type;
+ // => requires adaptations of boot-loader which is then only
+ // responsible for creating instances
+ // corresponding to types
+ if (instantiateViaBootloader(cl)) {
StereotypeUtil.apply(attribute, Ptr.class);
}
}
@@ -201,63 +231,79 @@ public class CompImplTrafos {
/**
* Add a connect_<portName> operation for ports with a required interface.
- * Whereas operation and a behavior is added for each owned port, a behavior (method) is
- * needed for ports inherited from a component type (the behavior is implementation specific,
- * as it needs to take delegation to parts into account)
+ * Whereas operation and a behavior is added for each owned port, a behavior
+ * (method) is needed for ports inherited from a component type (the
+ * behavior is implementation specific, as it needs to take delegation to
+ * parts into account)
*
* @param implementation
*/
- private static void addConnectPortOperation(Copy sat, Class implementation) {
- for(PortInfo portInfo : PortUtils.flattenExtendedPorts(PortUtils.getAllPorts2(implementation))) {
+ private static void addConnectPortOperation(LazyCopier sat, Class implementation) {
+ for (PortInfo portInfo : PortUtils.flattenExtendedPorts(PortUtils
+ .getAllPorts2(implementation))) {
Interface requiredIntf = portInfo.getRequired();
- if(requiredIntf != null) {
- // port requires an interface, add "connect_p" operation & implementation
+ if (requiredIntf != null) {
+ // port requires an interface, add "connect_p" operation &
+ // implementation
- String opName = PrefixConstants.connectQ_Prefix + portInfo.getName();
+ String opName = PrefixConstants.connectQ_Prefix
+ + portInfo.getName();
if (implementation.getOwnedOperation(opName, null, null) != null) {
- // do not add the operation, if it already exists. This means that the
- // user wants to override it with custom behavior. In case of extended
+ // do not add the operation, if it already exists. This
+ // means that the
+ // user wants to override it with custom behavior. In case
+ // of extended
// ports, we may have to do that.
continue;
}
- Operation op = implementation.createOwnedOperation(opName, null, null);
- boolean multiPort = (portInfo.getUpper() > 1) || (portInfo.getUpper() == -1); // -1 indicates "*"
- if(multiPort) {
+ Operation op = implementation.createOwnedOperation(opName,
+ null, null);
+ boolean multiPort = (portInfo.getUpper() > 1)
+ || (portInfo.getUpper() == -1); // -1 indicates "*"
+ if (multiPort) {
// add index parameter
- Element eLong = Utils.getQualifiedElement(Utils.getTop(implementation), CompTypeTrafos.INDEX_TYPE_FOR_MULTI_RECEPTACLE);
- if(eLong instanceof Type) {
- op.createOwnedParameter("index", (Type)eLong); //$NON-NLS-1$
- }
- else {
+ Element eLong = Utils.getQualifiedElement(
+ Utils.getTop(implementation),
+ CompTypeTrafos.INDEX_TYPE_FOR_MULTI_RECEPTACLE);
+ if (eLong instanceof Type) {
+ op.createOwnedParameter("index", (Type) eLong); //$NON-NLS-1$
+ } else {
throw new RuntimeException(String.format(
- Messages.CompImplTrafos_CannotFindType,
- CompTypeTrafos.INDEX_TYPE_FOR_MULTI_RECEPTACLE));
+ Messages.CompImplTrafos_CannotFindType,
+ CompTypeTrafos.INDEX_TYPE_FOR_MULTI_RECEPTACLE));
}
}
- Parameter refParam = op.createOwnedParameter("ref", requiredIntf); //$NON-NLS-1$
+ Parameter refParam = op.createOwnedParameter(
+ "ref", requiredIntf); //$NON-NLS-1$
StereotypeUtil.apply(refParam, Ptr.class);
- OpaqueBehavior behavior = (OpaqueBehavior)
- implementation.createOwnedBehavior(opName,
- UMLPackage.eINSTANCE.getOpaqueBehavior());
+ OpaqueBehavior behavior = (OpaqueBehavior) implementation
+ .createOwnedBehavior(opName,
+ UMLPackage.eINSTANCE.getOpaqueBehavior());
op.getMethods().add(behavior);
- ConnectorEnd ce = ConnectorUtil.getDelegation(implementation, portInfo.getModelPort());
- // if there is an delegation to an inner property, delegate to it
- // Make distinction between delegation to component (with a port) or
+ ConnectorEnd ce = ConnectorUtil.getDelegation(implementation,
+ portInfo.getModelPort());
+ // if there is an delegation to an inner property, delegate to
+ // it
+ // Make distinction between delegation to component (with a
+ // port) or
// "normal" class (without).
String body;
- if(ce != null) {
+ if (ce != null) {
Property part = ce.getPartWithPort();
body = part.getName();
ConnectableElement role = ce.getRole();
- if(role instanceof Port) {
- // in case of a delegation, use name of target port which might be different
- String targetOpName = PrefixConstants.connectQ_Prefix + role.getName();
+ if (role instanceof Port) {
+ // in case of a delegation, use name of target port
+ // which might be different
+ String targetOpName = PrefixConstants.connectQ_Prefix
+ + role.getName();
body += refOp(part) + targetOpName;
// TODO: no check that multiplicity of both port matches
- if((portInfo.getUpper() > 1) || (portInfo.getUpper() == -1)) {
+ if ((portInfo.getUpper() > 1)
+ || (portInfo.getUpper() == -1)) {
body += "(index, ref);"; //$NON-NLS-1$
} else {
body += "(ref);"; //$NON-NLS-1$
@@ -268,42 +314,55 @@ public class CompImplTrafos {
}
} else {
// no delegation - create attribute for port
- String attributeName = PrefixConstants.attributePrefix + portInfo.getName();
- if(!Utils.hasNonPortOwnedAttribute(implementation, attributeName)) {
- Property attr = implementation.createOwnedAttribute(attributeName, requiredIntf);
- Copy.copyMultElemModifiers(portInfo.getPort(), attr);
+ String attributeName = PrefixConstants.attributePrefix
+ + portInfo.getName();
+ if (!Utils.hasNonPortOwnedAttribute(implementation,
+ attributeName)) {
+ Property attr = implementation.createOwnedAttribute(
+ attributeName, requiredIntf);
+ LazyCopier.copyMultElemModifiers(portInfo.getPort(), attr);
// is shared (should store a reference)
attr.setAggregation(AggregationKind.SHARED_LITERAL);
}
- body = attributeName + (multiPort ? "[index]" : "") + " = ref;"; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
+ body = attributeName
+ + (multiPort ? "[index]" : "") + " = ref;"; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
}
// TODO: defined by template
behavior.getLanguages().add(progLang);
behavior.getBodies().add(body);
// -------------------------
- // add body to get-connection operation (which exists already if the port is also
- // owned, since it is synchronized automatically during model edit)
- // getConnQ prefix may be empty to indicate that the port is accessed directly
- // TODO: reconsider optimization that delegated required ports do not have a
- // local attribute & associated operation (an inner class may delegate, but the
- // composite may be using it as well).
- if((PrefixConstants.getConnQ_Prefix.length() > 0) && (ce != null)) {
- opName = PrefixConstants.getConnQ_Prefix + portInfo.getName();
+ // add body to get-connection operation (which exists already if
+ // the port is also
+ // owned, since it is synchronized automatically during model
+ // edit)
+ // getConnQ prefix may be empty to indicate that the port is
+ // accessed directly
+ // TODO: reconsider optimization that delegated required ports
+ // do not have a
+ // local attribute & associated operation (an inner class may
+ // delegate, but the
+ // composite may be using it as well).
+ if ((PrefixConstants.getConnQ_Prefix.length() > 0)
+ && (ce != null)) {
+ opName = PrefixConstants.getConnQ_Prefix
+ + portInfo.getName();
op = implementation.getOwnedOperation(opName, null, null);
- if(op == null) {
- op = implementation.createOwnedOperation(opName, null, null, requiredIntf);
+ if (op == null) {
+ op = implementation.createOwnedOperation(opName, null,
+ null, requiredIntf);
Parameter retParam = op.getOwnedParameters().get(0);
retParam.setName(retParamName);
StereotypeUtil.apply(retParam, Ptr.class);
}
- behavior = (OpaqueBehavior)
- implementation.createOwnedBehavior(opName,
- UMLPackage.eINSTANCE.getOpaqueBehavior());
+ behavior = (OpaqueBehavior) implementation
+ .createOwnedBehavior(opName,
+ UMLPackage.eINSTANCE.getOpaqueBehavior());
op.getMethods().add(behavior);
// no delegation
- String name = PrefixConstants.attributePrefix + portInfo.getName();
+ String name = PrefixConstants.attributePrefix
+ + portInfo.getName();
body = "return " + name + ";"; //$NON-NLS-1$ //$NON-NLS-2$
behavior.getLanguages().add(progLang);
behavior.getBodies().add(body);
@@ -313,37 +372,42 @@ public class CompImplTrafos {
}
/**
- * Add an operation "createConnections" that implements the connections between composite
- * parts. It only takes the assembly connections into account, since delegation connectors
- * are handled by the get_ and connect_ port operations above.
+ * Add an operation "createConnections" that implements the connections
+ * between composite parts. It only takes the assembly connections into
+ * account, since delegation connectors are handled by the get_ and connect_
+ * port operations above.
*
* @param implementation
*/
private static void addCreateConnections(Class implementation)
- throws TransformationException {
+ throws TransformationException {
String createConnBody = ""; //$NON-NLS-1$
Map<ConnectorEnd, Integer> indexMap = new HashMap<ConnectorEnd, Integer>();
- for(Connector connector : implementation.getOwnedConnectors()) {
- if(ConnectorUtil.isAssembly(connector)) {
+ for (Connector connector : implementation.getOwnedConnectors()) {
+ if (ConnectorUtil.isAssembly(connector)) {
// Boolean associationBased = false;
if (connector.getEnds().size() != 2) {
- throw new TransformationException("Connector <" + connector.getName() + "> does not have two ends. This is currently not supported"); //$NON-NLS-1$ //$NON-NLS-2$
+ throw new TransformationException(
+ "Connector <" + connector.getName() + "> does not have two ends. This is currently not supported"); //$NON-NLS-1$ //$NON-NLS-2$
}
ConnectorEnd end1 = connector.getEnds().get(0);
ConnectorEnd end2 = connector.getEnds().get(1);
String cmd;
- cmd = "// realization of connector <" + connector.getName() + ">\n"; //$NON-NLS-1$//$NON-NLS-2$
- if ((end1.getRole() instanceof Port) && PortUtils.isExtendedPort((Port) end1.getRole())) {
+ cmd = "// realization of connector <" + connector.getName() + ">\n"; //$NON-NLS-1$//$NON-NLS-2$
+ if ((end1.getRole() instanceof Port)
+ && PortUtils.isExtendedPort((Port) end1.getRole())) {
Port port = (Port) end1.getRole();
- EList<PortInfo> subPorts = PortUtils.flattenExtendedPort(port);
+ EList<PortInfo> subPorts = PortUtils
+ .flattenExtendedPort(port);
for (PortInfo subPort : subPorts) {
- cmd += " // realization of connection for sub-port " + subPort.getPort().getName() + "\n"; //$NON-NLS-1$//$NON-NLS-2$
- cmd += connectPorts(indexMap, connector, end1, end2, subPort.getPort());
- cmd += connectPorts(indexMap, connector, end2, end1, subPort.getPort());
+ cmd += " // realization of connection for sub-port " + subPort.getPort().getName() + "\n"; //$NON-NLS-1$//$NON-NLS-2$
+ cmd += connectPorts(indexMap, connector, end1, end2,
+ subPort.getPort());
+ cmd += connectPorts(indexMap, connector, end2, end1,
+ subPort.getPort());
}
- }
- else {
+ } else {
cmd += connectPorts(indexMap, connector, end1, end2, null);
cmd += connectPorts(indexMap, connector, end2, end1, null);
}
@@ -351,12 +415,13 @@ public class CompImplTrafos {
}
}
// TODO: use template, as in bootloader
- if(createConnBody.length() > 0) {
- Operation operation = implementation.createOwnedOperation("createConnections", null, null); //$NON-NLS-1$
+ if (createConnBody.length() > 0) {
+ Operation operation = implementation.createOwnedOperation(
+ "createConnections", null, null); //$NON-NLS-1$
- OpaqueBehavior behavior = (OpaqueBehavior)
- implementation.createOwnedBehavior("b:" + operation.getName(), //$NON-NLS-1$
- UMLPackage.eINSTANCE.getOpaqueBehavior());
+ OpaqueBehavior behavior = (OpaqueBehavior) implementation
+ .createOwnedBehavior("b:" + operation.getName(), //$NON-NLS-1$
+ UMLPackage.eINSTANCE.getOpaqueBehavior());
behavior.getLanguages().add(progLang);
behavior.getBodies().add(createConnBody);
behavior.setSpecification(operation);
@@ -364,100 +429,127 @@ public class CompImplTrafos {
}
/**
- * Create a connection between the two ends of a receptacle. This function checks whether the first end really is
- * a receptacle and the second really is a facet.
- * @param indexMap a map of indices that are used in case of multiplex receptacles
- * @param connector a connector
- * @param receptacleEnd an end of the connector that may point to a receptacle port
- * @param facetEnd an end of the connector that may point to a facet port
- * @param subPort a sub-port in case of extended ports
+ * Create a connection between the two ends of a receptacle. This function
+ * checks whether the first end really is a receptacle and the second really
+ * is a facet.
+ *
+ * @param indexMap
+ * a map of indices that are used in case of multiplex
+ * receptacles
+ * @param connector
+ * a connector
+ * @param receptacleEnd
+ * an end of the connector that may point to a receptacle port
+ * @param facetEnd
+ * an end of the connector that may point to a facet port
+ * @param subPort
+ * a sub-port in case of extended ports
* @return
* @throws TransformationException
*/
- public static String connectPorts(Map<ConnectorEnd, Integer> indexMap, Connector connector, ConnectorEnd receptacleEnd, ConnectorEnd facetEnd, Port subPort)
- throws TransformationException
- {
+ public static String connectPorts(Map<ConnectorEnd, Integer> indexMap,
+ Connector connector, ConnectorEnd receptacleEnd,
+ ConnectorEnd facetEnd, Port subPort) throws TransformationException {
Association association = connector.getType();
- if((receptacleEnd.getRole() instanceof Port) && (facetEnd.getRole() instanceof Port)) {
+ if ((receptacleEnd.getRole() instanceof Port)
+ && (facetEnd.getRole() instanceof Port)) {
Port facetPort = (Port) facetEnd.getRole();
Port receptaclePort = (Port) receptacleEnd.getRole();
PortInfo facetPI = PortInfo.fromSubPort(facetPort, subPort);
- PortInfo receptaclePI = PortInfo.fromSubPort(receptaclePort, subPort);
+ PortInfo receptaclePI = PortInfo.fromSubPort(receptaclePort,
+ subPort);
- if((facetPI.getProvided() != null) && (receptaclePI.getRequired() != null)) {
+ if ((facetPI.getProvided() != null)
+ && (receptaclePI.getRequired() != null)) {
Property facetPart = facetEnd.getPartWithPort();
Property receptaclePart = receptacleEnd.getPartWithPort();
-
+
String subPortName = (subPort != null) ? "_" + subPort.getName() : ""; //$NON-NLS-1$ //$NON-NLS-2$
- String indexName = getIndexName(indexMap, receptaclePort, receptacleEnd);
- String setter = receptaclePart.getName() + refOp(receptaclePart) + "connect_" + receptaclePort.getName() + subPortName; //$NON-NLS-1$
- String getter = facetPart.getName() + refOp(facetPart) + "get_" + facetPort.getName() + subPortName + "()"; //$NON-NLS-1$ //$NON-NLS-2$
+ String indexName = getIndexName(indexMap, receptaclePort,
+ receptacleEnd);
+ String setter = receptaclePart.getName()
+ + refOp(receptaclePart)
+ + "connect_" + receptaclePort.getName() + subPortName; //$NON-NLS-1$
+ String getter = facetPart.getName() + refOp(facetPart)
+ + "get_" + facetPort.getName() + subPortName + "()"; //$NON-NLS-1$ //$NON-NLS-2$
return setter + "(" + indexName + getter + ");\n"; //$NON-NLS-1$ //$NON-NLS-2$
}
-
- }
- else if(receptacleEnd.getRole() instanceof Port) {
+
+ } else if (receptacleEnd.getRole() instanceof Port) {
// only the receptacle end is of type port.
Port receptaclePort = (Port) receptacleEnd.getRole();
- if(PortUtils.getRequired(receptaclePort) != null) {
+ if (PortUtils.getRequired(receptaclePort) != null) {
Property facetPart = (Property) facetEnd.getRole();
Property receptaclePart = facetEnd.getPartWithPort();
-
- String indexName = getIndexName(indexMap, receptaclePort, receptacleEnd);
- String setter = receptaclePart.getName() + refOp(receptaclePart) + "connect_" + receptaclePort.getName(); //$NON-NLS-1$
- String getter = facetPart.getName() + refOp(facetPart) + facetPart.getName();
+
+ String indexName = getIndexName(indexMap, receptaclePort,
+ receptacleEnd);
+ String setter = receptaclePart.getName()
+ + refOp(receptaclePart)
+ + "connect_" + receptaclePort.getName(); //$NON-NLS-1$
+ String getter = facetPart.getName() + refOp(facetPart)
+ + facetPart.getName();
return setter + "(" + indexName + getter + ");\n"; //$NON-NLS-1$ //$NON-NLS-2$
}
- }
- else if(facetEnd.getRole() instanceof Port) {
+ } else if (facetEnd.getRole() instanceof Port) {
// only the receptacle end is of type port.
Port facetPort = (Port) facetEnd.getRole();
- if(PortUtils.getProvided(facetPort) != null) {
+ if (PortUtils.getProvided(facetPort) != null) {
Property facetPart = facetEnd.getPartWithPort();
Property receptaclePart = (Property) facetEnd.getRole();
-
+
String setter = receptaclePart.getName();
- String getter = facetPart.getName() + refOp(facetPart) + "get_" + facetPort.getName() + " ()"; //$NON-NLS-1$ //$NON-NLS-2$
+ String getter = facetPart.getName() + refOp(facetPart)
+ + "get_" + facetPort.getName() + " ()"; //$NON-NLS-1$ //$NON-NLS-2$
return setter + " = " + getter + ";\n"; //$NON-NLS-1$ //$NON-NLS-2$
}
- }
- else if(association != null) {
- // both connector ends do not target ports. In this case, we require that the connector is typed
- // with an association. We use this association to find out which end is navigable and assume that
- // the part pointed to by the other end is a pointer that gets initialized with the part of the
+ } else if (association != null) {
+ // both connector ends do not target ports. In this case, we require
+ // that the connector is typed
+ // with an association. We use this association to find out which
+ // end is navigable and assume that
+ // the part pointed to by the other end is a pointer that gets
+ // initialized with the part of the
// navigable end.
Property facetPart = (Property) facetEnd.getRole();
Property receptaclePart = (Property) receptacleEnd.getRole();
-
- Property assocProp1 = association.getMemberEnd(null, facetPart.getType());
+
+ Property assocProp1 = association.getMemberEnd(null,
+ facetPart.getType());
// Property assocProp2 = facetPart.getOtherEnd();
- if((assocProp1 != null) && assocProp1.isNavigable()) {
- String setter = receptaclePart.getName() + refOp(receptaclePart)+ assocProp1.getName();
+ if ((assocProp1 != null) && assocProp1.isNavigable()) {
+ String setter = receptaclePart.getName()
+ + refOp(receptaclePart) + assocProp1.getName();
String getter = "&" + facetPart.getName(); //$NON-NLS-1$
return setter + " = " + getter + ";\n"; //$NON-NLS-1$ //$NON-NLS-2$
}
- }
- else {
+ } else {
// not handled (a connector not targeting a port must be typed)
- throw new TransformationException("Connector <" + connector.getName() + //$NON-NLS-1$
- "> does not use ports, but it is not typed (only connectors between ports should not be typed)"); //$NON-NLS-1$
+ throw new TransformationException(
+ "Connector <" + connector.getName() + //$NON-NLS-1$
+ "> does not use ports, but it is not typed (only connectors between ports should not be typed)"); //$NON-NLS-1$
}
return ""; //$NON-NLS-1$
}
-
+
/**
- * Handle ports with multiplicity > 1. The idea is that we could have multiple connections targeting a receptacle.
- * The first connection would start with index 0. Implementations can make no assumption which connection is associated
- * with a certain index. [want to avoid associative array in runtime].
+ * Handle ports with multiplicity > 1. The idea is that we could have
+ * multiple connections targeting a receptacle. The first connection would
+ * start with index 0. Implementations can make no assumption which
+ * connection is associated with a certain index. [want to avoid associative
+ * array in runtime].
+ *
* @param port
* @param end
* @return
*/
- public static String getIndexName (Map<ConnectorEnd, Integer> indexMap, Port port, ConnectorEnd end) {
- if((port.getUpper() > 1) || (port.getUpper() == -1)) {
- // index depends of combination of property and port, use connector end as key
+ public static String getIndexName(Map<ConnectorEnd, Integer> indexMap,
+ Port port, ConnectorEnd end) {
+ if ((port.getUpper() > 1) || (port.getUpper() == -1)) {
+ // index depends of combination of property and port, use connector
+ // end as key
Integer indexValue = indexMap.get(end);
- if(indexValue == null) {
+ if (indexValue == null) {
indexValue = 0;
indexMap.put(end, indexValue);
}
@@ -465,67 +557,70 @@ public class CompImplTrafos {
indexValue++;
indexMap.put(end, indexValue);
return index;
- }
+ }
return ""; //$NON-NLS-1$
- }
-
+ }
+
public static void deleteConnectors(Package pkg) {
- Iterator<PackageableElement> elements = pkg.getPackagedElements().iterator();
- while(elements.hasNext()) {
+ Iterator<PackageableElement> elements = pkg.getPackagedElements()
+ .iterator();
+ while (elements.hasNext()) {
PackageableElement element = elements.next();
- if(element instanceof Package) {
- deleteConnectors((Package)element);
- } else if(element instanceof Class) {
- Class implementation = (Class)element;
+ if (element instanceof Package) {
+ deleteConnectors((Package) element);
+ } else if (element instanceof Class) {
+ Class implementation = (Class) element;
implementation.getOwnedConnectors().clear();
}
}
}
/**
- * Return true, if the bootloader is responsible for the instantiation of a part.
- * [Structual difference: bootloader can decide instance based - and instances are deployed]
+ * Return true, if the bootloader is responsible for the instantiation of a
+ * part. [Structual difference: bootloader can decide instance based - and
+ * instances are deployed]
*
- * If a part is a component type or an abstract implementation, it cannot be instantiated. Thus, a heir
- * has to be selected in the deployment plan. Since the selection might be different for different instances
- * of the composite, the instantiation is not done by the component itself, but by the bootloader.
- * The bootloader also has to instantiate, if different allocation variants are required.
- * (this is for instance the case for distribution connectors and for the system itself)
+ * If a part is a component type or an abstract implementation, it cannot be
+ * instantiated. Thus, a heir has to be selected in the deployment plan.
+ * Since the selection might be different for different instances of the
+ * composite, the instantiation is not done by the component itself, but by
+ * the bootloader. The bootloader also has to instantiate, if different
+ * allocation variants are required. (this is for instance the case for
+ * distribution connectors and for the system itself)
*
- * If possible, we want to let composites instantiate sub-components, since this eases
- * the transition to systems which support reconfiguration.
+ * If possible, we want to let composites instantiate sub-components, since
+ * this eases the transition to systems which support reconfiguration.
*
- * [TODO: optimization: analyze whether the deployment plan selects a single implementation. If yes, let the
- * composite instantiate]
+ * [TODO: optimization: analyze whether the deployment plan selects a single
+ * implementation. If yes, let the composite instantiate]
*
- * [TODO: elements within an assembly need to be instantiated by composite - if System - by bootloader.
- * assembly also need to be instantiated by composite!!
+ * [TODO: elements within an assembly need to be instantiated by composite -
+ * if System - by bootloader. assembly also need to be instantiated by
+ * composite!!
*
* @param implementation
* @return
*/
public static boolean instantiateViaBootloader(Class implementation) {
- return
- implementation.isAbstract() ||
- Utils.isAssembly(implementation);
+ return implementation.isAbstract() || Utils.isAssembly(implementation);
}
/**
- * Return whether a part needs to be instantiated by the bootloader instead by the
- * composite in which it is contained. The criteria is based on the question whether
- * the containing composite is flattened, as it is the case for the system
- * component and the interaction components for distribution.
+ * Return whether a part needs to be instantiated by the bootloader instead
+ * by the composite in which it is contained. The criteria is based on the
+ * question whether the containing composite is flattened, as it is the case
+ * for the system component and the interaction components for distribution.
+ *
* @param part
* @return
*/
public static boolean instantiateViaBootloader(StructuralFeature part) {
- if(part != null) {
- if(part.getType() instanceof Class) {
- Class implementation = (Class)part.getType();
+ if (part != null) {
+ if (part.getType() instanceof Class) {
+ Class implementation = (Class) part.getType();
// TODO: wrong criteria? (must be shared or not?)
return instantiateViaBootloader(implementation);
- }
- else {
+ } else {
// not a class, assume primitive type instantiated by composite
return false;
}
@@ -534,15 +629,40 @@ public class CompImplTrafos {
}
/**
- * return the operator for (de-) referencing a part. If the part is instantiate via the
- * bootloader, it becomes a pointer. If it is instantiated by the composite itself,
- * it is not a pointer, it will be instantiated along with the composite
+ * return the operator for (de-) referencing a part. If the part is
+ * instantiate via the bootloader, it becomes a pointer. If it is
+ * instantiated by the composite itself, it is not a pointer, it will be
+ * instantiated along with the composite
*
* @param part
* @return
*/
protected static String refOp(Property part) {
- return ((part.getAggregation() == AggregationKind.SHARED_LITERAL) || StereotypeUtil.isApplied(part, Ptr.class)) ?
- "->" : "."; //$NON-NLS-1$ //$NON-NLS-2$
+ return ((part.getAggregation() == AggregationKind.SHARED_LITERAL) || StereotypeUtil
+ .isApplied(part, Ptr.class)) ? "->" : "."; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ public static void transform(Class bootloader2, LazyCopier targetCopy,
+ Model genModel, boolean OOmodel) throws TransformationException {
+ // 2c: add get_p/connect_q operations
+ // caveat: may modify imported classes
+ CompImplTrafos.bootloader = bootloader2;
+ CompImplTrafos.addPortOperations(targetCopy, genModel);
+
+ if (OOmodel) {
+ // 3: component -> OO transformations related to ports:
+ // complete port access operations
+ // (get<PortName>/connect<PortName> and
+ // remove the ports afterwards
+ CompTypeTrafos.completeAccessOps(genModel);
+ CompTypeTrafos.removePorts(genModel);
+ }
+
+ // 4: remove connectors from implementations, since their
+ // endpoint's roles
+ // have disappeared during step 4b (targeted ports have been
+ // deleted together with the types).
+ CompImplTrafos.deleteConnectors(genModel);
+
}
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ConnectorReification.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ConnectorReification.java
index 3b46d557aa9..7583049239f 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ConnectorReification.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ConnectorReification.java
@@ -110,7 +110,7 @@ public class ConnectorReification {
/**
*
- * @param copy
+ * @param copier
* @param tmComponent
* @param smConnectorPart
* Part representing the connector
@@ -122,7 +122,7 @@ public class ConnectorReification {
* connector
* @throws TransformationException
*/
- public static Property reifyConnector(Copy copy, Class tmComponent,
+ public static Property reifyConnector(LazyCopier copier, Class tmComponent,
Property smConnectorPart, InstanceSpecification tmIS, Object[] args)
throws TransformationException {
// 1st step: create part for the connector without actually changing the type.
@@ -143,14 +143,14 @@ public class ConnectorReification {
Class connectorImplem;
if(binding != null) {
- TemplateUtils.adaptActualsToTargetModel(copy, binding);
- TemplateInstantiation ti = new TemplateInstantiation(copy, binding, args);
+ TemplateUtils.adaptActualsToTargetModel(copier, binding);
+ TemplateInstantiation ti = new TemplateInstantiation(copier, binding, args);
connectorImplem = (Class)ti.bindNamedElement(connectorImplemTemplate);
} else {
// no binding, class is not a template => copy as it is
- connectorImplem = copy.getCopy(connectorImplemTemplate);
+ connectorImplem = copier.getCopy(connectorImplemTemplate);
}
- Property tmConnectorPart = copy.getCopy(smConnectorPart);
+ Property tmConnectorPart = copier.getCopy(smConnectorPart);
tmConnectorPart.setType(connectorImplem);
// now re-target connectors towards this part
TemplateUtils.retargetConnectors(tmComponent, tmConnectorPart);
@@ -160,8 +160,8 @@ public class ConnectorReification {
/**
* Reify a connector
*
- * @param copy
- * The copy obect (from source to target mode)
+ * @param copier
+ * The coper from source to target mode
* @param tmComponent
* containing composite in target target
* @param name
@@ -173,11 +173,11 @@ public class ConnectorReification {
* (the part typed with the instantiated interaction component) should be created.
* The instance is only used to find a suitable implementation.
* @param args
- * addtion args for the Acceleo transformation
+ * additional arguments for the Acceleo transformation
* @return the created part within tmComponent
* @throws TransformationException
*/
- public static Property reifyConnector(Copy copy, Class tmComponent,
+ public static Property reifyConnector(LazyCopier copier, Class tmComponent,
String name, Connector smConnector, InstanceSpecification tmIS, Object[] args)
throws TransformationException {
@@ -197,17 +197,17 @@ public class ConnectorReification {
Class connectorImplem;
if(binding != null) {
- TemplateUtils.adaptActualsToTargetModel(copy, binding);
+ TemplateUtils.adaptActualsToTargetModel(copier, binding);
// make copy of bound package and restore it later. Required for nested template instantiations, in particular
// the bound package is set within container transformations and is (by default) restored to "null" afterwards.
// TODO: TemplateInstantiation should do this automatically
- copy.pushPackageTemplate();
- TemplateInstantiation ti = new TemplateInstantiation(copy, binding, args);
+ copier.pushPackageTemplate();
+ TemplateInstantiation ti = new TemplateInstantiation(copier, binding, args);
connectorImplem = (Class)ti.bindNamedElement(connectorImplemTemplate);
- copy.popPackageTemplate();
+ copier.popPackageTemplate();
} else {
// no binding, class is not a template => copy as it is
- connectorImplem = copy.getCopy(connectorImplemTemplate);
+ connectorImplem = copier.getCopy(connectorImplemTemplate);
}
if(connectorImplem == null) {
@@ -218,7 +218,7 @@ public class ConnectorReification {
Property tmConnectorPart = tmComponent.createOwnedAttribute(name,
connectorImplemTemplate);
// copy id, but prefix it with "p" (for part)
- Copy.copyID(smConnector, tmConnectorPart, "p"); //$NON-NLS-1$
+ LazyCopier.copyID(smConnector, tmConnectorPart, "p"); //$NON-NLS-1$
tmConnectorPart.setIsComposite(true);
Log.log(Status.INFO, Log.TRAFO_CONNECTOR,
@@ -230,7 +230,7 @@ public class ConnectorReification {
for(ConnectorEnd smEnd : smConnector.getEnds()) {
Connector tmConnector = tmComponent.createOwnedConnector("c " //$NON-NLS-1$
+ name + " " + String.valueOf(i)); //$NON-NLS-1$
- Copy.copyID(smConnector, tmConnector);
+ LazyCopier.copyID(smConnector, tmConnector);
i++;
// the new connector connects the existing end with an end of the
// reified connector (the newly created property.)
@@ -239,9 +239,9 @@ public class ConnectorReification {
// non-connector part)
ConnectorEnd tmEnd1 = tmConnector.createEnd();
Property smPartWithPort = smEnd.getPartWithPort();
- Property tmPartWithPort = copy.getCopy(smPartWithPort);
+ Property tmPartWithPort = copier.getCopy(smPartWithPort);
ConnectableElement smRole = smEnd.getRole();
- ConnectableElement tmRole = copy.getCopy(smRole);
+ ConnectableElement tmRole = copier.getCopy(smRole);
tmEnd1.setPartWithPort(tmPartWithPort);
tmEnd1.setRole(tmRole);
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 20927702bed..a7faefb946f 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
@@ -84,8 +84,8 @@ public class ContainerTrafo extends AbstractContainerTrafo {
* @param tmCDP
* deployment plan within target model
*/
- public ContainerTrafo(Copy copy, Package tmCDP, InstanceSpecification executorIS) {
- this.copy = copy;
+ public ContainerTrafo(LazyCopier copier, Package tmCDP, InstanceSpecification executorIS) {
+ this.copier = copier;
this.tmCDP = tmCDP;
this.executorIS = executorIS;
portInfo = new HashMap<Property, Port>();
@@ -121,11 +121,11 @@ public class ContainerTrafo extends AbstractContainerTrafo {
if (isSingleton) {
StereotypeUtil.apply(tmContainerImpl, Singleton.class);
}
- Copy.copyID(tmComponent, tmContainerImpl, containerPostfix);
+ LazyCopier.copyID(tmComponent, tmContainerImpl, containerPostfix);
// add part and slot corresponding to component;
executorPart = tmContainerImpl.createOwnedAttribute(executorPartName, tmComponent);
- Copy.copyID(tmComponent, executorPart, "e"); //$NON-NLS-1$
+ LazyCopier.copyID(tmComponent, executorPart, "e"); //$NON-NLS-1$
executorPart.setIsComposite(true);
@@ -142,7 +142,7 @@ public class ContainerTrafo extends AbstractContainerTrafo {
// create delegation for application port
Connector containerDelegation = tmContainerImpl.createOwnedConnector("delegation " + port.getName()); //$NON-NLS-1$
- Copy.copyID(tmContainerImpl, containerDelegation);
+ LazyCopier.copyID(tmContainerImpl, containerDelegation);
ConnectorEnd end1 = containerDelegation.createEnd();
end1.setRole(newPort);
ConnectorEnd end2 = containerDelegation.createEnd();
@@ -175,7 +175,7 @@ public class ContainerTrafo extends AbstractContainerTrafo {
public void createHwContainer(Class tmComponent) throws TransformationException {
Package tmPkgOwner = (Package)tmComponent.getOwner();
tmContainerImpl = tmPkgOwner.createOwnedClass(tmComponent.getName() + hwContainerPostfix, false);
- Copy.copyID(tmComponent, tmContainerImpl, hwContainerPostfix);
+ LazyCopier.copyID(tmComponent, tmContainerImpl, hwContainerPostfix);
// register created container
containers.put(tmComponent, this);
@@ -262,7 +262,7 @@ public class ContainerTrafo extends AbstractContainerTrafo {
slotCopy.setDefiningFeature(slot.getDefiningFeature());
// copy values (use CopyTo.copyTo(slot, containerIS) instead?)
for (ValueSpecification value : slot.getValues()) {
- Copy.copyValue(value, slotCopy);
+ LazyCopier.copyValue(value, slotCopy);
}
}
return containerIS;
@@ -333,9 +333,9 @@ public class ContainerTrafo extends AbstractContainerTrafo {
Property extensionPart =
expandAggregationExtension(part, extOrInterceptor, tmComponent);
// register relation to facilitate connector copy
- copy.setPackageTemplate(smContainerRule.getBase_Class(), tmContainerImpl);
- copy.putPair(part, extensionPart);
- copy.setPackageTemplate(null, null);
+ copier.setPackageTemplate(smContainerRule.getBase_Class(), tmContainerImpl);
+ copier.putPair(part, extensionPart);
+ copier.setPackageTemplate(null, null);
}
}
}
@@ -347,7 +347,7 @@ public class ContainerTrafo extends AbstractContainerTrafo {
// the types of the referenced parts).
// [main issue here: properties of container rule are not copies in the sense of identical
// copies]
- copy.setPackageTemplate(smContainerRule.getBase_Class(), tmContainerImpl);
+ copier.setPackageTemplate(smContainerRule.getBase_Class(), tmContainerImpl);
for(Connector connector : smContainerRule.getBase_Class().getOwnedConnectors()) {
Property ruleInterceptorPart = null;
@@ -364,25 +364,25 @@ public class ContainerTrafo extends AbstractContainerTrafo {
for(Property interceptorPart : interceptorPartsMap.get(ruleInterceptorPart)) {
// map an interceptor part within rule successively to to an interceptor part
// within the container
- copy.putPair(ruleInterceptorPart, interceptorPart);
- copy.removeForCopy(connector);
- copy.getCopy(connector);
+ copier.putPair(ruleInterceptorPart, interceptorPart);
+ copier.removeForCopy(connector);
+ copier.getCopy(connector);
}
}
else {
// check whether FCM connector
org.eclipse.papyrus.FCM.Connector fcmConn = StUtils.getConnector(connector);
if(fcmConn != null) {
- ConnectorReification.reifyConnector(copy, tmContainerImpl,
+ ConnectorReification.reifyConnector(copier, tmContainerImpl,
UMLTool.varName(connector), connector, executorIS, null);
}
else {
- copy.remove(connector);
- copy.getCopy(connector);
+ copier.remove(connector);
+ copier.getCopy(connector);
}
}
}
- copy.setPackageTemplate(null, null);
+ copier.setPackageTemplate(null, null);
TemplateUtils.retargetConnectors(tmContainerImpl);
}
@@ -401,7 +401,7 @@ public class ContainerTrafo extends AbstractContainerTrafo {
TemplateSignature signature = TemplateUtils.getSignature(smContainerExtImpl);
if(signature == null) {
// no template signature, just copy the container extension into the target model
- tmContainerExtImpl = copy.getCopy(smContainerExtImpl);
+ tmContainerExtImpl = copier.getCopy(smContainerExtImpl);
}
else {
// template signature found, instantiate container extension via template binding mechanism
@@ -417,9 +417,9 @@ public class ContainerTrafo extends AbstractContainerTrafo {
}
// template signature and instantiate container extension via the
// template binding mechanism, use executor component as actual
- TemplateBinding binding = TemplateUtils.fixedBinding(copy.target, smContainerExtImpl, actual);
+ TemplateBinding binding = TemplateUtils.fixedBinding(copier.target, smContainerExtImpl, actual);
Object[] args = new Object[]{};
- TemplateInstantiation ti = new TemplateInstantiation(copy, binding, args);
+ TemplateInstantiation ti = new TemplateInstantiation(copier, binding, args);
tmContainerExtImpl = (Class)ti.bindNamedElement(smContainerExtImpl);
}
@@ -441,7 +441,7 @@ public class ContainerTrafo extends AbstractContainerTrafo {
throw new TransformationException(Messages.ContainerTrafo_RecursiveLWnotSupported);
}
else {
- containerTrafo = new ContainerTrafo(copy, tmCDP, null);
+ containerTrafo = new ContainerTrafo(copier, tmCDP, null);
}
containerTrafo.createContainer(smContainerExtImpl, tmContainerExtImpl);
}
@@ -463,8 +463,8 @@ public class ContainerTrafo extends AbstractContainerTrafo {
// Copy.copyID(tmComponent, extensionPart, "a");
extensionPart.setAggregation(smExtensionPart.getAggregation());
- Copy.copyMultElemModifiers(smExtensionPart, extensionPart);
- Copy.copyFeatureModifiers(smExtensionPart, extensionPart);
+ LazyCopier.copyMultElemModifiers(smExtensionPart, extensionPart);
+ LazyCopier.copyFeatureModifiers(smExtensionPart, extensionPart);
return extensionPart;
}
@@ -547,7 +547,7 @@ public class ContainerTrafo extends AbstractContainerTrafo {
Object[] args = new Object[]{ executorIS, port };
TransformationContext.instance = executorIS;
TransformationContext.port = port;
- connectorPart = ConnectorReification.reifyConnector(copy, tmContainerImpl, UMLTool.varName(interceptionConnector), interceptionConnector, executorIS, args);
+ connectorPart = ConnectorReification.reifyConnector(copier, tmContainerImpl, UMLTool.varName(interceptionConnector), interceptionConnector, executorIS, args);
connectorParts.add(connectorPart);
TransformationContext.port = null;
portInfo.put(connectorPart, port);
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 a1e27391ee8..117c7e86d26 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
@@ -27,7 +27,6 @@ import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.papyrus.FCM.Configuration;
-import org.eclipse.papyrus.FCM.DeploymentPlan;
import org.eclipse.papyrus.FCM.util.MapUtil;
import org.eclipse.papyrus.acceleo.AcceleoDriver;
import org.eclipse.papyrus.qompass.designer.core.Log;
@@ -47,31 +46,25 @@ 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;
-import org.eclipse.papyrus.qompass.designer.core.templates.InstantiateCppIncludeWOB;
-import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FilterComments;
import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FilterRuleApplication;
import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FilterStateMachines;
import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FilterTemplate;
-import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.uml2.uml.Classifier;
-import org.eclipse.uml2.uml.Element;
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;
/**
* This class executes all transformations during the instantiation of a
- * deployment plan, i.e.
- * 1. The reification of connectors (including template instantiation). This transformation targets a new model
- * 2. Adding get_p/connect_q operations to a class (transformation within same model)
- * 3. Remove all component types
- * 4. distribute to nodes
+ * deployment plan, i.e. 1. The reification of connectors (including template
+ * instantiation). This transformation targets a new model 2. Adding
+ * get_p/connect_q operations to a class (transformation within same model) 3.
+ * Remove all component types 4. distribute to nodes
*
* @author ansgar
*
@@ -79,302 +72,414 @@ import org.eclipse.uml2.uml.util.UMLUtil;
public class InstantiateDepPlan {
/**
- * The location of the temporary model (relative to current project).
- * TODO: make configurable?
+ * The location of the temporary model (relative to current project). TODO:
+ * make configurable?
*/
public static final String TEMP_MODEL_FOLDER = "tmpModel"; //$NON-NLS-1$
-
+
/**
* Postfix of the temporary model (prefix = name of top-level package).
* TODO: make configurable?
*/
public static final String TEMP_MODEL_POSTFIX = "Tmp.uml"; //$NON-NLS-1$
-
-
+
/**
- * Instantiate a deployment plan, i.e. generate an intermediate model via a sequence of transformations
- *
- * @param cdpOrConfig a deployment plan (UML package) or a configuration (UML class)
- * @param monitor a progress monitor.
-
- * @param project the current project. This information is used to store the intermediate model in
- * a subfolder (tmpModel) of the current project
- * @param genOptions select whether to produce an intermediate model only, also code, ... @see GenerationOptions
+ * Progress monitor of Eclipse.
*/
- public static void instantiate(Element cdpOrConfig, IProgressMonitor monitor, IProject project, int genOptions) {
- boolean OOmodel = true;
- if(project == null) {
- String projectName = cdpOrConfig.eResource().getURI().toString();
- project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
+ protected IProgressMonitor monitor = null;
+
+ protected int generationOptions;
+
+ protected boolean generateCode;
+
+ protected boolean generateCACOnly;
+
+ protected Package srcModelComponentDeploymentPlan = null;
+
+ protected Configuration configuration = null;
+
+ protected IProject project;
+
+ protected boolean modelIsObjectOriented = true;
+
+ public void instantiate(Configuration configuration,
+ IProgressMonitor monitor, IProject project, int genOptions) {
+ this.configuration = configuration;
+ srcModelComponentDeploymentPlan = configuration
+ .getDeploymentPlan().getBase_Package();
+ //
+ if (srcModelComponentDeploymentPlan == null) {
+ String message = String
+ .format(Messages.InstantiateDepPlan_DepPlanStereotypeNotInitialized,
+ configuration.getBase_Class().getName());
+ displayError(Messages.InstantiateDepPlan_TransformationException,
+ message);
}
- Model tmpModel = null;
- ModelManagement tmpMM = null;
-
- boolean generateCode = (genOptions & GenerationOptions.MODEL_ONLY) == 0;
- boolean generateCACOnly = (genOptions & GenerationOptions.CAC_ONLY) != 0;
-
- AcceleoDriver.clearErrors();
- Package smCDP;
- Configuration configuration = null;
- if(cdpOrConfig instanceof Package) {
- smCDP = (Package)cdpOrConfig;
- RuleManagement.setConfiguration(null);
+
+ this.project = project;
+ if (project == null) {
+ String projectName = configuration.getBase_Class().eResource()
+ .getURI().toString();
+ this.project = ResourcesPlugin.getWorkspace().getRoot()
+ .getProject(projectName);
}
- else if(StereotypeUtil.isApplied(cdpOrConfig, Configuration.class)) {
- configuration = UMLUtil.getStereotypeApplication(cdpOrConfig, Configuration.class);
- DeploymentPlan fcmCDP = configuration.getDeploymentPlan();
- if(fcmCDP == null) {
- final NamedElement config = (NamedElement)cdpOrConfig;
- Display.getDefault().syncExec(new Runnable() {
-
- public void run() {
- Shell shell = new Shell();
- MessageDialog.openError(shell, Messages.InstantiateDepPlan_CannotGenModel,
- String.format(Messages.InstantiateDepPlan_DepPlanStereotypeNotInitialized, config.getName()));
- }
- });
- return;
- }
- smCDP = fcmCDP.getBase_Package();
- RuleManagement.setConfiguration(configuration);
- } else {
- return;
+ //
+ instantiate(monitor, genOptions);
+ }
+
+ public void instantiate(Package pkg, IProgressMonitor monitor,
+ IProject project, int genOptions) {
+ configuration = null;
+ srcModelComponentDeploymentPlan = pkg;
+ //
+ this.project = project;
+ if (project == null) {
+ String projectName = pkg.eResource().getURI().toString();
+ this.project = ResourcesPlugin.getWorkspace().getRoot()
+ .getProject(projectName);
}
+ //
+ instantiate(monitor, genOptions);
+ }
+
+ /**
+ * Instantiate a deployment plan, i.e. generate an intermediate model via a
+ * sequence of transformations
+ *
+ * @param umlElement
+ * a deployment plan (UML package) or a configuration (UML class)
+ * @param monitor
+ * a progress monitor.
+ *
+ * @param project
+ * the current project. This information is used to store the
+ * intermediate model in a subfolder (tmpModel) of the current
+ * project
+ * @param genOptions
+ * select whether to produce an intermediate model only, also
+ * code, ... @see GenerationOptions
+ */
+ private void instantiate(IProgressMonitor monitor, int genOptions) {
try {
- EnumService.init();
- InstanceSpecification rootIS = DepUtils.getMainInstance(smCDP);
- // Package copyCDP = dt.getCopyCDT (selectedCDP);
-
- EList<InstanceSpecification> nodes = AllocUtils.getAllNodes(rootIS);
-
- // -- calc # of steps for progress monitor
- // 1 (tmpModel creation) + 1 (reification) + 1 (tmpModel save)
- // 5x on each deployed node (see below)
- // problem? Connector reification is a single, relatively long step
- int steps = 3;
- steps += 5 * nodes.size();
- if(generateCode) {
- steps += nodes.size();
- }
- monitor.beginTask(Messages.InstantiateDepPlan_InfoGeneratingModel, steps);
- if(monitor.isCanceled()) {
- return;
- }
+ initialize(monitor, genOptions);
+ AcceleoDriver.clearErrors();
+ executeTransformation();
+ } catch (AcceleoException e) {
+ displayError(Messages.InstantiateDepPlan_AcceleoErrors,
+ Messages.InstantiateDepPlan_AcceleoErrorsCheckLog);
+ } catch (final TransformationException e) {
+ printAndDisplayErrorMessage(e,
+ Messages.InstantiateDepPlan_TransformationException, false);
+ } catch (final Exception e) {
+ printAndDisplayErrorMessage(e,
+ Messages.InstantiateDepPlan_ErrorsDuringTransformation,
+ true);
+ }
+ }
- // 1a: create a new model (and applies same profiles / imports)
- Model existingModel = smCDP.getModel();
- TransformationContext.sourceRoot = existingModel;
- tmpMM = createTargetModel(existingModel, monitor, existingModel.getName(), true);
- tmpModel = tmpMM.getModel();
- // Declare that the new model is a derivedElement (kind of hack, since the source
- // element (attribute of derive element) remains undefined). This is used to
- // de-activate automatic transformations that should not be applied to the generated
- // model.
- monitor.worked(1);
- if(monitor.isCanceled()) {
- return;
- }
+ private void initialize(IProgressMonitor monitor, int genOptions)
+ throws TransformationException {
+ this.monitor = monitor;
+ this.generationOptions = genOptions;
+ this.generateCode = (genOptions & GenerationOptions.MODEL_ONLY) == 0;
+ this.generateCACOnly = (genOptions & GenerationOptions.CAC_ONLY) != 0;
- // LateEval.clear();
+ RuleManagement.setConfiguration(configuration);
+ }
- EnumService.createEnumPackage(tmpModel);
+ protected void executeTransformation() throws Exception {
+ modelIsObjectOriented = true;
+ ModelManagement intermediateModelManagement = null;
+
+ InstanceSpecification mainInstance = DepUtils
+ .getMainInstance(srcModelComponentDeploymentPlan);
+ EList<InstanceSpecification> nodes = AllocUtils
+ .getAllNodes(mainInstance);
+
+ initiateProgressMonitor(generateCode, nodes);
+
+ // --------------------------------------------------------------------
+ checkProgressStatus();
+ // --------------------------------------------------------------------
+
+ // 1a: create a new model (and applies same profiles / imports)
+ Model existingModel = srcModelComponentDeploymentPlan.getModel();
+ TransformationContext.sourceRoot = existingModel;
+
+ intermediateModelManagement = createTargetModel(existingModel,
+ existingModel.getName(), true);
+
+ // Declare that the new model is a derivedElement (kind of hack,
+ // since the source element (attribute of derive element) remains
+ // undefined). This is used to deactivate automatic transformations
+ // that should not be applied to the generated model.
+
+ // --------------------------------------------------------------------
+ checkProgressStatus();
+ // --------------------------------------------------------------------
+
+ // get the temporary model
+ Model intermediateModel = intermediateModelManagement.getModel();
+
+ // create a package for global enumerations that are used by Acceleo code
+ EnumService.createEnumPackage(intermediateModel);
+
+ // create a lazy copier towards the intermediate model
+ LazyCopier intermediateModelCopier = new LazyCopier(existingModel, intermediateModel, false, true);
+ // add pre-copy and post-copy listeners to the copier
+ intermediateModelCopier.preCopyListeners.add(FilterTemplate.getInstance());
+
+ // 1b: reify the connectors "into" the new model
+ monitor.subTask(Messages.InstantiateDepPlan_InfoExpandingConnectors);
+
+ // obtain the component deployment plan in target model
+ Package intermediateModelComponentDeploymentPlan = (Package) intermediateModelCopier
+ .shallowCopy(srcModelComponentDeploymentPlan);
+ intermediateModelCopier.createShallowContainer(srcModelComponentDeploymentPlan);
+
+ ContainerTrafo.init();
+ InstanceConfigurator.onNodeModel = false;
+ MainModelTrafo mainModelTrafo = new MainModelTrafo(intermediateModelCopier,
+ intermediateModelComponentDeploymentPlan);
+ InstanceSpecification newMainInstance = mainModelTrafo
+ .transformInstance(mainInstance, null);
+
+ // --------------------------------------------------------------------
+ checkProgressStatus();
+ // --------------------------------------------------------------------
+
+ TransformationUtil.applyInstanceConfigurators(newMainInstance);
+
+ FlattenInteractionComponents.getInstance().flattenAssembly(
+ newMainInstance, null);
+
+ TransformationUtil.propagateAllocation(newMainInstance);
+
+ intermediateModelManagement.saveModel(project, TEMP_MODEL_FOLDER,
+ TEMP_MODEL_POSTFIX);
+
+ // --------------------------------------------------------------------
+ checkProgressStatus();
+ // --------------------------------------------------------------------
+
+ if (!generateCACOnly) {
+ deployOnNodes(mainInstance, existingModel, intermediateModel,
+ newMainInstance);
+ }
- Copy tmpCopy = new Copy(existingModel, tmpModel, false);
- tmpCopy.preCopyListeners.add(FilterTemplate.getInstance());
- tmpCopy.preCopyListeners.add(FilterComments.getInstance());
- tmpCopy.postCopyListeners.add(InstantiateCppIncludeWOB.getInstance());
+ intermediateModelManagement.dispose();
- Copy.copyID(existingModel, tmpModel);
+ if (AcceleoDriver.hasErrors()) {
+ throw new AcceleoException();
+ }
- // 1b: reify the connectors "into" the new model
- monitor.subTask(Messages.InstantiateDepPlan_InfoExpandingConnectors);
+ }
+
+ private void deployOnNodes(InstanceSpecification mainInstance,
+ Model existingModel, Model tmpModel, InstanceSpecification newRootIS)
+ throws TransformationException, InterruptedException {
- // obtain reference to CDP in target model
- //
- tmpCopy.createShallowContainer(rootIS);
- Package tmCDP = (Package)tmpCopy.get(smCDP);
+ // not deploy on each node
+ DepCreation.initAutoValues(newRootIS);
- ContainerTrafo.init();
- InstanceConfigurator.onNodeModel = false;
- MainModelTrafo mainModelTrafo = new MainModelTrafo(tmpCopy, tmCDP);
- InstanceSpecification newRootIS = mainModelTrafo.transformInstance(rootIS, null);
- monitor.worked(1);
+ EList<InstanceSpecification> nodes = AllocUtils.getAllNodes(newRootIS);
+ if (nodes.size() > 0) {
+ InstanceConfigurator.onNodeModel = true;
+ for (int nodeIndex = 0; nodeIndex < nodes.size(); nodeIndex++) {
+ InstanceSpecification node = nodes.get(nodeIndex);
- // 1c: late bindings
- // LateEval.bindLateOperations();
- // 3: distribute to nodes
+ deployNode(mainInstance, existingModel, tmpModel, newRootIS,
+ nodes, nodeIndex, node);
+ }
+ } else {
+ throw new TransformationException(
+ Messages.InstantiateDepPlan_InfoNoneAllocated);
+ }
+ }
- // UpdateDerivedInterfaces.updateIntfs(newRootIS);
-
- ApplyInstanceConfigurators.applyInstanceConfigurators(newRootIS);
+ private void deployNode(InstanceSpecification mainInstance,
+ Model existingModel, Model tmpModel,
+ InstanceSpecification newRootIS,
+ EList<InstanceSpecification> nodes, int nodeIndex,
+ InstanceSpecification node) throws TransformationException,
+ InterruptedException {
+ ModelManagement genModelManagement = createTargetModel(existingModel,
+ MapUtil.rootModelName, false);
+ Model generatedModel = genModelManagement.getModel();
+
+ // --------------------------------------------------------------------
+ checkProgressStatus();
+ // --------------------------------------------------------------------
+
+ // new model has name "root" and contains a package with the
+ // existing model
+ // Package originalRoot = genModel.createNestedPackage
+ // (existingModel.getName ());
+ LazyCopier targetCopy = new LazyCopier(tmpModel, generatedModel, true, true);
+ // TODO: distribution to nodes is currently not done. How
+ // can it be realized with a copy filter ?
+ targetCopy.preCopyListeners.add(FilterStateMachines.getInstance());
+ targetCopy.preCopyListeners.add(FilterRuleApplication.getInstance());
+
+ monitor.setTaskName(String.format(
+ Messages.InstantiateDepPlan_InfoDeployingForNode,
+ node.getName()));
+
+ ILangSupport langSupport = configureLanguageSupport(mainInstance,
+ existingModel, node);
+
+ Deploy deployment = new Deploy(targetCopy, langSupport, node,
+ nodeIndex, nodes.size());
+ InstanceSpecification nodeRootIS = deployment
+ .distributeToNode(newRootIS);
+ TransformationUtil.updateDerivedInterfaces(nodeRootIS);
+
+ // --------------------------------------------------------------------
+ checkProgressStatus();
+ // --------------------------------------------------------------------
+
+ removeDerivedInterfacesInRoot(generatedModel);
+
+ CompImplTrafos.transform(
+ deployment.getBootloader(), targetCopy, generatedModel,
+ modelIsObjectOriented);
+
+ // --------------------------------------------------------------------
+ checkProgressStatus();
+ // --------------------------------------------------------------------
+
+ destroyDeploymentPlanFolder(generatedModel);
+
+ if (generateCode) {
+ GenerateCode codeGenerator = new GenerateCode(
+ langSupport.getProject(), langSupport, genModelManagement,
+ monitor);
+ boolean option = (generationOptions & GenerationOptions.ONLY_CHANGED) != 0;
+ codeGenerator.generate(node, getTargetLanguage(mainInstance),
+ option);
+ }
- FlattenInteractionComponents.getInstance().flattenAssembly(newRootIS, null);
-
- PropagateAllocationToSharedInstances.propagateAllocation(newRootIS);
-
- String tmpPath = tmpMM.getPath(project, TEMP_MODEL_FOLDER, tmpModel.getName() + TEMP_MODEL_POSTFIX);
- tmpMM.saveModel(tmpPath);
+ genModelManagement.dispose();
+ }
- if(monitor.isCanceled()) {
- return;
+ private ILangSupport configureLanguageSupport(
+ InstanceSpecification mainInstance, Model existingModel,
+ InstanceSpecification node) throws TransformationException {
+ ILangSupport langSupport = LanguageSupport
+ .getLangSupport(getTargetLanguage(mainInstance));
+ langSupport.resetConfigurationData();
+
+ String modelName = getModelName(existingModel, node);
+ IProject genProject = ProjectManagement.getNamedProject(modelName);
+ if ((genProject == null) || !genProject.exists()) {
+ genProject = langSupport.createProject(modelName, node);
+ } else {
+ langSupport.setProject(genProject);
+ if ((generationOptions & GenerationOptions.REWRITE_SETTINGS) != 0) {
+ langSupport.setSettings(node);
}
- monitor.worked(1);
+ }
+ return langSupport;
+ }
- if(!generateCACOnly) {
- // not deploy on each node
- DepCreation.initAutoValues(newRootIS);
+ private void destroyDeploymentPlanFolder(Model generatedModel) {
+ PackageableElement deploymentPlanFolder = generatedModel
+ .getPackagedElement(DeployConstants.depPlanFolderHw);
+ if (deploymentPlanFolder != null) {
+ deploymentPlanFolder.destroy();
+ }
+ }
- nodes = AllocUtils.getAllNodes(newRootIS);
- if(nodes.size() == 0) {
- throw new TransformationException(Messages.InstantiateDepPlan_InfoNoneAllocated);
+ private void removeDerivedInterfacesInRoot(Model generatedModel) {
+ // 2b: remove derived interfaces in root: derived interfaces
+ // that can not be placed in the same package as the port type (e.g.
+ // since read-only type from system library), are put in a top-level
+ // package called "derivedInterfaces". Due to the copying of imports,
+ // the top-level package has changed which implies that new derived
+ // interfaces are put into a different package and the derivedInterfaces
+ // package in the original root becomes obsolete. Delete this obsolete
+ // package, if existing.
+ for (PackageableElement packagedElement : generatedModel
+ .getPackagedElements()) {
+ if (packagedElement instanceof Package) {
+ NamedElement derivedInterfaces = ((Package) packagedElement)
+ .getPackagedElement("derivedInterfaces"); //$NON-NLS-1$
+ if (derivedInterfaces instanceof Package) {
+ derivedInterfaces.destroy();
}
- int nodeIndex = 0;
- Classifier cl = DepUtils.getClassifier(rootIS);
- String targetLanguage = DepUtils.getLanguageFromPackage(cl.getNearestPackage());
- 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) {
- modelName += "_" + configuration.getBase_Class().getName(); //$NON-NLS-1$
- } else {
- modelName += "_" + smCDP.getName(); //$NON-NLS-1$
- }
- ModelManagement genMM = createTargetModel(existingModel, monitor, MapUtil.rootModelName, false);
- Model genModel = genMM.getModel();
-
- if(monitor.isCanceled()) {
- return;
- }
- monitor.worked(1);
- // new model has name "root" and contains a package with the
- // existing model
- // Package originalRoot = genModel.createNestedPackage
- // (existingModel.getName ());
- Copy targetCopy = new Copy(tmpModel, genModel, true);
- // TODO: distribution to nodes is currently not done. How can it be realized with a copy filter ?
- targetCopy.preCopyListeners.add(FilterStateMachines.getInstance());
- targetCopy.preCopyListeners.add(FilterRuleApplication.getInstance());
- targetCopy.postCopyListeners.add(InstantiateCppIncludeWOB.getInstance());
-
- monitor.setTaskName(String.format(Messages.InstantiateDepPlan_InfoDeployingForNode, node.getName()));
- ILangSupport langSupport = LanguageSupport.getLangSupport(targetLanguage);
- langSupport.resetConfigurationData();
-
- Deploy deploy = new Deploy(targetCopy, langSupport, node, nodeIndex, nodes.size());
- InstanceSpecification nodeRootIS = deploy.distributeToNode(newRootIS);
- UpdateDerivedInterfaces.updateIntfs(nodeRootIS);
-
- if(monitor.isCanceled()) {
- return;
- }
- monitor.worked(1);
- // 2b: remove derived interfaces in root: derived interfaces that can
- // not be placed in the same package as the port type (e.g. since read-only
- // type from system library), are put in a top-level package called "derivedInterfaces".
- // Due to the copying of imports, the top-level package has changed which implies that new
- // derived interfaces are put into a different package and the derivedInterfaces package in
- // the original root becomes obsolete. Delete this obsolete package, if existing.
- for (PackageableElement pe : genModel.getPackagedElements()) {
- if (pe instanceof Package) {
- NamedElement derivedInterfaces = ((Package) pe).getPackagedElement("derivedInterfaces"); //$NON-NLS-1$
- if(derivedInterfaces instanceof Package) {
- derivedInterfaces.destroy();
- }
- }
- }
- // 2c: add get_p/connect_q operations
- // caveat: may modify imported classes
- CompImplTrafos.bootloader = deploy.getBootloader();
- CompImplTrafos.addPortOperations(targetCopy, genModel);
-
- if(OOmodel) {
- // 3: component -> OO transformations related to ports:
- // complete port access operations
- // (get<PortName>/connect<PortName> and
- // remove the ports afterwards
- CompTypeTrafos.completeAccessOps(genModel);
- CompTypeTrafos.removePorts(genModel);
- }
-
- // 4: remove connectors from implementations, since their endpoint's roles
- // have disappeared during step 4b (targeted ports have been
- // deleted together with the types).
- CompImplTrafos.deleteConnectors(genModel);
- if(monitor.isCanceled()) {
- return;
- }
- 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);
- }
- else {
- langSupport.setProject(genProject);
- if((genOptions & GenerationOptions.REWRITE_SETTINGS) != 0) {
- langSupport.setSettings(node);
- }
- }
+ private String getModelName(Model existingModel, InstanceSpecification node) {
+ String modelName = existingModel.getName() + "_" + node.getName(); //$NON-NLS-1$
+ if (configuration != null) {
+ modelName += "_" + configuration.getBase_Class().getName(); //$NON-NLS-1$
+ } else {
+ modelName += "_" + srcModelComponentDeploymentPlan.getName(); //$NON-NLS-1$
+ }
+ return modelName;
+ }
-
- if(generateCode) {
- GenerateCode codeGen = new GenerateCode(genProject, langSupport, genMM, monitor);
- codeGen.generate(node, targetLanguage, (genOptions & GenerationOptions.ONLY_CHANGED) != 0);
- }
+ private String getTargetLanguage(InstanceSpecification mainInstance) {
+ Classifier cl = DepUtils.getClassifier(mainInstance);
+ String targetLanguage = DepUtils.getLanguageFromPackage(cl
+ .getNearestPackage());
+ if (targetLanguage == null) {
+ targetLanguage = "C++"; //$NON-NLS-1$
+ }
+ return targetLanguage;
+ }
- nodeIndex++;
- genMM.dispose();
- }
- }
- } catch (TransformationException te) {
- // Get UI thread to show dialog
- final TransformationException teFinal = te;
- Display.getDefault().syncExec(new Runnable() {
-
- public void run() {
- Shell shell = new Shell();
- MessageDialog.openError(shell, Messages.InstantiateDepPlan_TransformationException, teFinal.getMessage());
- }
- });
- Log.log(Status.ERROR, Log.DEPLOYMENT, "", teFinal); //$NON-NLS-1$
- } catch (Exception e) {
- final Exception eFinal = e;
- e.printStackTrace();
- Display.getDefault().syncExec(new Runnable() {
-
- public void run() {
- Shell shell = new Shell();
- String msg = eFinal.toString() + "\n\n" + //$NON-NLS-1$
- Messages.InstantiateDepPlan_ConsultConsole;
- MessageDialog.openError(shell, Messages.InstantiateDepPlan_ErrorsDuringTransformation, msg);
- }
- });
- Log.log(Status.ERROR, Log.DEPLOYMENT, "", e); //$NON-NLS-1$
+ private void initiateProgressMonitor(boolean generateCode,
+ EList<InstanceSpecification> nodes) {
+ // -- calc # of steps for progress monitor
+ // 1 (tmpModel creation) + 1 (reification) + 1 (tmpModel save)
+ // 5x on each deployed node (see below)
+ // problem? Connector reification is a single, relatively long step
+ int steps = 3;
+ steps += 5 * nodes.size();
+ if (generateCode) {
+ steps += nodes.size();
}
- if(tmpMM != null) {
- tmpMM.dispose();
+ monitor.beginTask(Messages.InstantiateDepPlan_InfoGeneratingModel,
+ steps);
+ }
+
+ private void checkProgressStatus() throws InterruptedException {
+ if (monitor.isCanceled()) {
+ throw new InterruptedException();
}
- if (AcceleoDriver.hasErrors()) {
- Display.getDefault().syncExec(new Runnable() {
- public void run() {
- Shell shell = new Shell();
- MessageDialog.openInformation(shell, Messages.InstantiateDepPlan_AcceleoErrors,
- Messages.InstantiateDepPlan_AcceleoErrorsCheckLog);
- }
- });
+ monitor.worked(1);
+ }
+
+ private void printAndDisplayErrorMessage(Exception e, final String title,
+ final boolean consultConsole) {
+ String message = e.toString(); //$NON-NLS-1$
+ if (consultConsole) {
+ message = message + "\n\n"
+ + Messages.InstantiateDepPlan_ConsultConsole;
}
+ printAndDisplayErrorMessage(e, title, message, consultConsole);
}
+ private void printAndDisplayErrorMessage(Exception e, final String title,
+ final String message, final boolean consultConsole) {
+ e.printStackTrace();
+ displayError(title, message);
+ Log.log(Status.ERROR, Log.DEPLOYMENT, "", e); //$NON-NLS-1$
+ }
+
+ private void displayError(final String title, final String message) {
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ Shell shell = new Shell();
+ MessageDialog.openInformation(shell, title, message);
+ }
+ });
+ }
/**
* Create a new empty model from an existing model that applies the same
@@ -383,83 +488,110 @@ public class InstantiateDepPlan {
* @param existingModel
* @return
*/
- public static ModelManagement createTargetModel(Model existingModel, IProgressMonitor monitor, String name, boolean copyImports) throws TransformationException {
+ public ModelManagement createTargetModel(Model existingModel, String name,
+ boolean copyImports) throws TransformationException {
ModelManagement mm = new ModelManagement();
Model newModel = mm.getModel();
newModel.setName(name);
try {
// copy profile application
- for(Profile profile : existingModel.getAppliedProfiles()) {
+ for (Profile profile : existingModel.getAppliedProfiles()) {
// reload profile in resource of new model
- monitor.subTask(Messages.InstantiateDepPlan_InfoApplyProfile + profile.getQualifiedName());
+ monitor.subTask(Messages.InstantiateDepPlan_InfoApplyProfile
+ + profile.getQualifiedName());
- if(profile.eResource() == null) {
+ if (profile.eResource() == null) {
String profileName = profile.getQualifiedName();
- if(profileName == null) {
- if(profile instanceof MinimalEObjectImpl.Container) {
- URI uri = ((MinimalEObjectImpl.Container)profile).eProxyURI();
- if(uri != null) {
- throw new TransformationException(String.format(Messages.InstantiateDepPlan_CheckInputModelProfileNoRes, uri));
+ if (profileName == null) {
+ if (profile instanceof MinimalEObjectImpl.Container) {
+ URI uri = ((MinimalEObjectImpl.Container) profile)
+ .eProxyURI();
+ if (uri != null) {
+ throw new TransformationException(
+ String.format(
+ Messages.InstantiateDepPlan_CheckInputModelProfileNoRes,
+ uri));
}
}
- throw new TransformationException(Messages.InstantiateDepPlan_CheckInputModelProfileNoResNoName);
+ throw new TransformationException(
+ Messages.InstantiateDepPlan_CheckInputModelProfileNoResNoName);
}
- throw new TransformationException(String.format(Messages.InstantiateDepPlan_CheckInputModelProfile3, profileName));
+ throw new TransformationException(
+ String.format(
+ Messages.InstantiateDepPlan_CheckInputModelProfile3,
+ profileName));
}
Resource profileResource = null;
try {
- profileResource = ModelManagement.getResourceSet().getResource(profile.eResource().getURI(), true);
+ profileResource = ModelManagement.getResourceSet()
+ .getResource(profile.eResource().getURI(), true);
} catch (WrappedException e) {
- // read 2nd time (some diagnostic errors are raised only once)
- Log.log(Status.WARNING, Log.DEPLOYMENT, "Warning: exception in profile.eResource() " + e.getMessage()); //$NON-NLS-1$
- profileResource = ModelManagement.getResourceSet().getResource(profile.eResource().getURI(), true);
+ // read 2nd time (some diagnostic errors are raised only
+ // once)
+ Log.log(Status.WARNING,
+ Log.DEPLOYMENT,
+ "Warning: exception in profile.eResource() " + e.getMessage()); //$NON-NLS-1$
+ profileResource = ModelManagement.getResourceSet()
+ .getResource(profile.eResource().getURI(), true);
}
- Profile newProfileTop = (Profile)profileResource.getContents().get(0);
+ Profile newProfileTop = (Profile) profileResource.getContents()
+ .get(0);
Profile newProfile;
String qname = profile.getQualifiedName();
- if((qname != null) && qname.contains("::")) { //$NON-NLS-1$
+ if ((qname != null) && qname.contains("::")) { //$NON-NLS-1$
// profile is a sub-profile within same resource
// TODO: should Copy class copy profile applications?
// Should be handled in shallowContainer class.
- // if we put profile/newProfile pair into copy map, copy would find (and copy profile
+ // if we put profile/newProfile pair into copy map, copy
+ // would find (and copy profile
// applications in sub-folders
qname = qname.substring(qname.indexOf("::") + 2); //$NON-NLS-1$
- newProfile = (Profile)Utils.getQualifiedElement(newProfileTop, qname);
- }
- else {
+ newProfile = (Profile) Utils.getQualifiedElement(
+ newProfileTop, qname);
+ } else {
newProfile = newProfileTop;
}
newProfile.getMember("dummy"); // force profile loading //$NON-NLS-1$
newModel.applyProfile(newProfile);
}
} catch (IllegalArgumentException e) {
- throw new TransformationException(Messages.InstantiateDepPlan_IllegalArgumentDuringCopy + e.toString());
+ throw new TransformationException(
+ Messages.InstantiateDepPlan_IllegalArgumentDuringCopy
+ + e.toString());
}
- // copy imports (and load resources associated - TODO: might not be necessary)
- // While this is useful in general, it implies that code for imported models
- // has been generated and compiled (for the right target) into a library. This may be
+ // copy imports (and load resources associated - TODO: might not be
+ // necessary)
+ // While this is useful in general, it implies that code for imported
+ // models
+ // has been generated and compiled (for the right target) into a
+ // library. This may be
// quite tedious, unless automatically managed.
- // Therefore we do not activate this option in a first pass of the model transformations.
- if(copyImports) {
- for(Package importedPackage : existingModel.getImportedPackages()) {
- if(importedPackage == null) {
- throw new TransformationException(Messages.InstantiateDepPlan_CheckInputImportPkg);
+ // Therefore we do not activate this option in a first pass of the model
+ // transformations.
+ if (copyImports) {
+ for (Package importedPackage : existingModel.getImportedPackages()) {
+ if (importedPackage == null) {
+ throw new TransformationException(
+ Messages.InstantiateDepPlan_CheckInputImportPkg);
}
- if(importedPackage.eResource() == null) {
+ if (importedPackage.eResource() == null) {
String errorMsg = Messages.InstantiateDepPlan_CheckInputImportPkgNoRes;
- if(importedPackage instanceof MinimalEObjectImpl.Container) {
- URI uri = ((MinimalEObjectImpl.Container)importedPackage).eProxyURI();
- if(uri != null) {
+ if (importedPackage instanceof MinimalEObjectImpl.Container) {
+ URI uri = ((MinimalEObjectImpl.Container) importedPackage)
+ .eProxyURI();
+ if (uri != null) {
errorMsg += " - URI: " + uri.devicePath(); //$NON-NLS-1$
}
}
throw new TransformationException(errorMsg);
}
newModel.createPackageImport(importedPackage);
- monitor.subTask(String.format(Messages.InstantiateDepPlan_InfoImportPackage, importedPackage.getName()));
+ monitor.subTask(String.format(
+ Messages.InstantiateDepPlan_InfoImportPackage,
+ importedPackage.getName()));
try {
importedPackage.eResource().load(null);
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 75b169e87ab..46c96e53786 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
@@ -74,8 +74,8 @@ public class LWContainerTrafo extends AbstractContainerTrafo {
* @param tmCDP
* deployment plan within target model
*/
- public LWContainerTrafo(Copy copy, Package tmCDP) {
- this.copy = copy;
+ public LWContainerTrafo(LazyCopier copy, Package tmCDP) {
+ this.copier = copy;
this.tmCDP = tmCDP;
interceptionOpMap = new HashMap<Operation, Operation>();
}
@@ -224,9 +224,9 @@ public class LWContainerTrafo extends AbstractContainerTrafo {
Property extensionPart =
expandAggregationExtension(part.getName(), extOrInterceptor, tmComponent);
// register relation to facilitate connector copy
- copy.setPackageTemplate(smContainerRule.getBase_Class(), tmClass);
- copy.put(part, extensionPart);
- copy.setPackageTemplate(null, null);
+ copier.setPackageTemplate(smContainerRule.getBase_Class(), tmClass);
+ copier.put(part, extensionPart);
+ copier.setPackageTemplate(null, null);
}
}
else {
@@ -271,13 +271,13 @@ public class LWContainerTrafo extends AbstractContainerTrafo {
TemplateSignature signature = TemplateUtils.getSignature(smContainerExtImpl);
if(signature == null) {
// no template signature, just copy the container extension into the target model
- tmContainerExtImpl = copy.getCopy(smContainerExtImpl);
+ tmContainerExtImpl = copier.getCopy(smContainerExtImpl);
} else {
// template signature found, instantiate container extension via the
// template binding mechanism
- TemplateBinding binding = TemplateUtils.fixedBinding(copy.target, smContainerExtImpl, tmComponent);
+ TemplateBinding binding = TemplateUtils.fixedBinding(copier.target, smContainerExtImpl, tmComponent);
Object[] args = new Object[]{};
- TemplateInstantiation ti = new TemplateInstantiation(copy, binding, args);
+ TemplateInstantiation ti = new TemplateInstantiation(copier, binding, args);
tmContainerExtImpl = (Class)ti.bindNamedElement(smContainerExtImpl);
}
@@ -293,7 +293,7 @@ public class LWContainerTrafo extends AbstractContainerTrafo {
throws TransformationException
{
for(Operation smOperation : operations) {
- Operation tmOperation = copy.getCopy(smOperation);
+ Operation tmOperation = copier.getCopy(smOperation);
String interceptionBody = ""; //$NON-NLS-1$
for(Behavior behavior : interceptionOperationInRule.getMethods()) {
if(behavior instanceof OpaqueBehavior) {
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/LazyCopier.java
index b930350bf66..f47eacbdbaa 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/LazyCopier.java
@@ -33,7 +33,8 @@ import org.eclipse.emf.ecore.util.EcoreUtil.Copier;
import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.emf.ecore.xmi.XMLResource;
import org.eclipse.papyrus.qompass.designer.core.Log;
-import org.eclipse.papyrus.qompass.designer.core.listeners.CopyListener;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PostCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
import org.eclipse.uml2.uml.Behavior;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Classifier;
@@ -75,10 +76,8 @@ import org.eclipse.uml2.uml.util.UMLUtil;
* A shallow copy can be transformed into a "real" copy
* by explicitly copying it.
*
- * @author ansgar
- *
*/
-public class Copy extends Copier {
+public class LazyCopier extends Copier {
public enum CopyStatus {
/**
@@ -106,13 +105,20 @@ public class Copy extends Copier {
SHALLOW
}
- public Copy(Package source_, Package target_, boolean copyExtResources_) {
- source = source_;
- target = target_;
+ /**
+ *
+ * @param source source package (root)
+ * @param target target package (root)
+ * @param copyExtResources_ copy elements that are not within the same resource instead of referencing them.
+ * @param copyID copyID true, if XML IDs should be copied as well.
+ */
+ public LazyCopier(Package source, Package target, boolean copyExtResources_, boolean copyID) {
+ this.source = source;
+ this.target = target;
// useOriginalReferences = false;
copyExtReferences = copyExtResources_;
- preCopyListeners = new BasicEList<CopyListener>();
- postCopyListeners = new BasicEList<CopyListener>();
+ preCopyListeners = new BasicEList<PreCopyListener>();
+ postCopyListeners = new BasicEList<PostCopyListener>();
templateMapInfo = new HashMap<EObject, Map<EObject, EObject>>();
standardMap = new HashMap<EObject, EObject>();
statusMap = new HashMap<EObject, CopyStatus>();
@@ -127,6 +133,10 @@ public class Copy extends Copier {
put(source, target);
setStatus(target, CopyStatus.SHALLOW);
}
+ this.copyID = copyID;
+ if (copyID) {
+ copyID(source, target);
+ }
};
/**
@@ -154,28 +164,30 @@ public class Copy extends Copier {
/**
* Bound package template
*/
- private Namespace boundPackage;
+ protected Namespace boundPackage;
/**
* Map to identify target objects when given source objects
*/
- private Map<EObject, EObject> standardMap;
+ protected Map<EObject, EObject> standardMap;
/**
* Map to identify target objects when given source objects
*/
- private Map<EObject, EObject> templateMap;
+ protected Map<EObject, EObject> templateMap;
/**
* Set of maps for template instantiations
*/
- private Map<EObject, Map<EObject, EObject>> templateMapInfo;
+ protected Map<EObject, Map<EObject, EObject>> templateMapInfo;
/**
* Map using a target EObject as key
*/
- private Map<EObject, CopyStatus> statusMap;
+ protected Map<EObject, CopyStatus> statusMap;
+ protected boolean copyID;
+
/**
* Elements within package templates must be treated differently, we have to ensure that:
* (1) several instantiations with same binding of the same package template do not lead to double copies
@@ -439,8 +451,8 @@ public class Copy extends Copier {
return sourceEObj;
}
- for(CopyListener listener : preCopyListeners) {
- EObject result = listener.copyEObject(this, sourceEObj);
+ for(PreCopyListener listener : preCopyListeners) {
+ EObject result = listener.preCopyEObject(this, sourceEObj);
if(result != sourceEObj) {
return result;
}
@@ -470,7 +482,9 @@ public class Copy extends Copier {
targetEObj = createCopy(sourceEObj);
put(sourceEObj, targetEObj);
setStatus(targetEObj, CopyStatus.INPROGRESS);
-
+ if (copyID) {
+ copyID(sourceEObj, targetEObj);
+ }
// creates a shallow copy of the container. This container will update containment references (such as packagedElement)
// and thus update links
createShallowContainer(sourceEObj);
@@ -507,17 +521,25 @@ public class Copy extends Copier {
}
}
}
+ else if ((eStructuralFeature instanceof EReference)) {
+ if (eStructuralFeature.getName().equals("clientDependency")) { //$NON-NLS-1$
+ Object feature = sourceEObj.eGet(eStructuralFeature);
+
+ if(feature instanceof Element) {
+ copy((Element)feature);
+ } else if(feature instanceof EList) {
+ copyAll((EList<Object>)feature);
+ }
+ }
+ }
}
copyProxyURI(sourceEObj, targetEObj);
copyID(sourceEObj, targetEObj);
copyStereotypes(sourceEObj);
setStatus(targetEObj, CopyStatus.FULL);
- for(CopyListener listener : postCopyListeners) {
- EObject result = listener.copyEObject(this, targetEObj);
- if(result != targetEObj) {
- return result;
- }
+ for(PostCopyListener listener : postCopyListeners) {
+ listener.postCopyEObject(this, targetEObj);
}
return targetEObj;
@@ -715,6 +737,9 @@ public class Copy extends Copier {
targetEObj = createCopy(sourceEObj);
put(sourceEObj, targetEObj);
setStatus(targetEObj, CopyStatus.SHALLOW);
+ if (copyID) {
+ copyID(sourceEObj, targetEObj);
+ }
first = true;
}
else if(getStatus(targetEObj) == CopyStatus.FULL) {
@@ -754,9 +779,9 @@ public class Copy extends Copier {
return (T)copy(source);
}
- public EList<CopyListener> preCopyListeners;
+ public EList<PreCopyListener> preCopyListeners;
- public EList<CopyListener> postCopyListeners;
+ public EList<PostCopyListener> postCopyListeners;
/**
* Called to handle the copying of a cross reference;
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 79dee8f8763..e5948f5117a 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
@@ -78,7 +78,7 @@ public class MainModelTrafo {
* @param tmCDP
* deployment plan in target model
*/
- public MainModelTrafo(Copy copy, Package tmCDP) {
+ public MainModelTrafo(LazyCopier copy, Package tmCDP) {
nodeHandled = new HashMap<InstanceSpecification, Boolean>();
this.copy = copy;
this.tmCDP = tmCDP;
@@ -463,7 +463,7 @@ public class MainModelTrafo {
/**
* Copier from source to target model
*/
- protected Copy copy;
+ protected LazyCopier copy;
/**
* deployment plan within target model
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/PropagateAllocationToSharedInstances.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/PropagateAllocationToSharedInstances.java
deleted file mode 100644
index cc34e630d6e..00000000000
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/PropagateAllocationToSharedInstances.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*****************************************************************************
- * 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.core.runtime.Status;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.UniqueEList;
-import org.eclipse.papyrus.qompass.designer.core.Log;
-import org.eclipse.papyrus.qompass.designer.core.deployment.AllocUtils;
-import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
-import org.eclipse.uml2.uml.InstanceSpecification;
-import org.eclipse.uml2.uml.Slot;
-
-
-/**
- * Propagate allocation to shared instances: if a class references another instance
- * via sharing, the shared instance must be allocated on the node of the referencing
- * class as well.
- *
- */
-public class PropagateAllocationToSharedInstances {
- public static void propagateAllocation(InstanceSpecification instance) {
- propagateAllocation(instance, new UniqueEList<InstanceSpecification>());
- }
-
- public static void propagateAllocation(InstanceSpecification instance, EList<InstanceSpecification> nodes) {
- // create copy of node (otherwise, more and more nodes get aggregated.
- UniqueEList<InstanceSpecification> nodesCopy = new UniqueEList<InstanceSpecification>();
- nodesCopy.addAll(nodes);
- nodesCopy.addAll(AllocUtils.getNodes(instance));
- for (Slot slot : instance.getSlots()) {
- InstanceSpecification subInstance = DepUtils.getInstance(slot);
- if (subInstance != null) {
- if (DepUtils.isShared(slot)) {
- for (InstanceSpecification node : nodesCopy) {
- Log.log(Status.INFO, Log.DEPLOYMENT, String.format("Propagate node allocation: %s to %s", subInstance.getName(), node.getName())); //$NON-NLS-1$
- AllocUtils.allocate(subInstance, node);
- }
- }
- else {
- propagateAllocation(subInstance, nodesCopy);
- }
- }
- }
- }
-}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TrafoAndCodegenPackage.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TrafoAndCodegenPackage.java
index 13592311d51..5d418127c0c 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TrafoAndCodegenPackage.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TrafoAndCodegenPackage.java
@@ -41,8 +41,6 @@ import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
import org.eclipse.papyrus.qompass.designer.core.extensions.ILangSupport;
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.templates.InstantiateCppIncludeWOB;
-import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FilterComments;
import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FilterTemplate;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
@@ -72,7 +70,7 @@ public class TrafoAndCodegenPackage {
* @param pkg
* @throws TransformationException
*/
- public static void applyTrafo(Copy copy, Package pkg) throws TransformationException {
+ public static void applyTrafo(LazyCopier copy, Package pkg) throws TransformationException {
EList<PackageableElement> peList = new BasicEList<PackageableElement>();
peList.addAll(pkg.getPackagedElements());
for(PackageableElement element : peList) {
@@ -168,14 +166,10 @@ public class TrafoAndCodegenPackage {
EnumService.createEnumPackage(tmpModel);
- Copy tmpCopy = new Copy(existingModel, tmpModel, false);
+ LazyCopier tmpCopy = new LazyCopier(existingModel, tmpModel, false, true);
tmpCopy.preCopyListeners.add(FilterTemplate.getInstance());
- tmpCopy.preCopyListeners.add(FilterComments.getInstance());
- tmpCopy.postCopyListeners.add(InstantiateCppIncludeWOB.getInstance());
- Copy.copyID(existingModel, tmpModel);
-
- // 1b: reify the connectors "into" the new model
+ // 1b: reify the connectors "into" the new model
monitor.subTask(Messages.InstantiateDepPlan_InfoExpandingConnectors);
// obtain reference to CDP in target model
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationUtil.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationUtil.java
new file mode 100644
index 00000000000..86b5e26e49a
--- /dev/null
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/TransformationUtil.java
@@ -0,0 +1,81 @@
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.UniqueEList;
+import org.eclipse.papyrus.qompass.designer.core.Log;
+import org.eclipse.papyrus.qompass.designer.core.deployment.AllocUtils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
+import org.eclipse.papyrus.qompass.designer.core.extensions.InstanceConfigurator;
+import org.eclipse.papyrus.qompass.designer.core.sync.CompImplSync;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+
+public class TransformationUtil {
+ 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);
+ }
+ }
+ }
+
+ public static void propagateAllocation(InstanceSpecification instance) {
+ propagateAllocation(instance, new UniqueEList<InstanceSpecification>());
+ }
+
+ public static void propagateAllocation(InstanceSpecification instance, EList<InstanceSpecification> nodes) {
+ // create copy of node (otherwise, more and more nodes get aggregated.
+ UniqueEList<InstanceSpecification> nodesCopy = new UniqueEList<InstanceSpecification>();
+ nodesCopy.addAll(nodes);
+ nodesCopy.addAll(AllocUtils.getNodes(instance));
+ for (Slot slot : instance.getSlots()) {
+ InstanceSpecification subInstance = DepUtils.getInstance(slot);
+ if (subInstance != null) {
+ if (DepUtils.isShared(slot)) {
+ for (InstanceSpecification node : nodesCopy) {
+ Log.log(Status.INFO, Log.DEPLOYMENT, String.format("Propagate node allocation: %s to %s", subInstance.getName(), node.getName())); //$NON-NLS-1$
+ AllocUtils.allocate(subInstance, node);
+ }
+ }
+ else {
+ propagateAllocation(subInstance, nodesCopy);
+ }
+ }
+ }
+ }
+
+ /**
+ * Update derived interfaces of ports. This is required, since the Copier does not follow references
+ * that are referenced via a derived attribute. Derived attributes are used for provided and required
+ * interfaces in the stereotype attributes of an FCM port. Thus, required (derived) interfaces would be
+ * unavailable in the copy, if not explicitly updated.
+ * However, the provided interface is not concerned as it appears in an "implements" relation. If the
+ * port is connected, the used interface of one port is the provided interface of the port counter part.
+ * Thus, the explicit update done by this function is not needed in most cases.
+ *
+ * see also FixTemplateSync (remove the latter?)
+ */
+ public static void updateDerivedInterfaces(InstanceSpecification instance) {
+ Classifier cl = DepUtils.getClassifier(instance);
+ if (cl instanceof Class) {
+ Class implementation = (Class) cl;
+ CompImplSync.updatePorts(implementation);
+ CompImplSync.syncRealizations(implementation);
+ }
+ for (Slot slot : instance.getSlots()) {
+ InstanceSpecification subInstance = DepUtils.getInstance(slot);
+ if (!DepUtils.isShared(slot) && (subInstance != null)) {
+ updateDerivedInterfaces(subInstance);
+ }
+ }
+ }
+
+}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/UpdateDerivedInterfaces.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/UpdateDerivedInterfaces.java
deleted file mode 100644
index 1bec8c88131..00000000000
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/UpdateDerivedInterfaces.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*****************************************************************************
- * 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.sync.CompImplSync;
-import org.eclipse.uml2.uml.Class;
-import org.eclipse.uml2.uml.Classifier;
-import org.eclipse.uml2.uml.InstanceSpecification;
-import org.eclipse.uml2.uml.Slot;
-
-
-/**
- * Update derived interfaces of ports. This is required, since the Copier does not follow references
- * that are referenced via a derived attribute. Derived attributes are used for provided and required
- * interfaces in the stereotype attributes of an FCM port. Thus, required (derived) interfaces would be
- * unavailable in the copy, if not explicitly updated.
- * However, the provided interface is not concerned as it appears in an "implements" relation. If the
- * port is connected, the used interface of one port is the provided interface of the port counter part.
- * Thus, the explicit update done by this function is not needed in most cases.
- *
- * see also FixTemplateSync (remove the latter?)
- */
-public class UpdateDerivedInterfaces {
- public static void updateIntfs(InstanceSpecification instance) {
- Classifier cl = DepUtils.getClassifier(instance);
- if (cl instanceof Class) {
- Class implementation = (Class) cl;
- CompImplSync.updatePorts(implementation);
- CompImplSync.syncRealizations(implementation);
- }
- for (Slot slot : instance.getSlots()) {
- InstanceSpecification subInstance = DepUtils.getInstance(slot);
- if (!DepUtils.isShared(slot) && (subInstance != null)) {
- updateIntfs(subInstance);
- }
- }
- }
-}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterRuleApplication.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterRuleApplication.java
index e84f6392cd4..784ba9fbec0 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterRuleApplication.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterRuleApplication.java
@@ -16,8 +16,8 @@ package org.eclipse.papyrus.qompass.designer.core.transformations.filters;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.papyrus.FCM.RuleApplication;
-import org.eclipse.papyrus.qompass.designer.core.listeners.CopyListener;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
/**
* Filter the rule application stereotype. The rule application stereotype is not
@@ -25,7 +25,7 @@ import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
* can contain interceptors which typically reference elements from package templates.
* These elements should not should be copied into the target model.
*/
-public class FilterRuleApplication implements CopyListener {
+public class FilterRuleApplication implements PreCopyListener {
public static FilterRuleApplication getInstance() {
if(instance == null) {
@@ -34,7 +34,7 @@ public class FilterRuleApplication implements CopyListener {
return instance;
}
- public EObject copyEObject(Copy copy, EObject sourceEObj) {
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
if(sourceEObj instanceof RuleApplication) {
return null;
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterSignatures.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterSignatures.java
index 277d449f83c..18589ec2659 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterSignatures.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterSignatures.java
@@ -15,8 +15,8 @@
package org.eclipse.papyrus.qompass.designer.core.transformations.filters;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.papyrus.qompass.designer.core.listeners.CopyListener;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.uml2.uml.TemplateSignature;
@@ -27,7 +27,7 @@ import org.eclipse.uml2.uml.TemplateSignature;
* @author ansgar
*
*/
-public class FilterSignatures implements CopyListener {
+public class FilterSignatures implements PreCopyListener {
public static FilterSignatures getInstance() {
if(instance == null) {
@@ -36,7 +36,7 @@ public class FilterSignatures implements CopyListener {
return instance;
}
- public EObject copyEObject(Copy copy, EObject sourceEObj) {
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
if(sourceEObj instanceof TemplateSignature) {
if(copy.withinTemplate(sourceEObj)) {
return null;
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterStateMachines.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterStateMachines.java
index 1dd7b5ce874..88c7b1257b6 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterStateMachines.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterStateMachines.java
@@ -17,8 +17,8 @@ package org.eclipse.papyrus.qompass.designer.core.transformations.filters;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.papyrus.qompass.designer.core.StUtils;
-import org.eclipse.papyrus.qompass.designer.core.listeners.CopyListener;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.uml2.uml.Behavior;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Element;
@@ -29,7 +29,7 @@ import org.eclipse.uml2.uml.StateMachine;
import org.eclipse.uml2.uml.Transition;
-public class FilterStateMachines implements CopyListener {
+public class FilterStateMachines implements PreCopyListener {
public static FilterStateMachines getInstance() {
if(instance == null) {
@@ -38,7 +38,7 @@ public class FilterStateMachines implements CopyListener {
return instance;
}
- public EObject copyEObject(Copy copy, EObject sourceEObj) {
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
if(sourceEObj instanceof StateMachine) {
StateMachine sm = (StateMachine)sourceEObj;
Class tmClass = getTargetClass(copy, sm);
@@ -62,7 +62,7 @@ public class FilterStateMachines implements CopyListener {
return sourceEObj;
}
- public Class getTargetClass(Copy copy, StateMachine sm) {
+ public Class getTargetClass(LazyCopier copy, StateMachine sm) {
Element smOwner = sm.getOwner();
EObject tmOwner = copy.getMap(smOwner).get(smOwner);
if(tmOwner instanceof Class) {
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterTemplate.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterTemplate.java
index f1784d9e26b..1647d7103b4 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterTemplate.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/filters/FilterTemplate.java
@@ -17,9 +17,9 @@ package org.eclipse.papyrus.qompass.designer.core.transformations.filters;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.papyrus.FCM.Connector;
import org.eclipse.papyrus.FCM.InteractionComponent;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
-import org.eclipse.papyrus.qompass.designer.core.listeners.CopyListener;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Element;
@@ -40,7 +40,7 @@ import org.eclipse.uml2.uml.Element;
* @author ansgar
*
*/
-public class FilterTemplate implements CopyListener {
+public class FilterTemplate implements PreCopyListener {
public FilterTemplate() {
active = true;
@@ -53,7 +53,7 @@ public class FilterTemplate implements CopyListener {
return instance;
}
- public EObject copyEObject(Copy copy, EObject sourceEObj) {
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
if(active && (sourceEObj instanceof Element)) {
Element sourceElem = (Element)sourceEObj;
if((sourceEObj instanceof Connector) && StereotypeUtil.isApplied(sourceElem, Connector.class)) {
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 02a492bb162..72deac65511 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
@@ -16,9 +16,9 @@ package org.eclipse.papyrus.qompass.designer.core.transformations.filters;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.papyrus.qompass.designer.core.Utils;
-import org.eclipse.papyrus.qompass.designer.core.listeners.CopyListener;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PostCopyListener;
import org.eclipse.papyrus.qompass.designer.core.sync.CompImplSync;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.uml2.uml.Behavior;
import org.eclipse.uml2.uml.Class;
@@ -28,7 +28,7 @@ import org.eclipse.uml2.uml.Class;
* (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 {
+public class FixTemplateSync implements PostCopyListener {
public static FixTemplateSync getInstance() {
if(instance == null) {
@@ -37,7 +37,7 @@ public class FixTemplateSync implements CopyListener {
return instance;
}
- public EObject copyEObject(Copy copy, EObject targetEObj) {
+ public void postCopyEObject(LazyCopier copy, EObject targetEObj) {
// if (copy.get(sourceEObj) isWithinTemplate)
if (!(targetEObj instanceof Behavior)) {
if((targetEObj instanceof Class) && Utils.isCompImpl((Class)targetEObj)) {
@@ -49,7 +49,6 @@ public class FixTemplateSync implements CopyListener {
// CompImplSync.syncDerivedOperations(implementation);
}
}
- return targetEObj;
}
private static FixTemplateSync instance = null;
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/C_CppLanguageSupport.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/C_CppLanguageSupport.java
index c7eece26568..544cc7819b3 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/C_CppLanguageSupport.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.cpp/src/org/eclipse/papyrus/qompass/designer/cpp/C_CppLanguageSupport.java
@@ -98,6 +98,11 @@ public class C_CppLanguageSupport implements ILangSupport {
public void setProject(IProject project) {
m_project = project;
}
+
+ @Override
+ public IProject getProject() {
+ return m_project;
+ }
public void setSettings(InstanceSpecification node) throws TransformationException
{
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/InstantiateDepPlanHandler.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/InstantiateDepPlanHandler.java
index 7d7f0c4b67e..08c96c1963b 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/InstantiateDepPlanHandler.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.ui/src/org/eclipse/papyrus/qompass/designer/ui/handlers/InstantiateDepPlanHandler.java
@@ -31,7 +31,9 @@ import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* handler for instantiating a deployment plan
@@ -60,7 +62,7 @@ public class InstantiateDepPlanHandler extends CmdHandler {
// only one model is selected
selectedCDP = null;
if((selectedEObject instanceof Package) || (selectedEObject instanceof Class)) {
- selectedCDP = (Element)selectedEObject;
+ selectedCDP = (NamedElement) selectedEObject;
} else {
return null;
}
@@ -76,8 +78,12 @@ public class InstantiateDepPlanHandler extends CmdHandler {
@Override
protected IStatus run(IProgressMonitor monitor) {
// execute the task ...
- InstantiateDepPlan.instantiate(selectedCDP, monitor, project, genOptions);
- monitor.done();
+ if (selectedCDP instanceof Package) {
+ new InstantiateDepPlan().instantiate((Package)selectedCDP, monitor, project, genOptions);
+ } else if (StereotypeUtil.isApplied(selectedCDP, Configuration.class)) {
+ Configuration configuration = UMLUtil.getStereotypeApplication(selectedCDP, Configuration.class);
+ new InstantiateDepPlan().instantiate(configuration, monitor, project, genOptions);
+ }
return Status.OK_STATUS;
}
};
@@ -88,7 +94,7 @@ public class InstantiateDepPlanHandler extends CmdHandler {
return null;
}
- private Element selectedCDP;
+ private NamedElement selectedCDP;
private IProject project;
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/components/HelloWorld.cpp b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/components/HelloWorld.cpp
new file mode 100644
index 00000000000..3438bbb0d30
--- /dev/null
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/components/HelloWorld.cpp
@@ -0,0 +1,33 @@
+// --------------------------------------------------------
+// Code generated by Papyrus C++
+// --------------------------------------------------------
+
+#define HelloWorld_components_HelloWorld_BODY
+
+/************************************************************
+ HelloWorld class body
+ ************************************************************/
+
+// include associated header file
+#include <HelloWorld/components/HelloWorld.h>
+
+// Derived includes directives
+#include <sysinterfaces/IStart.h>
+
+namespace components {
+
+// static attributes (if any)
+
+/**
+ *
+ *
+ */
+void HelloWorld::run() {
+ cout << "Hello world: " << message << endl;
+}
+
+} // of namespace components
+
+/************************************************************
+ End of HelloWorld class body
+ ************************************************************/ \ No newline at end of file
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/components/HelloWorld.h b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/components/HelloWorld.h
new file mode 100644
index 00000000000..de7e6e07050
--- /dev/null
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/components/HelloWorld.h
@@ -0,0 +1,58 @@
+// --------------------------------------------------------
+// Code generated by Papyrus C++
+// --------------------------------------------------------
+
+#ifndef HELLOWORLD_COMPONENTS_HELLOWORLD_H
+#define HELLOWORLD_COMPONENTS_HELLOWORLD_H
+
+/************************************************************
+ HelloWorld class header
+ ************************************************************/
+
+/* Owner package header include */
+#include <HelloWorld/components/Pkg_components.h>
+
+/* Owner package header include */
+#include <PrimitiveTypes/Pkg_PrimitiveTypes.h>
+
+#include <sysinterfaces/IStart.h>
+
+#include <core/StdPorts/Cstart.h>
+
+namespace components {
+
+/************************************************************/
+/**
+ * Configuration attribute within the Hello World component. Its value is configured on the instance level.
+ */
+
+class HelloWorld: public ::StdPorts::Cstart, public IStart {
+
+public:
+
+ /**
+ *
+ */
+ String message;
+
+ /**
+ *
+ *
+ */
+ void run();
+
+};
+/************************************************************/
+/* External declarations (package visibility) */
+
+/************************************************************/
+
+/* Inline functions */
+
+} // of namespace components
+
+/************************************************************
+ End of HelloWorld class header
+ ************************************************************/
+
+#endif
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/platform/MonoNode.cpp b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/platform/MonoNode.cpp
new file mode 100644
index 00000000000..487d89a2cde
--- /dev/null
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/platform/MonoNode.cpp
@@ -0,0 +1,24 @@
+// --------------------------------------------------------
+// Code generated by Papyrus C++
+// --------------------------------------------------------
+
+#define HelloWorld_platform_MonoNode_BODY
+
+/************************************************************
+ MonoNode class body
+ ************************************************************/
+
+// include associated header file
+#include <HelloWorld/platform/MonoNode.h>
+
+// Derived includes directives
+
+namespace platform {
+
+// static attributes (if any)
+
+}// of namespace platform
+
+/************************************************************
+ End of MonoNode class body
+ ************************************************************/ \ No newline at end of file
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/platform/MonoNode.h b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/platform/MonoNode.h
new file mode 100644
index 00000000000..11ec7186c39
--- /dev/null
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/HelloWorld/platform/MonoNode.h
@@ -0,0 +1,38 @@
+// --------------------------------------------------------
+// Code generated by Papyrus C++
+// --------------------------------------------------------
+
+#ifndef HELLOWORLD_PLATFORM_MONONODE_H
+#define HELLOWORLD_PLATFORM_MONONODE_H
+
+/************************************************************
+ MonoNode class header
+ ************************************************************/
+
+/* Owner package header include */
+#include <HelloWorld/platform/Pkg_platform.h>
+
+namespace platform {
+
+/************************************************************/
+/**
+ *
+ */
+
+class MonoNode {
+
+};
+/************************************************************/
+/* External declarations (package visibility) */
+
+/************************************************************/
+
+/* Inline functions */
+
+} // of namespace platform
+
+/************************************************************
+ End of MonoNode class header
+ ************************************************************/
+
+#endif
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/META-INF/MANIFEST.MF b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/META-INF/MANIFEST.MF
index 3d00cb37202..f9f44be146c 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/META-INF/MANIFEST.MF
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/META-INF/MANIFEST.MF
@@ -10,7 +10,8 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.uml2.uml;bundle-version="4.0.0",
org.eclipse.papyrus.uml.tools.utils;bundle-version="1.0.0",
org.eclipse.papyrus.infra.core.log;bundle-version="1.0.0",
- org.eclipse.core.resources
+ org.eclipse.core.resources,
+ org.eclipse.papyrus.cpp.profile;bundle-version="1.0.0"
Bundle-Vendor: %providerName
Bundle-ActivationPolicy: lazy
Bundle-Version: 1.0.0.qualifier
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 477408e4c6d..0469e9bbff3 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
@@ -49,36 +49,6 @@
<windows xmi:id="_pKTSlNYFEd-CgJIavLpOxQ">
<children xsi:type="di:TabFolder" xmi:id="_pKTSldYFEd-CgJIavLpOxQ">
<children>
- <emfPageIdentifier href="core.notation#_glyeMK8qEeCXIcykFPsB8Q"/>
- </children>
- <children>
- <emfPageIdentifier href="core.notation#_DtdykK8rEeCXIcykFPsB8Q"/>
- </children>
- <children>
- <emfPageIdentifier href="core.notation#_PIvc4LabEeCj_-LEBuGpmA"/>
- </children>
- <children>
- <emfPageIdentifier href="core.notation#_0IaT8LnYEeCxXoyQxQ47PQ"/>
- </children>
- <children>
- <emfPageIdentifier href="core.notation#_SstwYPEnEeCIafpoJVk7CQ"/>
- </children>
- <children>
- <emfPageIdentifier href="core.notation#_g6Yg0CnOEeGxrprK9wB9iA"/>
- </children>
- <children>
- <emfPageIdentifier href="core.notation#_OhgzgD8AEeGJ6KSvhYhYuQ"/>
- </children>
- <children>
- <emfPageIdentifier href="core.notation#_cVCGYPNUEeCovO8AYZymZQ"/>
- </children>
- <children>
- <emfPageIdentifier href="core.notation#_hyLz8PNGEeCovO8AYZymZQ"/>
- </children>
- <children>
- <emfPageIdentifier href="core.notation#_DfG8kF7qEeGEmrrwB1vhPg"/>
- </children>
- <children>
<emfPageIdentifier href="core.notation#_FYAkIG4sEd-0rs2VEGIwsA"/>
</children>
<children>
@@ -88,6 +58,9 @@
<emfPageIdentifier href="core.notation#_A6ULINYGEd-CgJIavLpOxQ"/>
</children>
<children>
+ <emfPageIdentifier href="core.notation#_g6Yg0CnOEeGxrprK9wB9iA"/>
+ </children>
+ <children>
<emfPageIdentifier href="core.notation#_zCsUsHI3EeOCrdvV8oxOKA"/>
</children>
</children>
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 535d9d22a88..ccf01734912 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
@@ -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:C_Cpp="http://www.eclipse.org/papyrus/C_Cpp/1" xmlns:FCM="http://www.eclipse.org/papyrus/FCM/1" xmlns:SW_Concurrency="http://www.eclipse.org/papyrus/SW_Concurrency/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" xsi:schemaLocation="http://www.eclipse.org/papyrus/SW_Concurrency/1 http://www.eclipse.org/papyrus/MARTE/1#//SRM/SW_Concurrency">
+<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:SW_Concurrency="http://www.eclipse.org/papyrus/SW_Concurrency/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/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/SW_Concurrency/1 http://www.eclipse.org/papyrus/MARTE/1#//SRM/SW_Concurrency">
<notation:Diagram xmi:id="_FYAkIG4sEd-0rs2VEGIwsA" type="CompositeStructure" name="Composite Async &amp; sync call hierarchy" measurementUnit="Pixel">
<children xmi:type="notation:Shape" xmi:id="_FYAkIW4sEd-0rs2VEGIwsA" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
<children xmi:type="notation:DecorationNode" xmi:id="_FYAkIm4sEd-0rs2VEGIwsA" type="5156"/>
@@ -3742,8 +3742,8 @@
<styles xmi:type="notation:FontStyle" xmi:id="_SZ63sSo0EeGxrprK9wB9iA" fontName="" fontHeight="10"/>
<element xmi:type="uml:Dependency" href="core.uml#_SXkHQCo0EeGxrprK9wB9iA"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SZ63sio0EeGxrprK9wB9iA" points="[19, -6, -74, 0]$[85, -6, -8, 0]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sd71ACo0EeGxrprK9wB9iA" id="(0.963531669865643,0.32298136645962733)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sd71ASo0EeGxrprK9wB9iA" id="(0.16666666666666666,0.5084745762711864)"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sd71ACo0EeGxrprK9wB9iA" id="(1.0,0.2670807453416149)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Sd71ASo0EeGxrprK9wB9iA" id="(0.0,0.4909090909090909)"/>
</edges>
</notation:Diagram>
<notation:Diagram xmi:id="_OhgzgD8AEeGJ6KSvhYhYuQ" type="CompositeStructure" name="CallActivation" measurementUnit="Pixel">
@@ -4383,10 +4383,7 @@
</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="" gradient="16777215, -1, 0" 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>
+ <children xmi:type="notation:Shape" xmi:id="_z30l4HI3EeOCrdvV8oxOKA" type="2008" fontName="" lineColor="0">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z33CInI3EeOCrdvV8oxOKA" source="displayNameLabelIcon">
<details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z33CI3I3EeOCrdvV8oxOKA" key="displayNameLabelIcon_value" value="false"/>
</eAnnotations>
@@ -4403,6 +4400,9 @@
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Bp0jUHkhEeOCpqruXGWNPw" source="PapyrusCSSForceValue">
<details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Bp0jUXkhEeOCpqruXGWNPw" key="gradient" value="true"/>
</eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_F6iPQLnHEeO_6d9PgxHkpw" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_F6i2ULnHEeO_6d9PgxHkpw" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
<children xmi:type="notation:DecorationNode" xmi:id="_z33pMXI3EeOCrdvV8oxOKA" type="5029"/>
<children xmi:type="notation:BasicCompartment" xmi:id="_z33pMnI3EeOCrdvV8oxOKA" visible="false" type="7017">
<styles xmi:type="notation:TitleStyle" xmi:id="_z33pM3I3EeOCrdvV8oxOKA"/>
@@ -4427,7 +4427,7 @@
<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"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z30l4XI3EeOCrdvV8oxOKA" x="60" y="20" width="181" height="61"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_4ICEAHkgEeOCpqruXGWNPw" type="2008">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7qs5gHkgEeOCpqruXGWNPw" source="Stereotype_Annotation">
@@ -4466,7 +4466,37 @@
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ID5PnkgEeOCpqruXGWNPw"/>
</children>
<element xmi:type="uml:Class" href="core.uml#_4H-ZoHkgEeOCpqruXGWNPw"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ICrEHkgEeOCpqruXGWNPw" x="248" y="19" width="162" height="95"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4ICrEHkgEeOCpqruXGWNPw" x="60" y="100" width="181" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_g9VpkLsMEeO0n5elMxN1LQ" type="2008">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pJ_h8LsMEeO0n5elMxN1LQ" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pKAJALsMEeO0n5elMxN1LQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pKAJAbsMEeO0n5elMxN1LQ" key="StereotypeList" value="FCM::BindingHelper"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pKAJArsMEeO0n5elMxN1LQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pKAwELsMEeO0n5elMxN1LQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pKAwEbsMEeO0n5elMxN1LQ" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_g9WQoLsMEeO0n5elMxN1LQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_g9WQobsMEeO0n5elMxN1LQ" visible="false" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_g9WQorsMEeO0n5elMxN1LQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_g9WQo7sMEeO0n5elMxN1LQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_g9WQpLsMEeO0n5elMxN1LQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g9WQpbsMEeO0n5elMxN1LQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_g9W3sLsMEeO0n5elMxN1LQ" visible="false" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_g9W3sbsMEeO0n5elMxN1LQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_g9W3srsMEeO0n5elMxN1LQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_g9W3s7sMEeO0n5elMxN1LQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g9W3tLsMEeO0n5elMxN1LQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_g9W3tbsMEeO0n5elMxN1LQ" visible="false" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_g9W3trsMEeO0n5elMxN1LQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_g9W3t7sMEeO0n5elMxN1LQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_g9W3uLsMEeO0n5elMxN1LQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g9W3ubsMEeO0n5elMxN1LQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="core.uml#_g8oe8LsMEeO0n5elMxN1LQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g9VpkbsMEeO0n5elMxN1LQ" x="60" y="180" width="181" height="61"/>
</children>
<styles xmi:type="notation:DiagramStyle" xmi:id="_zCs7wHI3EeOCrdvV8oxOKA"/>
<element xmi:type="uml:Package" href="core.uml#_tkiC4HI3EeOCrdvV8oxOKA"/>
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 5931e6cc4c9..49391c6e196 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
@@ -1,24 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" 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:SW_Concurrency="http://www.eclipse.org/papyrus/SW_Concurrency/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/SW_Concurrency/1 http://www.eclipse.org/papyrus/MARTE/1#//SRM/SW_Concurrency">
<uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="core" viewpoint="">
- <packageImport xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_O6TiITLUEd26WNosUASSSw">
<importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
</packageImport>
- <packageImport xmi:id="_clzbsC3xEd6OqY3qskOtLQ">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_clzbsC3xEd6OqY3qskOtLQ">
<importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/sysinterfaces.uml#_RodVAAweEd6it_RkGhz_AA"/>
</packageImport>
- <packageImport xmi:id="_hWGaIF9CEd6vU6EJjexEKQ">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_hWGaIF9CEd6vU6EJjexEKQ">
<importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
</packageImport>
- <packageImport xmi:id="_K9IBUP-FEd6628OhKk_dpg">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_K9IBUP-FEd6628OhKk_dpg">
<importedPackage xmi:type="uml:Model" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_DV8nkBv8EduZN5aJJITI5w"/>
</packageImport>
- <packageImport xmi:id="_mXnzUPQdEeCIC-7tA9lfzA">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_mXnzUPQdEeCIC-7tA9lfzA">
<importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/osal.uml#_ROTQYC-OEdySSa8YESkO2w"/>
</packageImport>
<packagedElement xmi:type="uml:Package" xmi:id="_TFq8cOy6Ed2UrumbR9YAVg" name="composites">
<packagedElement xmi:type="uml:Class" xmi:id="_WK3LwOy6Ed2UrumbR9YAVg" name="Composite">
- <ownedComment xmi:id="_IiLnAMFjEd-Mveea1W_olA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_IiLnAMFjEd-Mveea1W_olA">
<body>currently unused, not sure whether really needed</body>
</ownedComment>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_2JtG8Oy6Ed2UrumbR9YAVg" name="b:createConnections" visibility="package" specification="_wlXUoOy6Ed2UrumbR9YAVg">
@@ -51,14 +51,14 @@ m_[part.name/] = [part.name/]
[/for]
[/template]</body>
</ownedBehavior>
- <ownedOperation xmi:id="_wlXUoOy6Ed2UrumbR9YAVg" name="createConnections" method="_2JtG8Oy6Ed2UrumbR9YAVg"/>
- <ownedOperation xmi:id="_BTEWIOy9Ed2UrumbR9YAVg" name="setup" method="_D83p8Oy9Ed2UrumbR9YAVg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_wlXUoOy6Ed2UrumbR9YAVg" name="createConnections" method="_2JtG8Oy6Ed2UrumbR9YAVg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_BTEWIOy9Ed2UrumbR9YAVg" name="setup" method="_D83p8Oy9Ed2UrumbR9YAVg"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_1RehUAGpEd6eR-dxi5su4Q" name="BootLoader">
- <ownedComment xmi:id="_JMwYwMGJEd-Mveea1W_olA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_JMwYwMGJEd-Mveea1W_olA">
<body>A template for the bootloader generation.</body>
</ownedComment>
- <ownedComment xmi:id="_JM4UkMGJEd-Mveea1W_olA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_JM4UkMGJEd-Mveea1W_olA">
<body>This C++ implementation of the template contains principally the definition of the
&quot;main&quot; function and the declaration of the bootloader instance</body>
</ownedComment>
@@ -67,50 +67,50 @@ m_[part.name/] = [part.name/]
<body>&lt;%createInstances%></body>
</ownedBehavior>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_IbrFUAGqEd6eR-dxi5su4Q" name="b:main" specification="_6pkAUAGpEd6eR-dxi5su4Q"/>
- <ownedOperation xmi:id="_3kwykAGpEd6eR-dxi5su4Q" name="createInstances" method="_AFnZUAGqEd6eR-dxi5su4Q"/>
- <ownedOperation xmi:id="_6pkAUAGpEd6eR-dxi5su4Q" name="main" isStatic="true" method="_IbrFUAGqEd6eR-dxi5su4Q"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3kwykAGpEd6eR-dxi5su4Q" name="createInstances" method="_AFnZUAGqEd6eR-dxi5su4Q"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_6pkAUAGpEd6eR-dxi5su4Q" name="main" isStatic="true" method="_IbrFUAGqEd6eR-dxi5su4Q"/>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_mMCK8PiPEd2UhpY2Y3WUyg" name="methodCall">
- <ownedComment xmi:id="_WiuBUK8rEeCXIcykFPsB8Q" annotatedElement="_mMCK8PiPEd2UhpY2Y3WUyg">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_WiuBUK8rEeCXIcykFPsB8Q" annotatedElement="_mMCK8PiPEd2UhpY2Y3WUyg">
<body>Main package template for all call based connectors. The formal parameter is the interface I (which is bound to the actual interface used in a call).
This package is virtually extended by other model libraries who import it.</body>
</ownedComment>
- <ownedComment xmi:id="__oxUADrVEeGMCcwsbpLuFA" annotatedElement="_j29X4NttEd2eM5kqcby5ZA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="__oxUADrVEeGMCcwsbpLuFA" annotatedElement="_j29X4NttEd2eM5kqcby5ZA">
<body>Inheritance hierarchy for (A)SyncCall component types. Separate types for required (rconn) and provided (fconn) ports enable re-use via inheritance ain multiple places (e.g. for AMI ports that use an unmodified provided port and different variants of a required port).
Note that ports on connector side are conjugated</body>
</ownedComment>
- <ownedTemplateSignature xmi:id="_V0b2APfBEd2TbIfwytOyPA" parameter="_WzWVUPfBEd2TbIfwytOyPA">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_V0b2APfBEd2TbIfwytOyPA" parameter="_WzWVUPfBEd2TbIfwytOyPA">
<ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_WzWVUPfBEd2TbIfwytOyPA" parameteredElement="_ZzlzMPfBEd2TbIfwytOyPA">
<ownedParameteredElement xmi:type="uml:Interface" xmi:id="_ZzlzMPfBEd2TbIfwytOyPA" name="I" templateParameter="_WzWVUPfBEd2TbIfwytOyPA"/>
</ownedParameter>
</ownedTemplateSignature>
<packagedElement xmi:type="uml:Package" xmi:id="_ZISNcIQzEd2_fLv04swWfw" name="AsyncCall">
<packagedElement xmi:type="uml:Class" xmi:id="_KxQBELuXEd2TTr3gJIvazw" name="AsyncCall" isAbstract="true">
- <generalization xmi:id="_0KzSsDBEEd6V16eboHV1gw" general="_j29X4NttEd2eM5kqcby5ZA"/>
- <generalization xmi:id="_1H2JwDBEEd6V16eboHV1gw" general="_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_0KzSsDBEEd6V16eboHV1gw" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_1H2JwDBEEd6V16eboHV1gw" general="_mIpj8Ns8Ed2eM5kqcby5ZA"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_Whe8EClYEd-eoo60eNyGlg" name="AsyncCall_impl">
- <ownedComment xmi:id="_sp9YYG5fEd-5CZIeuHpHAg">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_sp9YYG5fEd-5CZIeuHpHAg">
<body>Description: A simple implementation of asynchronous calls. It will execution requests by means of a single dispatcher thread</body>
</ownedComment>
- <ownedComment xmi:id="_HMz-ADJKEeCAhMtIsY9HwA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_HMz-ADJKEeCAhMtIsY9HwA">
<body>Simple asynchronous call implementation: returns immediately and executes request in new thread</body>
</ownedComment>
- <ownedComment xmi:id="_bustsDJKEeCAhMtIsY9HwA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_bustsDJKEeCAhMtIsY9HwA">
<body>Uses buffer and ASN marshalling.
TODO: configurable buffer size, use data structure (CppParameterStorage)</body>
</ownedComment>
- <generalization xmi:id="_lYOSkClzEd-eoo60eNyGlg" general="_KxQBELuXEd2TTr3gJIvazw"/>
- <ownedAttribute xmi:id="_1XeLIED5Ed-_DOja_sRgWA" name="buffer" isUnique="false" aggregation="composite">
+ <generalization xmi:type="uml:Generalization" xmi:id="_lYOSkClzEd-eoo60eNyGlg" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_1XeLIED5Ed-_DOja_sRgWA" name="buffer" isUnique="false" aggregation="composite">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8wC7MED5Ed-_DOja_sRgWA" value="500"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_8wLeEED5Ed-_DOja_sRgWA" value="500"/>
</ownedAttribute>
- <ownedAttribute xmi:id="_2fcqYED6Ed-_DOja_sRgWA" name="pBuffer" isUnique="false" aggregation="composite">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_2fcqYED6Ed-_DOja_sRgWA" name="pBuffer" isUnique="false" aggregation="composite">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
</ownedAttribute>
- <interfaceRealization xmi:id="_nBpugClzEd-eoo60eNyGlg" name="derived realization of I" client="_Whe8EClYEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_nBpugClzEd-eoo60eNyGlg" name="derived realization of I" client="_Whe8EClYEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_WhfjIilYEd-eoo60eNyGlg" name="[name/]" specification="_2bwsEClzEd-eoo60eNyGlg">
<language>C/C++</language>
<body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
@@ -171,8 +171,8 @@ switch (operationID)
}
[/template]</body>
</ownedBehavior>
- <ownedOperation xmi:id="_WhfjJSlYEd-eoo60eNyGlg" name="staticDispatch" isStatic="true" method="_WhfjIylYEd-eoo60eNyGlg">
- <ownedParameter xmi:id="_WhfjJilYEd-eoo60eNyGlg" name="arg">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_WhfjJSlYEd-eoo60eNyGlg" name="staticDispatch" isStatic="true" method="_WhfjIylYEd-eoo60eNyGlg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WhfjJilYEd-eoo60eNyGlg" name="arg">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WhfjKClYEd-eoo60eNyGlg" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WhfjJylYEd-eoo60eNyGlg" value="1"/>
@@ -180,28 +180,28 @@ switch (operationID)
<value xsi:nil="true"/>
</defaultValue>
</ownedParameter>
- <ownedParameter xmi:id="_WhfjKilYEd-eoo60eNyGlg" name="ret" direction="return">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_WhfjKilYEd-eoo60eNyGlg" name="ret" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
</ownedParameter>
</ownedOperation>
- <ownedOperation xmi:id="_2bwsEClzEd-eoo60eNyGlg" name="[name/]" method="_WhfjIilYEd-eoo60eNyGlg"/>
- <ownedOperation xmi:id="_G6LzAD3QEd-Bk-AHd6yyoA" name="dispatch" method="_nV2DcED5Ed-_DOja_sRgWA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_2bwsEClzEd-eoo60eNyGlg" name="[name/]" method="_WhfjIilYEd-eoo60eNyGlg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_G6LzAD3QEd-Bk-AHd6yyoA" name="dispatch" method="_nV2DcED5Ed-_DOja_sRgWA"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_pXzKcEJ1Ed-Ps4Bfh0j9LQ" name="AsyncCallPool_impl">
- <ownedComment xmi:id="_spsPMDJKEeCAhMtIsY9HwA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_spsPMDJKEeCAhMtIsY9HwA">
<body>(untested) implementation of an asynchronous invocation that uses a thread pool for
spawning new requests</body>
</ownedComment>
- <generalization xmi:id="_pXzKcUJ1Ed-Ps4Bfh0j9LQ" general="_KxQBELuXEd2TTr3gJIvazw"/>
- <ownedAttribute xmi:id="_pXzxgEJ1Ed-Ps4Bfh0j9LQ" name="buffer" isUnique="false" aggregation="composite">
+ <generalization xmi:type="uml:Generalization" xmi:id="_pXzKcUJ1Ed-Ps4Bfh0j9LQ" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_pXzxgEJ1Ed-Ps4Bfh0j9LQ" name="buffer" isUnique="false" aggregation="composite">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pXzxgkJ1Ed-Ps4Bfh0j9LQ" value="500"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pXzxgUJ1Ed-Ps4Bfh0j9LQ" value="500"/>
</ownedAttribute>
- <ownedAttribute xmi:id="_pXzxg0J1Ed-Ps4Bfh0j9LQ" name="pBuffer" isUnique="false" aggregation="composite">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_pXzxg0J1Ed-Ps4Bfh0j9LQ" name="pBuffer" isUnique="false" aggregation="composite">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
</ownedAttribute>
- <interfaceRealization xmi:id="_pXzxh0J1Ed-Ps4Bfh0j9LQ" name="derived realization of I" client="_pXzKcEJ1Ed-Ps4Bfh0j9LQ" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_pXzxh0J1Ed-Ps4Bfh0j9LQ" name="derived realization of I" client="_pXzKcEJ1Ed-Ps4Bfh0j9LQ" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_pXzxhEJ1Ed-Ps4Bfh0j9LQ" name="[name/]" specification="_pXzxjkJ1Ed-Ps4Bfh0j9LQ">
<language>C/C++</language>
<body>[template marshall(operation: Operation)]
@@ -270,8 +270,8 @@ switch (operationID)
[/template]
</body>
</ownedBehavior>
- <ownedOperation xmi:id="_pXzxiEJ1Ed-Ps4Bfh0j9LQ" name="staticDispatch" isStatic="true" method="_pXzxhUJ1Ed-Ps4Bfh0j9LQ">
- <ownedParameter xmi:id="_pXzxiUJ1Ed-Ps4Bfh0j9LQ" name="arg">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_pXzxiEJ1Ed-Ps4Bfh0j9LQ" name="staticDispatch" isStatic="true" method="_pXzxhUJ1Ed-Ps4Bfh0j9LQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pXzxiUJ1Ed-Ps4Bfh0j9LQ" name="arg">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pXzxi0J1Ed-Ps4Bfh0j9LQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pXzxikJ1Ed-Ps4Bfh0j9LQ" value="1"/>
@@ -279,34 +279,34 @@ switch (operationID)
<value xsi:nil="true"/>
</defaultValue>
</ownedParameter>
- <ownedParameter xmi:id="_pXzxjUJ1Ed-Ps4Bfh0j9LQ" name="ret" direction="return">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_pXzxjUJ1Ed-Ps4Bfh0j9LQ" name="ret" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
</ownedParameter>
</ownedOperation>
- <ownedOperation xmi:id="_pXzxjkJ1Ed-Ps4Bfh0j9LQ" name="[name/]" method="_pXzxhEJ1Ed-Ps4Bfh0j9LQ"/>
- <ownedOperation xmi:id="_pXzxj0J1Ed-Ps4Bfh0j9LQ" name="dispatch" method="_pXzxhkJ1Ed-Ps4Bfh0j9LQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_pXzxjkJ1Ed-Ps4Bfh0j9LQ" name="[name/]" method="_pXzxhEJ1Ed-Ps4Bfh0j9LQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_pXzxj0J1Ed-Ps4Bfh0j9LQ" name="dispatch" method="_pXzxhkJ1Ed-Ps4Bfh0j9LQ"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3itBkNdwEd-ZnqCk2P2ZKg" name="AMIPollCall_impl">
- <ownedComment xmi:id="_3itBkddwEd-ZnqCk2P2ZKg">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_3itBkddwEd-ZnqCk2P2ZKg">
<body>Description: A simple implementation of asynchronous calls. It will execution requests by means of a single dispatcher thread</body>
</ownedComment>
- <ownedComment xmi:id="_lEC3ADJLEeCAhMtIsY9HwA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_lEC3ADJLEeCAhMtIsY9HwA">
<body>Polling variant of corbas asynchronous messaging (AMI), enables asynchronous calls while reading
return values (also called deferred synchronous):
Instead of specified return values, functions return a poller object which may be queried for
the result.
TODO: complete, move into model of Qompass AMI plugin</body>
</ownedComment>
- <generalization xmi:id="_3itBktdwEd-ZnqCk2P2ZKg" general="_KxQBELuXEd2TTr3gJIvazw"/>
- <ownedAttribute xmi:id="_3itBk9dwEd-ZnqCk2P2ZKg" name="buffer" isUnique="false" aggregation="composite">
+ <generalization xmi:type="uml:Generalization" xmi:id="_3itBktdwEd-ZnqCk2P2ZKg" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3itBk9dwEd-ZnqCk2P2ZKg" name="buffer" isUnique="false" aggregation="composite">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3itBlddwEd-ZnqCk2P2ZKg" value="500"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3itBlNdwEd-ZnqCk2P2ZKg" value="500"/>
</ownedAttribute>
- <ownedAttribute xmi:id="_3itBltdwEd-ZnqCk2P2ZKg" name="pBuffer" isUnique="false" aggregation="composite">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3itBltdwEd-ZnqCk2P2ZKg" name="pBuffer" isUnique="false" aggregation="composite">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_5lVhgBydEduyofBvg4RL2w"/>
</ownedAttribute>
- <interfaceRealization xmi:id="_3itBmtdwEd-ZnqCk2P2ZKg" name="derived realization of I" client="_3itBkNdwEd-ZnqCk2P2ZKg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_3itBmtdwEd-ZnqCk2P2ZKg" name="derived realization of I" client="_3itBkNdwEd-ZnqCk2P2ZKg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_3itBl9dwEd-ZnqCk2P2ZKg" name="[name/]" specification="_3itBoddwEd-ZnqCk2P2ZKg">
<language>C/C++</language>
<body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
@@ -396,8 +396,8 @@ switch (operationID)
[/template]
</body>
</ownedBehavior>
- <ownedOperation xmi:id="_3itBm9dwEd-ZnqCk2P2ZKg" name="staticDispatch" isStatic="true" method="_3itBmNdwEd-ZnqCk2P2ZKg">
- <ownedParameter xmi:id="_3itBnNdwEd-ZnqCk2P2ZKg" name="arg">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3itBm9dwEd-ZnqCk2P2ZKg" name="staticDispatch" isStatic="true" method="_3itBmNdwEd-ZnqCk2P2ZKg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_3itBnNdwEd-ZnqCk2P2ZKg" name="arg">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3itBntdwEd-ZnqCk2P2ZKg" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3itBnddwEd-ZnqCk2P2ZKg" value="1"/>
@@ -405,16 +405,16 @@ switch (operationID)
<value xsi:nil="true"/>
</defaultValue>
</ownedParameter>
- <ownedParameter xmi:id="_3itBoNdwEd-ZnqCk2P2ZKg" name="ret" direction="return">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_3itBoNdwEd-ZnqCk2P2ZKg" name="ret" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
</ownedParameter>
</ownedOperation>
- <ownedOperation xmi:id="_3itBoddwEd-ZnqCk2P2ZKg" name="[name/]" method="_3itBl9dwEd-ZnqCk2P2ZKg"/>
- <ownedOperation xmi:id="_3itBotdwEd-ZnqCk2P2ZKg" name="dispatch" method="_3itBmddwEd-ZnqCk2P2ZKg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3itBoddwEd-ZnqCk2P2ZKg" name="[name/]" method="_3itBl9dwEd-ZnqCk2P2ZKg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_3itBotdwEd-ZnqCk2P2ZKg" name="dispatch" method="_3itBmddwEd-ZnqCk2P2ZKg"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_Mo2kwF7pEeGEmrrwB1vhPg" name="CallMultiplier_impl">
- <generalization xmi:id="_eJqowF7sEeGEmrrwB1vhPg" general="_TLShkF7qEeGEmrrwB1vhPg"/>
- <interfaceRealization xmi:id="_8e_ocF7sEeGEmrrwB1vhPg" name="derived realization of I" client="_Mo2kwF7pEeGEmrrwB1vhPg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_eJqowF7sEeGEmrrwB1vhPg" general="_TLShkF7qEeGEmrrwB1vhPg"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_8e_ocF7sEeGEmrrwB1vhPg" name="derived realization of I" client="_Mo2kwF7pEeGEmrrwB1vhPg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_DmUQcF7tEeGEmrrwB1vhPg" name="operation1" specification="_ChD4kF7tEeGEmrrwB1vhPg">
<language>C/C++</language>
<body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]
@@ -428,15 +428,15 @@ for (int i=0; i&lt;9; i++) {
}
[/template]</body>
</ownedBehavior>
- <ownedOperation xmi:id="_ChD4kF7tEeGEmrrwB1vhPg" name="[name/]" method="_DmUQcF7tEeGEmrrwB1vhPg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_ChD4kF7tEeGEmrrwB1vhPg" name="[name/]" method="_DmUQcF7tEeGEmrrwB1vhPg"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_TLShkF7qEeGEmrrwB1vhPg" name="AsyncCallM" isAbstract="true">
- <generalization xmi:id="_WhUpQF7qEeGEmrrwB1vhPg" general="_0KYOQF7pEeGEmrrwB1vhPg"/>
- <generalization xmi:id="_XgUoIF7qEeGEmrrwB1vhPg" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_WhUpQF7qEeGEmrrwB1vhPg" general="_0KYOQF7pEeGEmrrwB1vhPg"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_XgUoIF7qEeGEmrrwB1vhPg" general="_j29X4NttEd2eM5kqcby5ZA"/>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Enumeration" xmi:id="_2oxDIPiPEd2UhpY2Y3WUyg" name="OperationIDs">
- <ownedLiteral xmi:id="_KOvHsPiREd2UhpY2Y3WUyg" name="ID_[name/]"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_KOvHsPiREd2UhpY2Y3WUyg" name="ID_[name/]"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_j29X4NttEd2eM5kqcby5ZA" name="OPC_useI" isAbstract="true">
<ownedAttribute xmi:type="uml:Port" xmi:id="_P4xVsNtuEd2eM5kqcby5ZA" name="fconn" type="_ZzlzMPfBEd2TbIfwytOyPA" aggregation="composite" isConjugated="true"/>
@@ -451,13 +451,13 @@ for (int i=0; i&lt;9; i++) {
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_gKMTIAytEd6it_RkGhz_AA" name="marshalling">
- <ownedComment xmi:id="_9gpvcENxEeGoAtSeIK7WLg">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_9gpvcENxEeGoAtSeIK7WLg">
<body>Needs completion:
good(?) write buffer event?
Call operations of buffer component?
[could have done in an identical way for EventPool]</body>
</ownedComment>
- <ownedComment xmi:id="_pk4cMEN_EeGfhclnRyNzoA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_pk4cMEN_EeGfhclnRyNzoA">
<body>Marshalling is done at two levels:
(1) In case of a shared address space, only a callEvent is created. It can be passed between threads within a process.
(2) For remote communication, marshalling into a buffer is done.</body>
@@ -494,7 +494,7 @@ Call operations of buffer component?
</ownedBehavior>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="__uJRYPNGEeCovO8AYZymZQ" name="StructBased">
- <generalization xmi:id="_EWShMPNHEeCovO8AYZymZQ" general="_b_yh4AzyEd6it_RkGhz_AA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_EWShMPNHEeCovO8AYZymZQ" general="_b_yh4AzyEd6it_RkGhz_AA"/>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qRJc8PNJEeCovO8AYZymZQ" name="[name/]" specification="_aGt1sPNJEeCovO8AYZymZQ">
<language>C/C++</language>
<body>[template marshallStruct(operation : Operation)]
@@ -512,10 +512,10 @@ ParamData * data = &amp;event.params;
[/for]
out->dispatch(event);</body>
</ownedBehavior>
- <ownedOperation xmi:id="_aGt1sPNJEeCovO8AYZymZQ" name="[name/]" method="_qRJc8PNJEeCovO8AYZymZQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_aGt1sPNJEeCovO8AYZymZQ" name="[name/]" method="_qRJc8PNJEeCovO8AYZymZQ"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_u7MmIENqEeGoAtSeIK7WLg" name="ToCallEvent">
- <generalization xmi:id="_K088oF_rEd6RvK-1A151zQ" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_K088oF_rEd6RvK-1A151zQ" general="_j29X4NttEd2eM5kqcby5ZA"/>
<ownedAttribute xmi:type="uml:Port" xmi:id="_-nk_cENqEeGoAtSeIK7WLg" name="out" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ" aggregation="composite">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AdVAIENrEeGoAtSeIK7WLg" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_AdW1UENrEeGoAtSeIK7WLg" value="1"/>
@@ -525,14 +525,14 @@ out->dispatch(event);</body>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_1xGG8ENqEeGoAtSeIK7WLg" name="FromCallEventWP">
- <generalization xmi:id="_M09FgF_rEd6RvK-1A151zQ" general="_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_M09FgF_rEd6RvK-1A151zQ" general="_mIpj8Ns8Ed2eM5kqcby5ZA"/>
<ownedAttribute xmi:type="uml:Port" xmi:id="_9gIc8ENvEeGoAtSeIK7WLg" name="in" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ" aggregation="composite">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9uDkMENvEeGoAtSeIK7WLg" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9uEyUENvEeGoAtSeIK7WLg" value="1"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_H7IOcENrEeGoAtSeIK7WLg" name="ToCallEventWP">
- <generalization xmi:id="_KHmGAENrEeGoAtSeIK7WLg" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_KHmGAENrEeGoAtSeIK7WLg" general="_j29X4NttEd2eM5kqcby5ZA"/>
<ownedAttribute xmi:type="uml:Port" xmi:id="_i5SOQEN8EeGfhclnRyNzoA" name="out" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ" aggregation="composite">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jRB_4EN8EeGfhclnRyNzoA" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jRtVUEN8EeGfhclnRyNzoA" value="1"/>
@@ -541,21 +541,21 @@ out->dispatch(event);</body>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_RjvvcA1jEd6tvthBDl600Q" name="SyncCall">
<packagedElement xmi:type="uml:Class" xmi:id="_Zx2ZUA1jEd6tvthBDl600Q" name="SyncCall" isAbstract="true">
- <generalization xmi:id="_STdvYDBFEd6V16eboHV1gw" general="_j29X4NttEd2eM5kqcby5ZA"/>
- <generalization xmi:id="_T1zr4DBFEd6V16eboHV1gw" general="_mIpj8Ns8Ed2eM5kqcby5ZA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_STdvYDBFEd6V16eboHV1gw" general="_j29X4NttEd2eM5kqcby5ZA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_T1zr4DBFEd6V16eboHV1gw" general="_mIpj8Ns8Ed2eM5kqcby5ZA"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_jOU60A1jEd6tvthBDl600Q" name="DirectCall_impl">
- <ownedComment xmi:id="_MgKU8G5gEd-5CZIeuHpHAg">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_MgKU8G5gEd-5CZIeuHpHAg">
<body>Description: This connector is a kind of dummy connector, since it only passes incoming requests to its caller port</body>
</ownedComment>
- <ownedComment xmi:id="_0fC3UDJJEeCAhMtIsY9HwA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0fC3UDJJEeCAhMtIsY9HwA">
<body>Minimal connector implementation that does nothing (but passing requests)</body>
</ownedComment>
- <ownedComment xmi:id="_0fOdgDJJEeCAhMtIsY9HwA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_0fOdgDJJEeCAhMtIsY9HwA">
<body></body>
</ownedComment>
- <generalization xmi:id="_lm4GkA1jEd6tvthBDl600Q" general="_Zx2ZUA1jEd6tvthBDl600Q"/>
- <interfaceRealization xmi:id="_1tfFAJyCEd6WR4pSVO_UYw" name="derived realization of I" client="_jOU60A1jEd6tvthBDl600Q" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_lm4GkA1jEd6tvthBDl600Q" general="_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_1tfFAJyCEd6WR4pSVO_UYw" name="derived realization of I" client="_jOU60A1jEd6tvthBDl600Q" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_GSdesJ09Ed6l5bTPBsl00Q" name="[name/]" specification="__y0hwJ08Ed6l5bTPBsl00Q">
<language>C/C++</language>
<body>[import org::eclipse::papyrus::qompass::designer::core::acceleo::utils_cpp/]
@@ -567,48 +567,48 @@ out->dispatch(event);</body>
// put post-interceptors here
[/template]</body>
</ownedBehavior>
- <ownedOperation xmi:id="__y0hwJ08Ed6l5bTPBsl00Q" name="[name/]" method="_GSdesJ09Ed6l5bTPBsl00Q"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="__y0hwJ08Ed6l5bTPBsl00Q" name="[name/]" method="_GSdesJ09Ed6l5bTPBsl00Q"/>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_UAIU0K-iEd6DndT7kDY1-A" name="AdaptiveContainerServices">
<packagedElement xmi:type="uml:Class" xmi:id="_cxVEsK-iEd6DndT7kDY1-A" name="SampleInterceptor">
- <generalization xmi:id="_lrS8oAQxEd--t-uhRn9OBA" general="_Zx2ZUA1jEd6tvthBDl600Q"/>
- <interfaceRealization xmi:id="_v-oAAK-iEd6DndT7kDY1-A" name="derived realization of I" client="_cxVEsK-iEd6DndT7kDY1-A" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_lrS8oAQxEd--t-uhRn9OBA" general="_Zx2ZUA1jEd6tvthBDl600Q"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_v-oAAK-iEd6DndT7kDY1-A" name="derived realization of I" client="_cxVEsK-iEd6DndT7kDY1-A" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_GTvA0K-jEd6DndT7kDY1-A" name="[name/]" specification="_16jy8K-iEd6DndT7kDY1-A">
<language>C/C++</language>
<body>cout &lt;&lt; &quot;this is a sample pre-call interception&quot; &lt;&lt; endl;
rconn->&lt;%cppCall%>;
cout &lt;&lt; &quot;this is a sample post-call interception&quot; &lt;&lt; endl;</body>
</ownedBehavior>
- <ownedOperation xmi:id="_16jy8K-iEd6DndT7kDY1-A" name="[name/]" method="_GTvA0K-jEd6DndT7kDY1-A"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_16jy8K-iEd6DndT7kDY1-A" name="[name/]" method="_GTvA0K-jEd6DndT7kDY1-A"/>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_aQ7goChYEd-eoo60eNyGlg" name="CallActivation">
- <ownedComment xmi:id="_aAH58D8CEeGJ6KSvhYhYuQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_aAH58D8CEeGJ6KSvhYhYuQ">
<body>A set of Leader followers is instantiated. Each has its own thread and a semaphore. The LF instance waits on its semaphore. When selectLeader is called, a follower is signaled (semaphore is posted) and will become leader. The leader waits for a resource (e.g. a socket) and becomes executor.
</body>
</ownedComment>
<packagedElement xmi:type="uml:Class" xmi:id="_e6Y_EChYEd-eoo60eNyGlg" name="Activator">
- <generalization xmi:id="_oJX3IChYEd-eoo60eNyGlg" general="_KxQBELuXEd2TTr3gJIvazw"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_oJX3IChYEd-eoo60eNyGlg" general="_KxQBELuXEd2TTr3gJIvazw"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_qgzokChYEd-eoo60eNyGlg" name="LeaderFollower">
- <generalization xmi:id="_sW6OkChYEd-eoo60eNyGlg" general="_e6Y_EChYEd-eoo60eNyGlg"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_sW6OkChYEd-eoo60eNyGlg" general="_e6Y_EChYEd-eoo60eNyGlg"/>
<ownedAttribute xmi:type="uml:Port" xmi:id="_N0tB4Cu4Ed-uZPFNCty7PQ" name="listener" type="_fxfe8Cu1Ed-uZPFNCty7PQ" aggregation="composite">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UxKdsCu4Ed-uZPFNCty7PQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UxM58Cu4Ed-uZPFNCty7PQ" value="1"/>
</ownedAttribute>
- <ownedAttribute xmi:id="__fLb4Cu5Ed-uZPFNCty7PQ" name="state" type="_F3CIECu1Ed-uZPFNCty7PQ" isUnique="false" aggregation="composite"/>
- <ownedAttribute xmi:id="_M4VG8Cu9Ed-uZPFNCty7PQ" name="m_sema" type="_fxfe8Cu1Ed-uZPFNCty7PQ" isUnique="false" aggregation="composite"/>
- <ownedAttribute xmi:id="_rmwGoCu-Ed-uZPFNCty7PQ" name="m_sr" isStatic="true" type="_qgzokChYEd-eoo60eNyGlg" isUnique="false" aggregation="composite">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__fLb4Cu5Ed-uZPFNCty7PQ" name="state" type="_F3CIECu1Ed-uZPFNCty7PQ" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_M4VG8Cu9Ed-uZPFNCty7PQ" name="m_sema" type="_fxfe8Cu1Ed-uZPFNCty7PQ" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_rmwGoCu-Ed-uZPFNCty7PQ" name="m_sr" isStatic="true" type="_qgzokChYEd-eoo60eNyGlg" isUnique="false" aggregation="composite">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zYwqYCu-Ed-uZPFNCty7PQ" value="20"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zY4mMCu-Ed-uZPFNCty7PQ" value="20"/>
</ownedAttribute>
- <ownedAttribute xmi:id="_xukAICvDEd-uZPFNCty7PQ" name="m_tID" type="_5KatsCvDEd-uZPFNCty7PQ" isUnique="false" aggregation="composite"/>
- <ownedAttribute xmi:id="_Xq00oCvHEd-uZPFNCty7PQ" name="POOL_SIZE" isStatic="true" isUnique="false" aggregation="composite">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xukAICvDEd-uZPFNCty7PQ" name="m_tID" type="_5KatsCvDEd-uZPFNCty7PQ" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Xq00oCvHEd-uZPFNCty7PQ" name="POOL_SIZE" isStatic="true" isUnique="false" aggregation="composite">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_7wRIABydEduyofBvg4RL2w"/>
<defaultValue xmi:type="uml:LiteralInteger" xmi:id="_ZmFncCvHEd-uZPFNCty7PQ" value="20"/>
</ownedAttribute>
- <interfaceRealization xmi:id="_cWjrYCsAEd-uZPFNCty7PQ" name="derived realization of I" client="_qgzokChYEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_cWjrYCsAEd-uZPFNCty7PQ" name="derived realization of I" client="_qgzokChYEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_D8z3ECu1Ed-uZPFNCty7PQ" name="run" specification="_2FN1ICu0Ed-uZPFNCty7PQ">
<language>C/C++</language>
<body>for (;;) {
@@ -653,45 +653,45 @@ m_state = FOLLOWER;</body>
<language>C/C++</language>
<body>((LeaderFollower *) arg)->run();</body>
</ownedBehavior>
- <ownedOperation xmi:id="_2FN1ICu0Ed-uZPFNCty7PQ" name="run" method="_D8z3ECu1Ed-uZPFNCty7PQ"/>
- <ownedOperation xmi:id="_eHX3wCu7Ed-uZPFNCty7PQ" name="selectLeader" method="_wXEiYCu7Ed-uZPFNCty7PQ"/>
- <ownedOperation xmi:id="_JM4I4Cu9Ed-uZPFNCty7PQ" name="LeaderFollower" method="_4M1S0Cu9Ed-uZPFNCty7PQ"/>
- <ownedOperation xmi:id="_6cImgCu-Ed-uZPFNCty7PQ" name="init" isStatic="true" method="_OyEk4Cu_Ed-uZPFNCty7PQ"/>
- <ownedOperation xmi:id="_z-laoCvGEd-uZPFNCty7PQ" name="runStatic" method="_AGUogCvHEd-uZPFNCty7PQ">
- <ownedParameter xmi:id="_Dn-xYCvHEd-uZPFNCty7PQ" name="arg">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_2FN1ICu0Ed-uZPFNCty7PQ" name="run" method="_D8z3ECu1Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_eHX3wCu7Ed-uZPFNCty7PQ" name="selectLeader" method="_wXEiYCu7Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JM4I4Cu9Ed-uZPFNCty7PQ" name="LeaderFollower" method="_4M1S0Cu9Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_6cImgCu-Ed-uZPFNCty7PQ" name="init" isStatic="true" method="_OyEk4Cu_Ed-uZPFNCty7PQ"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_z-laoCvGEd-uZPFNCty7PQ" name="runStatic" method="_AGUogCvHEd-uZPFNCty7PQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Dn-xYCvHEd-uZPFNCty7PQ" name="arg">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
</ownedParameter>
- <ownedParameter xmi:id="_IdnDkCvHEd-uZPFNCty7PQ" name="ret" direction="return">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_IdnDkCvHEd-uZPFNCty7PQ" name="ret" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
</ownedParameter>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_2wMyEChiEd-eoo60eNyGlg" name="SimpleActivation">
- <generalization xmi:id="_5AKpkChiEd-eoo60eNyGlg" general="_e6Y_EChYEd-eoo60eNyGlg"/>
- <interfaceRealization xmi:id="_BhfKYChjEd-eoo60eNyGlg" name="derived realization of I" client="_2wMyEChiEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_5AKpkChiEd-eoo60eNyGlg" general="_e6Y_EChYEd-eoo60eNyGlg"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_BhfKYChjEd-eoo60eNyGlg" name="derived realization of I" client="_2wMyEChiEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_6rmQoChiEd-eoo60eNyGlg" name="Thread Pool">
- <generalization xmi:id="_892AEChiEd-eoo60eNyGlg" general="_e6Y_EChYEd-eoo60eNyGlg"/>
- <interfaceRealization xmi:id="_cWkScCsAEd-uZPFNCty7PQ" name="derived realization of I" client="_6rmQoChiEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_892AEChiEd-eoo60eNyGlg" general="_e6Y_EChYEd-eoo60eNyGlg"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_cWkScCsAEd-uZPFNCty7PQ" name="derived realization of I" client="_6rmQoChiEd-eoo60eNyGlg" supplier="_ZzlzMPfBEd2TbIfwytOyPA" contract="_ZzlzMPfBEd2TbIfwytOyPA"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_BY-fwCnxEd-eoo60eNyGlg" name="sem_t">
- <ownedAttribute xmi:id="_CQ_F0CnxEd-eoo60eNyGlg" name="lf" type="_qgzokChYEd-eoo60eNyGlg" isUnique="false" aggregation="composite"/>
- <ownedAttribute xmi:id="_PpWOECnxEd-eoo60eNyGlg" name="listener" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_CQ_F0CnxEd-eoo60eNyGlg" name="lf" type="_qgzokChYEd-eoo60eNyGlg" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_PpWOECnxEd-eoo60eNyGlg" name="listener" isUnique="false" aggregation="composite"/>
</packagedElement>
<packagedElement xmi:type="uml:Enumeration" xmi:id="_F3CIECu1Ed-uZPFNCty7PQ" name="LFState">
- <ownedLiteral xmi:id="_QSQJwCu1Ed-uZPFNCty7PQ" name="EXECUTOR"/>
- <ownedLiteral xmi:id="_R5B6UCu1Ed-uZPFNCty7PQ" name="FOLLOWER"/>
- <ownedLiteral xmi:id="_SxRJ4Cu1Ed-uZPFNCty7PQ" name="LEADER"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_QSQJwCu1Ed-uZPFNCty7PQ" name="EXECUTOR"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_R5B6UCu1Ed-uZPFNCty7PQ" name="FOLLOWER"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_SxRJ4Cu1Ed-uZPFNCty7PQ" name="LEADER"/>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_fxfe8Cu1Ed-uZPFNCty7PQ" name="IListener">
- <ownedOperation xmi:id="_eN6hcCu3Ed-uZPFNCty7PQ" name="exec" isAbstract="true"/>
- <ownedOperation xmi:id="_hY4ooCu3Ed-uZPFNCty7PQ" name="select" isAbstract="true"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_eN6hcCu3Ed-uZPFNCty7PQ" name="exec" isAbstract="true"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_hY4ooCu3Ed-uZPFNCty7PQ" name="select" isAbstract="true"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_5KatsCvDEd-uZPFNCty7PQ" name="pthread_t"/>
<packagedElement xmi:type="uml:Enumeration" xmi:id="_hcwDkD8CEeGJ6KSvhYhYuQ" name="LeaderFollowerState">
- <ownedLiteral xmi:id="_mzqd4D8CEeGJ6KSvhYhYuQ" name="LEADER"/>
- <ownedLiteral xmi:id="_qdIe8D8CEeGJ6KSvhYhYuQ" name="FOLLOWER"/>
- <ownedLiteral xmi:id="_rOMvgD8CEeGJ6KSvhYhYuQ" name="EXECUTOR"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_mzqd4D8CEeGJ6KSvhYhYuQ" name="LEADER"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_qdIe8D8CEeGJ6KSvhYhYuQ" name="FOLLOWER"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_rOMvgD8CEeGJ6KSvhYhYuQ" name="EXECUTOR"/>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:PrimitiveType" xmi:id="_xOqL0No9Ed-wvpj-p-V_QQ" name="CppParameterStorage"/>
@@ -706,141 +706,141 @@ m_state = FOLLOWER;</body>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_QwvnQFDlEd6cwecVIgl9nw" name="PortKinds">
- <ownedComment xmi:id="_FryEELnZEeCxXoyQxQ47PQ" annotatedElement="_Wtq4sFDlEd6cwecVIgl9nw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_FryEELnZEeCxXoyQxQ47PQ" annotatedElement="_Wtq4sFDlEd6cwecVIgl9nw">
<body>Simple provision of typing interface as provided interface</body>
</ownedComment>
- <ownedComment xmi:id="_K17NsLnZEeCxXoyQxQ47PQ" annotatedElement="_Wtrfw1DlEd6cwecVIgl9nw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_K17NsLnZEeCxXoyQxQ47PQ" annotatedElement="_Wtrfw1DlEd6cwecVIgl9nw">
<body>Simple provision of typing interface as required interface</body>
</ownedComment>
- <ownedComment xmi:id="_PxzR0LnZEeCxXoyQxQ47PQ" annotatedElement="__nMrwLqNEd-SedGzMDDkww">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_PxzR0LnZEeCxXoyQxQ47PQ" annotatedElement="__nMrwLqNEd-SedGzMDDkww">
<body>corba asynchronous messaging (AMI): Provision of poller variant of typing interface. Allows client to continue without waiting for the result</body>
</ownedComment>
- <ownedComment xmi:id="_l49WMLnZEeCxXoyQxQ47PQ" annotatedElement="__nMrwLqNEd-SedGzMDDkww _AQZZwLqOEd-SedGzMDDkww">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_l49WMLnZEeCxXoyQxQ47PQ" annotatedElement="__nMrwLqNEd-SedGzMDDkww _AQZZwLqOEd-SedGzMDDkww">
<body>corba asynchronous messaging (AMI): Provision of callback variant of typing interface. Allows client Allows client to continue without waiting for the result</body>
</ownedComment>
- <ownedComment xmi:id="_2dvXILnZEeCxXoyQxQ47PQ" annotatedElement="_Wtq4slDlEd6cwecVIgl9nw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_2dvXILnZEeCxXoyQxQ47PQ" annotatedElement="_Wtq4slDlEd6cwecVIgl9nw">
<body>Data Flow oriented communication: consume passively: provided push operation is called </body>
</ownedComment>
- <ownedComment xmi:id="_Ch2pQLnaEeCxXoyQxQ47PQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Ch2pQLnaEeCxXoyQxQ47PQ">
<body>Data Flow oriented communication: produce data via pushing these (calling the required operation) </body>
</ownedComment>
- <ownedComment xmi:id="_DsnzQLnaEeCxXoyQxQ47PQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_DsnzQLnaEeCxXoyQxQ47PQ">
<body>Data Flow oriented communication: produce data via pushing these (calling the required operation) </body>
</ownedComment>
- <ownedComment xmi:id="_FMuUELnaEeCxXoyQxQ47PQ" annotatedElement="_WtrfwlDlEd6cwecVIgl9nw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_FMuUELnaEeCxXoyQxQ47PQ" annotatedElement="_WtrfwlDlEd6cwecVIgl9nw">
<body>Data Flow oriented communication: produce data via pushing these (calling the required operation) </body>
</ownedComment>
- <ownedComment xmi:id="_GgtrgLnaEeCxXoyQxQ47PQ" annotatedElement="_Wtq4sVDlEd6cwecVIgl9nw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_GgtrgLnaEeCxXoyQxQ47PQ" annotatedElement="_Wtq4sVDlEd6cwecVIgl9nw">
<body>Data Flow oriented communication: consumer data actively by calling the required poll operation </body>
</ownedComment>
- <ownedComment xmi:id="_-UGDoDiyEeGiupyIkgMHVw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_-UGDoDiyEeGiupyIkgMHVw">
<body>In order to support icons, all port kinds are stereotypes, but for Qompass they are classes stereotyped as &quot;PortKind&quot;</body>
</ownedComment>
- <ownedComment xmi:id="_COvdAEMMEeKGIL695HkFYQ" annotatedElement="_GjnlcC8qEeKx7OxAiA06uw">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_COvdAEMMEeKGIL695HkFYQ" annotatedElement="_GjnlcC8qEeKx7OxAiA06uw">
<body> A bidirectional flow port combining a push-producer and a pull consumer</body>
</ownedComment>
- <ownedComment xmi:id="_7cXTsH-QEeOtkrzuMiGEow" annotatedElement="_1FxlEH-QEeOtkrzuMiGEow">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_7cXTsH-QEeOtkrzuMiGEow" annotatedElement="_1FxlEH-QEeOtkrzuMiGEow">
<body>Dummy interface returned by ports who need to update derived interfaces (but can only do so in the context of a transaction).</body>
</ownedComment>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtq4sFDlEd6cwecVIgl9nw" name="ProvideInterface">
- <icon xmi:id="__3j28DixEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%119%0%0%0%92%8%3%0%0%0%99%-116%-38%77%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%120%120%120%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-71%82%-104%50%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%4%-59%73%68%65%84%104%-127%-59%-102%109%91%-30%58%16%-122%11%-118%40%-88%108%-83%2%-53%-117%93%123%4%-75%-20%110%53%-83%69%-91%-108%30%20%-1%-1%79%58%-107%-77%72%38%77%-109%73%-126%-41%62%95%-55%-52%77%94%-102%-52%76%98%-111%29%104%-2%-74%26%-115%-22%-29%81%-27%-83%31%35%77%44%51%98%-68%58%60%-19%120%22%-91%-27%-76%57%-70%-8%90%-18%-62%127%6%-56%-83%58%-65%-34%-61%47%-30%94%28%-76%-7%-52%63%122%109%-4%-5%5%-36%-59%73%73%79%105%-75%43%59%-26%14%78%-28%-48%-75%-70%-29%-78%-31%-42%-32%94%96%-87%107%-14%96%71%-36%-80%-18%42%96%115%5%-50%46%-72%-117%-82%26%53%-41%-16%-38%-100%-69%127%-91%-116%-51%-43%-116%-52%-72%-15%-67%14%53%87%123%102%-62%117%94%52%-79%-106%-27%-78%-53%75%-127%-101%-88%79%45%5%102%-66%101%60%119%-66%44%117%58%124%-71%15%38%-66%-1%59%-104%-106%-73%-15%-58%122%-36%-92%-60%101%-89%89%-95%63%-108%120%-32%79%75%-42%94%85%-121%-21%100%60%87%-39%36%-31%-76%-75%111%-98%-72%61%-2%-95%-50%-115%121%115%43%-40%127%23%15%-100%-3%-37%-19%41%115%91%69%47%-35%-107%-48%34%-31%-20%-90%-53%-19%-116%-32%-72%-11%-30%127%-81%75%14%88%66%86%-33%11%86%45%53%-18%-96%48%104%47%-123%-115%-128%-93%-8%119%1%92%87%-31%-38%25%107%-34%-112%118%-10%127%-115%-39%51%-60%-21%43%112%27%-84%113%13%71%-51%-43%103%-65%-66%78%-120%-26%-10%-104%81%-10%-86%114%-101%79%37%-20%88%-43%-48%-36%103%3%44%33%51%-90%-57%-18%5%-110%59%102%-2%-16%88%106%1%-107%48%115%28%32%-71%41%52%-13%21%-79%-124%92%-62%121%-14%18%20%-73%2%-79%-33%-112%43%-103%-42%29%116%-47%68%113%97%-108%-4%-54%13%-106%36%10%-65%1%31%87%14%-126%-5%6%-1%-21%72%3%-101%-81%45%120%66%77%16%-36%0%88%60%106%97%-39%-111%-50%-28%-36%8%44%70%-113%119%-22%97%20%-62%-59%121%41%-27%94%-125%-10%-57%-102%88%-10%99%12%-92%92%120%-2%45%-76%-71%33%-40%61%-36%80%-62%13%-63%48%-73%-124%109%-59%58%0%29%-24%75%-72%125%-48%-102%23%-9%99%-27%-128%-51%-29%78%-62%5%-21%-48%45%70%-3%10%2%51%54%-107%112%31%-103%-43%96%-96%17%-19%-22%42%18%115%95%-23%-58%122%123%-58%70%51%-72%66%-123%92%27%-76%-59%-124%54%2%-127%-120%-76%-14%-121%27%-49%120%-86%-46%77%51%51%44%-36%-7%110%63%-72%-47%-92%-115%-88%86%-24%-18%-111%27%-127%47%-23%-34%66%-89%-46%13%67%46%56%80%-97%44%18%103%40%-84%-75%111%-56%-99%-45%-50%-50%45%-46%-60%97%13%-105%51%-77%-96%83%-117%12%-111%92%113%90%34%87%8%-71%9%18%107%-67%25%114%9%-19%-52%-77%46%-1%10%-41%-75%-20%50%14%43%65%-47%15%-91%-104%118%-106%-49%47%-74%106%-79%-21%117%85%45%3%49%58%48%-28%-10%104%103%-7%-9%75%30%112%-36%95%-122%-36%127%104%103%-45%-100%27%-6%-120%93%50%-1%-117%-122%92%-97%118%-42%92%-97%11%73%-19%-8%-119%39%80%39%27%26%114%65%-35%-95%38%60%7%35%-48%-31%-98%-88%-87%92%96%127%122%23%-97%-5%32%-20%-59%103%-37%60%-127%101%-107%-17%86%-62%-58%-57%116%91%-109%112%-110%-112%91%56%103%98%-18%30%-35%-40%-45%-55%-55%62%5%-14%-69%19%9%23%-100%93%70%3%-67%0%-98%-10%100%-7%2%8%-13%59%6%92%88%-101%-103%-53%-72%48%29%-44%-33%-94%29%-112%-119%102%-46%-4%8%-90%-65%-25%-38%92%-80%105%124%36%-64%-78%-4%55%3%6%-17%-102%88%7%6%23%115%57%-9%16%24%100%-102%-87%10%-100%-82%103%34%-25%-62%21%-67%46%17%-88%-117%-119%45%-10%17%92%-72%-83%90%94%-55%-11%-105%80%76%125%115%25%97%-72%-16%-61%-77%-78%51%117%46%83%-119%94%111%3%-14%-70%-39%41%-76%106%41%23%-80%-104%-14%-43%-48%-58%113%7%-48%76%57%29%29%49%-10%119%4%-57%37%108%-11%-6%72%9%91%101%-126%-118%52%-62%114%-49%-40%-56%30%91%-11%-26%97%55%-31%63%-90%-18%-67%-49%-104%90%15%-24%-49%-72%112%49%-15%64%-16%92%-90%-66%-104%-85%-115%43%-96%21%-17%49%95%55%79%29%80%-9%26%78%-31%-82%-52%-67%65%-104%-11%82%-42%108%-101%100%-31%-18%113%126%20%35%-50%-87%-84%-53%118%-77%104%-12%-13%-13%87%-28%-67%-107%95%112%97%121%13%-47%-13%-112%-88%-58%-71%79%-100%110%23%36%-10%126%48%40%122%-79%-68%-96%-84%112%-24%-44%121%-73%-104%93%123%-37%2%-53%13%-7%-113%24%-38%7%-59%42%-113%125%125%-54%77%4%50%58%62%67%-33%-61%-58%-36%59%-50%92%105%112%115%-71%-15%24%-9%-85%71%101%-49%88%-106%96%65%-32%-17%-99%-29%105%-119%-61%-11%-112%-89%-23%75%-102%-118%94%88%64%-84%-54%61%123%-120%76%-32%-72%-22%50%-117%80%-23%61%-61%-111%54%-10%-23%-116%113%-91%-10%126%-93%112%-49%-120%84%113%71%87%124%55%50%19%63%126%-30%107%-56%-119%127%85%-33%-55%68%13%84%-78%76%-21%-111%87%80%85%127%-113%52%127%-106%-93%40%45%-7%85%122%-99%-9%87%123%-27%-81%52%88%93%29%-39%124%31%90%-17%-66%-94%-101%-30%-43%61%-105%-38%40%77%33%53%-33%-71%-123%99%-7%104%103%126%73%95%13%-72%-71%-110%-119%-88%-45%110%32%-82%-17%25%-67%-97%-20%-33%-74%-72%31%-12%-7%-31%74%22%9%25%-66%-37%36%97%127%-4%-13%-76%-67%-119%-4%-68%116%-38%-84%-83%4%-61%-69%51%-18%-89%102%-77%25%-10%-115%-22%-121%-2%3%52%51%-49%67%-105%-19%90%17%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%5%-46%-52%-24%92%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
- <eAnnotations xmi:id="_17F1IDrSEeGKkdk54CX6PQ" source="image_papyrus">
- <details xmi:id="_17HDQDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
- <details xmi:id="_Sn5bADrXEeGMCcwsbpLuFA" key="image_name_key" value="IconProvideInterface"/>
+ <icon xmi:type="uml:Image" xmi:id="__3j28DixEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%119%0%0%0%92%8%3%0%0%0%99%-116%-38%77%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%120%120%120%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-71%82%-104%50%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%4%-59%73%68%65%84%104%-127%-59%-102%109%91%-30%58%16%-122%11%-118%40%-88%108%-83%2%-53%-117%93%123%4%-75%-20%110%53%-83%69%-91%-108%30%20%-1%-1%79%58%-107%-77%72%38%77%-109%73%-126%-41%62%95%-55%-52%77%94%-102%-52%76%98%-111%29%104%-2%-74%26%-115%-22%-29%81%-27%-83%31%35%77%44%51%98%-68%58%60%-19%120%22%-91%-27%-76%57%-70%-8%90%-18%-62%127%6%-56%-83%58%-65%-34%-61%47%-30%94%28%-76%-7%-52%63%122%109%-4%-5%5%-36%-59%73%73%79%105%-75%43%59%-26%14%78%-28%-48%-75%-70%-29%-78%-31%-42%-32%94%96%-87%107%-14%96%71%-36%-80%-18%42%96%115%5%-50%46%-72%-117%-82%26%53%-41%-16%-38%-100%-69%127%-91%-116%-51%-43%-116%-52%-72%-15%-67%14%53%87%123%102%-62%117%94%52%-79%-106%-27%-78%-53%75%-127%-101%-88%79%45%5%102%-66%101%60%119%-66%44%117%58%124%-71%15%38%-66%-1%59%-104%-106%-73%-15%-58%122%-36%-92%-60%101%-89%89%-95%63%-108%120%-32%79%75%-42%94%85%-121%-21%100%60%87%-39%36%-31%-76%-75%111%-98%-72%61%-2%-95%-50%-115%121%115%43%-40%127%23%15%-100%-3%-37%-19%41%115%91%69%47%-35%-107%-48%34%-31%-20%-90%-53%-19%-116%-32%-72%-11%-30%127%-81%75%14%88%66%86%-33%11%86%45%53%-18%-96%48%104%47%-123%-115%-128%-93%-8%119%1%92%87%-31%-38%25%107%-34%-112%118%-10%127%-115%-39%51%-60%-21%43%112%27%-84%113%13%71%-51%-43%103%-65%-66%78%-120%-26%-10%-104%81%-10%-86%114%-101%79%37%-20%88%-43%-48%-36%103%3%44%33%51%-90%-57%-18%5%-110%59%102%-2%-16%88%106%1%-107%48%115%28%32%-71%41%52%-13%21%-79%-124%92%-62%121%-14%18%20%-73%2%-79%-33%-112%43%-103%-42%29%116%-47%68%113%97%-108%-4%-54%13%-106%36%10%-65%1%31%87%14%-126%-5%6%-1%-21%72%3%-101%-81%45%120%66%77%16%-36%0%88%60%106%97%-39%-111%-50%-28%-36%8%44%70%-113%119%-22%97%20%-62%-59%121%41%-27%94%-125%-10%-57%-102%88%-10%99%12%-92%92%120%-2%45%-76%-71%33%-40%61%-36%80%-62%13%-63%48%-73%-124%109%-59%58%0%29%-24%75%-72%125%-48%-102%23%-9%99%-27%-128%-51%-29%78%-62%5%-21%-48%45%70%-3%10%2%51%54%-107%112%31%-103%-43%96%-96%17%-19%-22%42%18%115%95%-23%-58%122%123%-58%70%51%-72%66%-123%92%27%-76%-59%-124%54%2%-127%-120%-76%-14%-121%27%-49%120%-86%-46%77%51%51%44%-36%-7%110%63%-72%-47%-92%-115%-88%86%-24%-18%-111%27%-127%47%-23%-34%66%-89%-46%13%67%46%56%80%-97%44%18%103%40%-84%-75%111%-56%-99%-45%-50%-50%45%-46%-60%97%13%-105%51%-77%-96%83%-117%12%-111%92%113%90%34%87%8%-71%9%18%107%-67%25%114%9%-19%-52%-77%46%-1%10%-41%-75%-20%50%14%43%65%-47%15%-91%-104%118%-106%-49%47%-74%106%-79%-21%117%85%45%3%49%58%48%-28%-10%104%103%-7%-9%75%30%112%-36%95%-122%-36%127%104%103%-45%-100%27%-6%-120%93%50%-1%-117%-122%92%-97%118%-42%92%-97%11%73%-19%-8%-119%39%80%39%27%26%114%65%-35%-95%38%60%7%35%-48%-31%-98%-88%-87%92%96%127%122%23%-97%-5%32%-20%-59%103%-37%60%-127%101%-107%-17%86%-62%-58%-57%116%91%-109%112%-110%-112%91%56%103%98%-18%30%-35%-40%-45%-55%-55%62%5%-14%-69%19%9%23%-100%93%70%3%-67%0%-98%-10%100%-7%2%8%-13%59%6%92%88%-101%-103%-53%-72%48%29%-44%-33%-94%29%-112%-119%102%-46%-4%8%-90%-65%-25%-38%92%-80%105%124%36%-64%-78%-4%55%3%6%-17%-102%88%7%6%23%115%57%-9%16%24%100%-102%-87%10%-100%-82%103%34%-25%-62%21%-67%46%17%-88%-117%-119%45%-10%17%92%-72%-83%90%94%-55%-11%-105%80%76%125%115%25%97%-72%-16%-61%-77%-78%51%117%46%83%-119%94%111%3%-14%-70%-39%41%-76%106%41%23%-80%-104%-14%-43%-48%-58%113%7%-48%76%57%29%29%49%-10%119%4%-57%37%108%-11%-6%72%9%91%101%-126%-118%52%-62%114%-49%-40%-56%30%91%-11%-26%97%55%-31%63%-90%-18%-67%-49%-104%90%15%-24%-49%-72%112%49%-15%64%-16%92%-90%-66%-104%-85%-115%43%-96%21%-17%49%95%55%79%29%80%-9%26%78%-31%-82%-52%-67%65%-104%-11%82%-42%108%-101%100%-31%-18%113%126%20%35%-50%-87%-84%-53%118%-77%104%-12%-13%-13%87%-28%-67%-107%95%112%97%121%13%-47%-13%-112%-88%-58%-71%79%-100%110%23%36%-10%126%48%40%122%-79%-68%-96%-84%112%-24%-44%121%-73%-104%93%123%-37%2%-53%13%-7%-113%24%-38%7%-59%42%-113%125%125%-54%77%4%50%58%62%67%-33%-61%-58%-36%59%-50%92%105%112%115%-71%-15%24%-9%-85%71%101%-49%88%-106%96%65%-32%-17%-99%-29%105%-119%-61%-11%-112%-89%-23%75%-102%-118%94%88%64%-84%-54%61%123%-120%76%-32%-72%-22%50%-117%80%-23%61%-61%-111%54%-10%-23%-116%113%-91%-10%126%-93%112%-49%-120%84%113%71%87%124%55%50%19%63%126%-30%107%-56%-119%127%85%-33%-55%68%13%84%-78%76%-21%-111%87%80%85%127%-113%52%127%-106%-93%40%45%-7%85%122%-99%-9%87%123%-27%-81%52%88%93%29%-39%124%31%90%-17%-66%-94%-101%-30%-43%61%-105%-38%40%77%33%53%-33%-71%-123%99%-7%104%103%126%73%95%13%-72%-71%-110%-119%-88%-45%110%32%-82%-17%25%-67%-97%-20%-33%-74%-72%31%-12%-7%-31%74%22%9%25%-66%-37%36%97%127%-4%-13%-76%-67%-119%-4%-68%116%-38%-84%-83%4%-61%-69%51%-18%-89%102%-77%25%-10%-115%-22%-121%-2%3%52%51%-49%67%-105%-19%90%17%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%5%-46%-52%-24%92%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_17F1IDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_17HDQDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Sn5bADrXEeGMCcwsbpLuFA" key="image_name_key" value="IconProvideInterface"/>
</eAnnotations>
</icon>
- <icon xmi:id="_ToC6oDl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%84%0%0%0%101%8%3%0%0%0%-28%-109%52%-5%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-52%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%82%82%82%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%24%24%24%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-33%61%-9%-93%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%41%73%68%65%84%104%-127%-83%-39%125%91%-38%48%16%0%-16%-29%101%12%-76%32%32%69%17%-95%88%-107%23%-69%45%-43%90%-83%5%117%-32%-9%-1%78%-125%103%-37%67%47%109%115%-105%54%-9%119%-8%61%41%73%-109%-69%43%-120%-14%17%92%86%-105%86%56%-116%15%49%12%-83%-42%26%74%-126%-35%-54%106%8%82%84%74%-95%-125%-58%-117%12%30%98%84%28%125%-84%-74%-99%44%18%-96%87%20%125%-84%127%100%-117%0%83%81%12%85%-112%0%-61%98%-24%-83%-126%4%120%42%-126%-66%61%-87%72%-128%7%125%-44%-97%79%-43%38%-52%-75%-47%-2%25%65%2%-72%-70%-24%104%67%-102%-80%-43%68%107%57%59%19%69%-92%-121%46%25%36%-128%-81%-123%54%115%-99%-15%-85%-41%-88%110%15%81%-83%-51%-123%6%-22%63%100%-125%-45%-50%-3%-91%52%-108%-113%-98%100%-110%-81%-75%94%122%40%27%-99%103%-111%-42%58%115%44%23%-67%-31%-109%108%116%-108%-34%75%-101%93%-18%104%30%-38%77%-17%-7%102%-112%63%-100%-121%-2%72%-19%-95%47%-43%112%22%122%39%-101%118%-92%28%-49%65%-93%-119%100%-122%-118%71%-25%-94%-14%-61%119%8%-109%-125%110%37%-13%-52%-89%126%65%-93%-66%116%-81%15%-87%121%114%-48%26%54%63%-6%-28%47%104%-44%-57%91%-44%-71%-94%77%26%-67%-59%19%-99%51%76%26%-75%-15%102%34%23%-119%-125%86%-16%-61%-65%113%76%18%-75%16%-38%98%-103%20%-38%67%-89%-45%-17%-82%17%20%47%-45%61%-49%-92%-48%48%105%-114%-103%19%37%-48%1%-102%104%-109%105%18%-88%-117%-48%-127%25%-44%67%123%-108%107%18%104%-100%68%-17%-52%-96%17%122%-6%-116%11%-66%8%58%75%-102%54%-37%84%-93%40%-127%96%-66%77%36%-118%-18%-111%-118%33%-12%60%-119%50%14%103%22%58%78%-104%19%-66%-87%68%-125%-126%-21%116%64%-3%-111%91%91%36%-93%-27%-3%-115%95%73%-12%84%11%29%93%0%39%60%29%-12%-115%42%-117%-2%-59%82%7%125%-26%-103%-80%-48%65%57%69%-116%54%-54%13%45%-108%-7%-105%-62%119%29%-12%39%19%-43%90%-3%-63%-104%6%15%-47%-42%65%69%-60%91%127%-51%55%74%116%-81%-73%-57%-72%-114%-114%-15%-103%64%29%77%52%55%-48%5%-51%-53%120%104%20%85%-93%51%67%-24%-73%36%-70%50%-124%-94%-108%111%104%8%-19%-93%-11%103%-25%18%-60%-67%-113%106%-120%-70%33%116%-107%68%-49%13%-95%51%-12%-4%-20%77%-91%70%-5%-24%96%100%-33%-4%68%126%-118%58%112%83%51%-7%-87%-108%75%114%-49%84%2%13%-48%113%-53%77%-91%-87%-22%-28%20%77%-107%-7%86%81%-24%14%-95%78%94%43%70%15%-107%42%-66%23%35%21%-97%-76%85%121%-41%63%93%69%-93%20%29%-100%107%19%-88%92%70%27%-87%-9%83%-99%-119%11%19%-99%9%113%-123%81%70%121%-50%-23%-10%120%-110%-6%108%-96%-37%35%6%-87%-66%20%81%-3%-80%58%104%-82%-124%-62%69%-7%14%90%-6%15%-128%-119%-14%110%-27%-95%65%44%-85%112%82%-70%43%41%46%-45%-55%-31%38%-65%-80%-30%118%122%-85%41%116%-97%-77%-107%-20%-12%74%-119%-59%-1%-80%-34%-53%-95%57%93%126%-69%94%-90%123%46%-35%-41%-57%112%-98%23%35%-23%29%51%-13%69%98%106%91%75%-41%-35%109%-65%92%-9%74%19%21%-115%92%-11%24%15%-70%40%-25%43%-113%-89%-115%-118%119%-14%123%-44%-87%62%42%122%29%2%13%11%-96%-5%13%-85%-82%-68%-118%-95%34%82%78%-42%46%-122%10%113%-93%-8%103%-29%-94%-88%-22%11%111%113%84%-59%-106%64%-9%-73%108%-59%-54%-36%-75%-91%-48%125%-12%-22%97%-38%13%74%-94%-5%8%118%45%27%-61%81%121%-12%16%-2%-70%-46%-16%-38%97%24%-57%113%24%-74%-9%71%-31%31%12%-33%-99%51%8%-119%86%-81%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%45%-25%121%64%-90%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
- <eAnnotations xmi:id="_2ypIMDrSEeGKkdk54CX6PQ" source="image_papyrus">
- <details xmi:id="_2ypvQDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
- <details xmi:id="_UMxHEDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjProvideInterface"/>
+ <icon xmi:type="uml:Image" xmi:id="_ToC6oDl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%84%0%0%0%101%8%3%0%0%0%-28%-109%52%-5%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-52%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%82%82%82%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%24%24%24%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-33%61%-9%-93%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%41%73%68%65%84%104%-127%-83%-39%125%91%-38%48%16%0%-16%-29%101%12%-76%32%32%69%17%-95%88%-107%23%-69%45%-43%90%-83%5%117%-32%-9%-1%78%-125%103%-37%67%47%109%115%-105%54%-9%119%-8%61%41%73%-109%-69%43%-120%-14%17%92%86%-105%86%56%-116%15%49%12%-83%-42%26%74%-126%-35%-54%106%8%82%84%74%-95%-125%-58%-117%12%30%98%84%28%125%-84%-74%-99%44%18%-96%87%20%125%-84%127%100%-117%0%83%81%12%85%-112%0%-61%98%-24%-83%-126%4%120%42%-126%-66%61%-87%72%-128%7%125%-44%-97%79%-43%38%-52%-75%-47%-2%25%65%2%-72%-70%-24%104%67%-102%-80%-43%68%107%57%59%19%69%-92%-121%46%25%36%-128%-81%-123%54%115%-99%-15%-85%-41%-88%110%15%81%-83%-51%-123%6%-22%63%100%-125%-45%-50%-3%-91%52%-108%-113%-98%100%-110%-81%-75%94%122%40%27%-99%103%-111%-42%58%115%44%23%-67%-31%-109%108%116%-108%-34%75%-101%93%-18%104%30%-38%77%-17%-7%102%-112%63%-100%-121%-2%72%-19%-95%47%-43%112%22%122%39%-101%118%-92%28%-49%65%-93%-119%100%-122%-118%71%-25%-94%-14%-61%119%8%-109%-125%110%37%-13%-52%-89%126%65%-93%-66%116%-81%15%-87%121%114%-48%26%54%63%-6%-28%47%104%-44%-57%91%-44%-71%-94%77%26%-67%-59%19%-99%51%76%26%-75%-15%102%34%23%-119%-125%86%-16%-61%-65%113%76%18%-75%16%-38%98%-103%20%-38%67%-89%-45%-17%-82%17%20%47%-45%61%-49%-92%-48%48%105%-114%-103%19%37%-48%1%-102%104%-109%105%18%-88%-117%-48%-127%25%-44%67%123%-108%107%18%104%-100%68%-17%-52%-96%17%122%-6%-116%11%-66%8%58%75%-102%54%-37%84%-93%40%-127%96%-66%77%36%-118%-18%-111%-118%33%-12%60%-119%50%14%103%22%58%78%-104%19%-66%-87%68%-125%-126%-21%116%64%-3%-111%91%91%36%-93%-27%-3%-115%95%73%-12%84%11%29%93%0%39%60%29%-12%-115%42%-117%-2%-59%82%7%125%-26%-103%-80%-48%65%57%69%-116%54%-54%13%45%-108%-7%-105%-62%119%29%-12%39%19%-43%90%-3%-63%-104%6%15%-47%-42%65%69%-60%91%127%-51%55%74%116%-81%-73%-57%-72%-114%-114%-15%-103%64%29%77%52%55%-48%5%-51%-53%120%104%20%85%-93%51%67%-24%-73%36%-70%50%-124%-94%-108%111%104%8%-19%-93%-11%103%-25%18%-60%-67%-113%106%-120%-70%33%116%-107%68%-49%13%-95%51%-12%-4%-20%77%-91%70%-5%-24%96%100%-33%-4%68%126%-118%58%112%83%51%-7%-87%-108%75%114%-49%84%2%13%-48%113%-53%77%-91%-87%-22%-28%20%77%-107%-7%86%81%-24%14%-95%78%94%43%70%15%-107%42%-66%23%35%21%-97%-76%85%121%-41%63%93%69%-93%20%29%-100%107%19%-88%92%70%27%-87%-9%83%-99%-119%11%19%-99%9%113%-123%81%70%121%-50%-23%-10%120%-110%-6%108%-96%-37%35%6%-87%-66%20%81%-3%-80%58%104%-82%-124%-62%69%-7%14%90%-6%15%-128%-119%-14%110%-27%-95%65%44%-85%112%82%-70%43%41%46%-45%-55%-31%38%-65%-80%-30%118%122%-85%41%116%-97%-77%-107%-20%-12%74%-119%-59%-1%-80%-34%-53%-95%57%93%126%-69%94%-90%123%46%-35%-41%-57%112%-98%23%35%-23%29%51%-13%69%98%106%91%75%-41%-35%109%-65%92%-9%74%19%21%-115%92%-11%24%15%-70%40%-25%43%-113%-89%-115%-118%119%-14%123%-44%-87%62%42%122%29%2%13%11%-96%-5%13%-85%-82%-68%-118%-95%34%82%78%-42%46%-122%10%113%-93%-8%103%-29%-94%-88%-22%11%111%113%84%-59%-106%64%-9%-73%108%-59%-54%-36%-75%-91%-48%125%-12%-22%97%-38%13%74%-94%-5%8%118%45%27%-61%81%121%-12%16%-2%-70%-46%-16%-38%97%24%-57%113%24%-74%-9%71%-31%31%12%-33%-99%51%8%-119%86%-81%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%45%-25%121%64%-90%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2ypIMDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2ypvQDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UMxHEDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjProvideInterface"/>
</eAnnotations>
</icon>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtq4sVDlEd6cwecVIgl9nw" name="PullConsumer">
- <icon xmi:id="_CVWIADiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%97%0%0%0%98%8%0%0%0%0%101%-7%-30%-47%0%0%2%120%73%68%65%84%104%-127%-75%-38%-51%75%21%81%24%6%-16%-125%-106%105%25%-106%38%-107%84%-76%50%-119%-54%32%90%37%-75%-120%72%-94%69%-117%104%85%86%-46%-90%112%97%73%33%-47%-86%-123%16%33%70%17%-47%-54%-94%47%-24%3%-63%34%-56%-115%20%-35%77%4%-110%65%-123%27%11%51%37%-107%-16%-93%-85%-34%105%-26%-23%74%31%115%-18%120%103%-18%97%-50%-5%60%127%-64%-4%86%103%-26%61%-49%59%10%-99%23%-102%121%105%31%-127%122%-80%72%17%-77%-96%98%68%85%51%-127%116%-82%-87%26%-78%112%76%-35%34%11%117%106%-74%-98%45%32%121%-124%45%96%124%55%91%-64%-40%46%-74%-128%-127%-51%108%1%-3%-107%108%1%61%107%-40%2%-34%-106%-78%5%116%-111%8%95%-64%-45%34%-74%-32%-35%-90%16%-102%0%-17%106%62%89%-128%-45%66%32%50%4%56%-115%108%1%-45%39%-39%2%-110%7%-39%2%38%14%-80%5%-116%-18%96%11%24%-38%-50%22%-48%-73%-127%45%-32%-29%58%-74%-128%-41%43%-39%2%94%-107%-80%5%116%-120%17%97%2%-18%20%-78%5%-9%-70%16%17%42%-64%-67%40%-13%-94%13%23%-112%58%47%66%68%8%72%29%103%11%-104%58%-52%22%48%-79%-113%45%96%108%15%91%-64%-32%54%-74%-128%47%-101%-40%2%-34%-83%103%11%-24%89%-59%22%-16%-94%-116%45%-32%-39%82%-74%-128%-69%-59%108%1%55%11%-40%-126%123%41%54%97%40%-64%109%-54%35%11%-104%-39%-49%22%-34%-105%-109%-123%-127%-86%-104%-128%-87%-16%99%103%92%-64%80%-104%58%20%27%48%19%82%-89%-29%3%70%-126%-41%106%51%18%-104%8%-9%-84%38%39%3%-95%107%-103%13%96%32%-12%-38%125%30%114%11%-33%108%-81%43%-71%-124%113%-21%-6%44%-121%-112%-76%56%8%70%-126%115%-58%26%-120%22%-68%54%-127%-39%56%82%120%36%81%7%69%9%-35%-53%5%-128%40%-95%-73%66%2%-120%16%6%55%-118%0%-31%-62%100%-4%47%-126%-103%48%45%113%57%-119%18%-100%38%41%32%68%-16%-82%-56%21%126%-39%-123%-57%-126%-67%104%86%33%97%53%108%27%8%31%68%91%-10%44%-62%87%-39%101%-60%124%65%122%103%51%79%-104%-107%-34%59%5%-123%95%103%-123%-127%-96%64%40%-41%3%-62%-109%-59%-46%64%64%72%-84%16%7%50%5%-47%22%52%-101%48%-76%-107%0%-24%-62%-28%94%6%-96%9%-87%58%10%-32%11%-18%57%14%-32%11%55%72%-64%127%-95%-109%-10%63%-62%95%-31%13%107%103%-7%79%-24%91%75%3%-2%8%-33%41%7%65%19%126%-42%18%-127%57%-63%57%-63%4%-46%-126%-37%76%5%-46%66%7%23%80%71%85%-36%86%-57%52%-83%-86%-127%-6%-4%-68%-110%97%-11%-87%44%-93%-3%-54%-41%-78%-80%64%75%-111%-106%37%-59%126%86%111%-47%82%-85%-91%-2%84%58%109%-61%80%24%109%-65%-84%-27%-2%67%63%-49%95%-6%73%124%-42%50%19%28%-127%-94%-14%27%-2%-94%-44%59%115%-35%74%-17%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
- <eAnnotations xmi:id="_4KKUwDrSEeGKkdk54CX6PQ" source="image_papyrus">
- <details xmi:id="_4KLi4DrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
- <details xmi:id="_MdOBcDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconPushConsumer"/>
+ <icon xmi:type="uml:Image" xmi:id="_CVWIADiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%97%0%0%0%98%8%0%0%0%0%101%-7%-30%-47%0%0%2%120%73%68%65%84%104%-127%-75%-38%-51%75%21%81%24%6%-16%-125%-106%105%25%-106%38%-107%84%-76%50%-119%-54%32%90%37%-75%-120%72%-94%69%-117%104%85%86%-46%-90%112%97%73%33%-47%-86%-123%16%33%70%17%-47%-54%-94%47%-24%3%-63%34%-56%-115%20%-35%77%4%-110%65%-123%27%11%51%37%-107%-16%-93%-85%-34%105%-26%-23%74%31%115%-18%120%103%-18%97%-50%-5%60%127%-64%-4%86%103%-26%61%-49%59%10%-99%23%-102%121%105%31%-127%122%-80%72%17%-77%-96%98%68%85%51%-127%116%-82%-87%26%-78%112%76%-35%34%11%117%106%-74%-98%45%32%121%-124%45%96%124%55%91%-64%-40%46%-74%-128%-127%-51%108%1%-3%-107%108%1%61%107%-40%2%-34%-106%-78%5%116%-111%8%95%-64%-45%34%-74%-32%-35%-90%16%-102%0%-17%106%62%89%-128%-45%66%32%50%4%56%-115%108%1%-45%39%-39%2%-110%7%-39%2%38%14%-80%5%-116%-18%96%11%24%-38%-50%22%-48%-73%-127%45%-32%-29%58%-74%-128%-41%43%-39%2%94%-107%-80%5%116%-120%17%97%2%-18%20%-78%5%-9%-70%16%17%42%-64%-67%40%-13%-94%13%23%-112%58%47%66%68%8%72%29%103%11%-104%58%-52%22%48%-79%-113%45%96%108%15%91%-64%-32%54%-74%-128%47%-101%-40%2%-34%-83%103%11%-24%89%-59%22%-16%-94%-116%45%-32%-39%82%-74%-128%-69%-59%108%1%55%11%-40%-126%123%41%54%97%40%-64%109%-54%35%11%-104%-39%-49%22%-34%-105%-109%-123%-127%-86%-104%-128%-87%-16%99%103%92%-64%80%-104%58%20%27%48%19%82%-89%-29%3%70%-126%-41%106%51%18%-104%8%-9%-84%38%39%3%-95%107%-103%13%96%32%-12%-38%125%30%114%11%-33%108%-81%43%-71%-124%113%-21%-6%44%-121%-112%-76%56%8%70%-126%115%-58%26%-120%22%-68%54%-127%-39%56%82%120%36%81%7%69%9%-35%-53%5%-128%40%-95%-73%66%2%-120%16%6%55%-118%0%-31%-62%100%-4%47%-126%-103%48%45%113%57%-119%18%-100%38%41%32%68%-16%-82%-56%21%126%-39%-123%-57%-126%-67%104%86%33%97%53%108%27%8%31%68%91%-10%44%-62%87%-39%101%-60%124%65%122%103%51%79%-104%-107%-34%59%5%-123%95%103%-123%-127%-96%64%40%-41%3%-62%-109%-59%-46%64%64%72%-84%16%7%50%5%-47%22%52%-101%48%-76%-107%0%-24%-62%-28%94%6%-96%9%-87%58%10%-32%11%-18%57%14%-32%11%55%72%-64%127%-95%-109%-10%63%-62%95%-31%13%107%103%-7%79%-24%91%75%3%-2%8%-33%41%7%65%19%126%-42%18%-127%57%-63%57%-63%4%-46%-126%-37%76%5%-46%66%7%23%80%71%85%-36%86%-57%52%-83%-86%-127%-6%-4%-68%-110%97%-11%-87%44%-93%-3%-54%-41%-78%-80%64%75%-111%-106%37%-59%126%86%111%-47%82%-85%-91%-2%84%58%109%-61%80%24%109%-65%-84%-27%-2%67%63%-49%95%-6%73%124%-42%50%19%28%-127%-94%-14%27%-2%-94%-44%59%115%-35%74%-17%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4KKUwDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4KLi4DrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MdOBcDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconPushConsumer"/>
</eAnnotations>
</icon>
- <icon xmi:id="_kZGdADl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%108%0%0%0%97%8%0%0%0%0%22%-109%27%-49%0%0%2%-101%73%68%65%84%104%-127%-67%-38%-51%75%84%81%24%6%-16%-25%-36%59%87%68%43%107%76%40%63%42%-84%4%-125%1%49%-86%77%-82%70%24%-120%54%-39%-57%44%18%35%-110%62%104%-91%-83%10%-108%32%-94%64%40%92%-10%-79%-120%-118%8%23%82%-101%26%-124%22%65%41%4%69%-117%-118%-124%114%17%52%65%-108%9%105%-47%-28%116%26%107%76%-13%-34%-21%-67%112%-49%-5%60%-1%-64%111%49%103%120%-97%123%-34%3%61%118%-78%37%84%118%-89%61%115%-30%-123%14%29%76%39%16%41%106%-29%72%120%44%19%-51%42%100%-61%-77%-48%-40%-11%-56%24%-102%71%-119%-104%-38%-10%-114%-121%-63%74%101%121%24%84%-37%4%15%-125%-35%17%70%51%-124%-63%62%62%21%2%-21%55%-125%-63%-23%-2%30%-116%-99%54%-124%-95%-12%124%-114%-121%-95%-20%66%-98%-121%97%-7%-75%0%-51%36%-122%-8%32%17%67%-19%61%34%-122%-75%-113%-120%24%26%-122%-119%24%-102%94%19%49%-75%-27%45%15%-125%74%-67%-25%97%-80%118%-114%-13%48%-60%14%-8%-116%0%9%12%-79%-61%-34%35%64%4%-125%-45%-27%-87%-55%96%112%-50%120%-115%0%-12%-120%96%40%-21%-101%-10%-64%14%-55%96%88%-26%49%2%-48%33%-124%33%126%-117%-120%-95%-58%53%2%4%49%-84%121%72%-60%-48%48%66%-60%-48%-8%-110%-120%-87%-83%-93%60%12%42%-103%-27%97%-80%118%124%-28%97%-80%-38%39%120%24%-20%-125%83%60%-84%-16%21%-16%-115%-121%-63%-23%-51%-15%-80%-62%8%-56%-15%48%-108%95%-3%-59%-61%-80%-30%-58%31%108%23%5%67%85%102%6%-37%-50%-63%80%-5%-128%-120%97%-3%19%34%-122%-42%28%17%-85%120%78%-60%-86%-77%60%-52%-18%-28%-3%102%-86%117%-100%-121%37%-34%-16%-114%126%-35%48%-17%79%29%-65%-85%105%88%-23%-59%60%13%-117%117%-3%-48%44%-52%-38%59%-87%105%88%-53%7%77%-61%-26%106%-79%60%-74%122%104%-82%-54%109%18%-74%42%110%-50%43%-87%-11%-78%86%-55%-39%60%13%-77%-113%-52%-65%57%-106%-59%84%-37%23%77%-61%54%-1%-65%55%17%-59%-22%-97%106%26%86%117%95%-45%-80%37%-105%53%13%115%122%126%-46%48%-69%-3%-21%66%75%12%83%-55%-49%46%75%12%-101%-87%28%44%-84%-18%-79%-121%37%-124%85%-34%-15%-78%100%-80%98%-27%-96%96%-77%-107%-61%-115%85%27%-73%-84%125%-18%67%95%-60%-52%-25%95%-27%32%96%-115%-81%-4%44%-13%-40%-86%33%95%-53%56%-74%-44%125%51%44%-122%-107%-100%91%108%-19%105%-42%-78%-113%46%-70%-84%54%106%45%-88%28%-78%88%115%-64%83%13%-109%-42%-70%-96%39%47%6%-83%-107%-103%0%-53%32%86%-18%-86%28%114%-104%-45%-21%-86%28%98%-104%-75%127%50%-48%50%-123%-87%-92%-33%82%85%0%75%-116%-123%-80%12%97%53%-31%94%-107%25%-79%-2%-34%114%-124%-64%84%116%-85%-92%63%-24%-119%-53%44%-42%20%-39%-78%-70%125%42%-121%27%-69%93%25%-77%109%43%-118%-107%14%113%-24%-117%-104%-2%52%56%48%112%-91%-49%55%-89%-114%-7%38%-99%42%100%-49%-91%-48%-106%-2%13%-127%31%98%-1%-55%30%-37%-42%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
- <eAnnotations xmi:id="_44RX8DrSEeGKkdk54CX6PQ" source="image_papyrus">
- <details xmi:id="_44R_ADrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
- <details xmi:id="_PhMv0DrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjPullConsumer"/>
+ <icon xmi:type="uml:Image" xmi:id="_kZGdADl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%108%0%0%0%97%8%0%0%0%0%22%-109%27%-49%0%0%2%-101%73%68%65%84%104%-127%-67%-38%-51%75%84%81%24%6%-16%-25%-36%59%87%68%43%107%76%40%63%42%-84%4%-125%1%49%-86%77%-82%70%24%-120%54%-39%-57%44%18%35%-110%62%104%-91%-83%10%-108%32%-94%64%40%92%-10%-79%-120%-118%8%23%82%-101%26%-124%22%65%41%4%69%-117%-118%-124%114%17%52%65%-108%9%105%-47%-28%116%26%107%76%-13%-34%-21%-67%112%-49%-5%60%-1%-64%111%49%103%120%-97%123%-34%3%61%118%-78%37%84%118%-89%61%115%-30%-123%14%29%76%39%16%41%106%-29%72%120%44%19%-51%42%100%-61%-77%-48%-40%-11%-56%24%-102%71%-119%-104%-38%-10%-114%-121%-63%74%101%121%24%84%-37%4%15%-125%-35%17%70%51%-124%-63%62%62%21%2%-21%55%-125%-63%-23%-2%30%-116%-99%54%-124%-95%-12%124%-114%-121%-95%-20%66%-98%-121%97%-7%-75%0%-51%36%-122%-8%32%17%67%-19%61%34%-122%-75%-113%-120%24%26%-122%-119%24%-102%94%19%49%-75%-27%45%15%-125%74%-67%-25%97%-80%118%-114%-13%48%-60%14%-8%-116%0%9%12%-79%-61%-34%35%64%4%-125%-45%-27%-87%-55%96%112%-50%120%-115%0%-12%-120%96%40%-21%-101%-10%-64%14%-55%96%88%-26%49%2%-48%33%-124%33%126%-117%-120%-95%-58%53%2%4%49%-84%121%72%-60%-48%48%66%-60%-48%-8%-110%-120%-87%-83%-93%60%12%42%-103%-27%97%-80%118%124%-28%97%-80%-38%39%120%24%-20%-125%83%60%-84%-16%21%-16%-115%-121%-63%-23%-51%-15%-80%-62%8%-56%-15%48%-108%95%-3%-59%-61%-80%-30%-58%31%108%23%5%67%85%102%6%-37%-50%-63%80%-5%-128%-120%97%-3%19%34%-122%-42%28%17%-85%120%78%-60%-86%-77%60%-52%-18%-28%-3%102%-86%117%-100%-121%37%-34%-16%-114%126%-35%48%-17%79%29%-65%-85%105%88%-23%-59%60%13%-117%117%-3%-48%44%-52%-38%59%-87%105%88%-53%7%77%-61%-26%106%-79%60%-74%122%104%-82%-54%109%18%-74%42%110%-50%43%-87%-11%-78%86%-55%-39%60%13%-77%-113%-52%-65%57%-106%-59%84%-37%23%77%-61%54%-1%-65%55%17%-59%-22%-97%106%26%86%117%95%-45%-80%37%-105%53%13%115%122%126%-46%48%-69%-3%-21%66%75%12%83%-55%-49%46%75%12%-101%-87%28%44%-84%-18%-79%-121%37%-124%85%-34%-15%-78%100%-80%98%-27%-96%96%-77%-107%-61%-115%85%27%-73%-84%125%-18%67%95%-60%-52%-25%95%-27%32%96%-115%-81%-4%44%-13%-40%-86%33%95%-53%56%-74%-44%125%51%44%-122%-107%-100%91%108%-19%105%-42%-78%-113%46%-70%-84%54%106%45%-88%28%-78%88%115%-64%83%13%-109%-42%-70%-96%39%47%6%-83%-107%-103%0%-53%32%86%-18%-86%28%114%-104%-45%-21%-86%28%98%-104%-75%127%50%-48%50%-123%-87%-92%-33%82%85%0%75%-116%-123%-80%12%97%53%-31%94%-107%25%-79%-2%-34%114%-124%-64%84%116%-85%-92%63%-24%-119%-53%44%-42%20%-39%-78%-70%125%42%-121%27%-69%93%25%-77%109%43%-118%-107%14%113%-24%-117%-104%-2%52%56%48%112%-91%-49%55%-89%-114%-7%38%-99%42%100%-49%-91%-48%-106%-2%13%-127%31%98%-1%-55%30%-37%-42%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_44RX8DrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_44R_ADrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PhMv0DrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjPullConsumer"/>
</eAnnotations>
</icon>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtq4slDlEd6cwecVIgl9nw" name="PushConsumer">
- <icon xmi:id="_Dh_hUDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%97%0%0%0%98%8%0%0%0%0%101%-7%-30%-47%0%0%2%120%73%68%65%84%104%-127%-75%-38%-51%75%21%81%24%6%-16%-125%-106%105%25%-106%38%-107%84%-76%50%-119%-54%32%90%37%-75%-120%72%-94%69%-117%104%85%86%-46%-90%112%97%73%33%-47%-86%-123%16%33%70%17%-47%-54%-94%47%-24%3%-63%34%-56%-115%20%-35%77%4%-110%65%-123%27%11%51%37%-107%-16%-93%-85%-34%105%-26%-23%74%31%115%-18%120%103%-18%97%-50%-5%60%127%-64%-4%86%103%-26%61%-49%59%10%-99%23%-102%121%105%31%-127%122%-80%72%17%-77%-96%98%68%85%51%-127%116%-82%-87%26%-78%112%76%-35%34%11%117%106%-74%-98%45%32%121%-124%45%96%124%55%91%-64%-40%46%-74%-128%-127%-51%108%1%-3%-107%108%1%61%107%-40%2%-34%-106%-78%5%116%-111%8%95%-64%-45%34%-74%-32%-35%-90%16%-102%0%-17%106%62%89%-128%-45%66%32%50%4%56%-115%108%1%-45%39%-39%2%-110%7%-39%2%38%14%-80%5%-116%-18%96%11%24%-38%-50%22%-48%-73%-127%45%-32%-29%58%-74%-128%-41%43%-39%2%94%-107%-80%5%116%-120%17%97%2%-18%20%-78%5%-9%-70%16%17%42%-64%-67%40%-13%-94%13%23%-112%58%47%66%68%8%72%29%103%11%-104%58%-52%22%48%-79%-113%45%96%108%15%91%-64%-32%54%-74%-128%47%-101%-40%2%-34%-83%103%11%-24%89%-59%22%-16%-94%-116%45%-32%-39%82%-74%-128%-69%-59%108%1%55%11%-40%-126%123%41%54%97%40%-64%109%-54%35%11%-104%-39%-49%22%-34%-105%-109%-123%-127%-86%-104%-128%-87%-16%99%103%92%-64%80%-104%58%20%27%48%19%82%-89%-29%3%70%-126%-41%106%51%18%-104%8%-9%-84%38%39%3%-95%107%-103%13%96%32%-12%-38%125%30%114%11%-33%108%-81%43%-71%-124%113%-21%-6%44%-121%-112%-76%56%8%70%-126%115%-58%26%-120%22%-68%54%-127%-39%56%82%120%36%81%7%69%9%-35%-53%5%-128%40%-95%-73%66%2%-120%16%6%55%-118%0%-31%-62%100%-4%47%-126%-103%48%45%113%57%-119%18%-100%38%41%32%68%-16%-82%-56%21%126%-39%-123%-57%-126%-67%104%86%33%97%53%108%27%8%31%68%91%-10%44%-62%87%-39%101%-60%124%65%122%103%51%79%-104%-107%-34%59%5%-123%95%103%-123%-127%-96%64%40%-41%3%-62%-109%-59%-46%64%64%72%-84%16%7%50%5%-47%22%52%-101%48%-76%-107%0%-24%-62%-28%94%6%-96%9%-87%58%10%-32%11%-18%57%14%-32%11%55%72%-64%127%-95%-109%-10%63%-62%95%-31%13%107%103%-7%79%-24%91%75%3%-2%8%-33%41%7%65%19%126%-42%18%-127%57%-63%57%-63%4%-46%-126%-37%76%5%-46%66%7%23%80%71%85%-36%86%-57%52%-83%-86%-127%-6%-4%-68%-110%97%-11%-87%44%-93%-3%-54%-41%-78%-80%64%75%-111%-106%37%-59%126%86%111%-47%82%-85%-91%-2%84%58%109%-61%80%24%109%-65%-84%-27%-2%67%63%-49%95%-6%73%124%-42%50%19%28%-127%-94%-14%27%-2%-94%-44%59%115%-35%74%-17%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
- <eAnnotations xmi:id="_7bjNADrSEeGKkdk54CX6PQ" source="image_papyrus">
- <details xmi:id="_7bj0EDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
- <details xmi:id="_JNOQUDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconPushConsumer"/>
+ <icon xmi:type="uml:Image" xmi:id="_Dh_hUDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%97%0%0%0%98%8%0%0%0%0%101%-7%-30%-47%0%0%2%120%73%68%65%84%104%-127%-75%-38%-51%75%21%81%24%6%-16%-125%-106%105%25%-106%38%-107%84%-76%50%-119%-54%32%90%37%-75%-120%72%-94%69%-117%104%85%86%-46%-90%112%97%73%33%-47%-86%-123%16%33%70%17%-47%-54%-94%47%-24%3%-63%34%-56%-115%20%-35%77%4%-110%65%-123%27%11%51%37%-107%-16%-93%-85%-34%105%-26%-23%74%31%115%-18%120%103%-18%97%-50%-5%60%127%-64%-4%86%103%-26%61%-49%59%10%-99%23%-102%121%105%31%-127%122%-80%72%17%-77%-96%98%68%85%51%-127%116%-82%-87%26%-78%112%76%-35%34%11%117%106%-74%-98%45%32%121%-124%45%96%124%55%91%-64%-40%46%-74%-128%-127%-51%108%1%-3%-107%108%1%61%107%-40%2%-34%-106%-78%5%116%-111%8%95%-64%-45%34%-74%-32%-35%-90%16%-102%0%-17%106%62%89%-128%-45%66%32%50%4%56%-115%108%1%-45%39%-39%2%-110%7%-39%2%38%14%-80%5%-116%-18%96%11%24%-38%-50%22%-48%-73%-127%45%-32%-29%58%-74%-128%-41%43%-39%2%94%-107%-80%5%116%-120%17%97%2%-18%20%-78%5%-9%-70%16%17%42%-64%-67%40%-13%-94%13%23%-112%58%47%66%68%8%72%29%103%11%-104%58%-52%22%48%-79%-113%45%96%108%15%91%-64%-32%54%-74%-128%47%-101%-40%2%-34%-83%103%11%-24%89%-59%22%-16%-94%-116%45%-32%-39%82%-74%-128%-69%-59%108%1%55%11%-40%-126%123%41%54%97%40%-64%109%-54%35%11%-104%-39%-49%22%-34%-105%-109%-123%-127%-86%-104%-128%-87%-16%99%103%92%-64%80%-104%58%20%27%48%19%82%-89%-29%3%70%-126%-41%106%51%18%-104%8%-9%-84%38%39%3%-95%107%-103%13%96%32%-12%-38%125%30%114%11%-33%108%-81%43%-71%-124%113%-21%-6%44%-121%-112%-76%56%8%70%-126%115%-58%26%-120%22%-68%54%-127%-39%56%82%120%36%81%7%69%9%-35%-53%5%-128%40%-95%-73%66%2%-120%16%6%55%-118%0%-31%-62%100%-4%47%-126%-103%48%45%113%57%-119%18%-100%38%41%32%68%-16%-82%-56%21%126%-39%-123%-57%-126%-67%104%86%33%97%53%108%27%8%31%68%91%-10%44%-62%87%-39%101%-60%124%65%122%103%51%79%-104%-107%-34%59%5%-123%95%103%-123%-127%-96%64%40%-41%3%-62%-109%-59%-46%64%64%72%-84%16%7%50%5%-47%22%52%-101%48%-76%-107%0%-24%-62%-28%94%6%-96%9%-87%58%10%-32%11%-18%57%14%-32%11%55%72%-64%127%-95%-109%-10%63%-62%95%-31%13%107%103%-7%79%-24%91%75%3%-2%8%-33%41%7%65%19%126%-42%18%-127%57%-63%57%-63%4%-46%-126%-37%76%5%-46%66%7%23%80%71%85%-36%86%-57%52%-83%-86%-127%-6%-4%-68%-110%97%-11%-87%44%-93%-3%-54%-41%-78%-80%64%75%-111%-106%37%-59%126%86%111%-47%82%-85%-91%-2%84%58%109%-61%80%24%109%-65%-84%-27%-2%67%63%-49%95%-6%73%124%-42%50%19%28%-127%-94%-14%27%-2%-94%-44%59%115%-35%74%-17%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7bjNADrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7bj0EDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_JNOQUDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconPushConsumer"/>
</eAnnotations>
</icon>
- <icon xmi:id="_hwLS8Dl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%108%0%0%0%97%8%0%0%0%0%22%-109%27%-49%0%0%2%-101%73%68%65%84%104%-127%-67%-38%-51%75%84%81%24%6%-16%-25%-36%59%87%68%43%107%76%40%63%42%-84%4%-125%1%49%-86%77%-82%70%24%-120%54%-39%-57%44%18%35%-110%62%104%-91%-83%10%-108%32%-94%64%40%92%-10%-79%-120%-118%8%23%82%-101%26%-124%22%65%41%4%69%-117%-118%-124%114%17%52%65%-108%9%105%-47%-28%116%26%107%76%-13%-34%-21%-67%112%-49%-5%60%-1%-64%111%49%103%120%-97%123%-34%3%61%118%-78%37%84%118%-89%61%115%-30%-123%14%29%76%39%16%41%106%-29%72%120%44%19%-51%42%100%-61%-77%-48%-40%-11%-56%24%-102%71%-119%-104%-38%-10%-114%-121%-63%74%101%121%24%84%-37%4%15%-125%-35%17%70%51%-124%-63%62%62%21%2%-21%55%-125%-63%-23%-2%30%-116%-99%54%-124%-95%-12%124%-114%-121%-95%-20%66%-98%-121%97%-7%-75%0%-51%36%-122%-8%32%17%67%-19%61%34%-122%-75%-113%-120%24%26%-122%-119%24%-102%94%19%49%-75%-27%45%15%-125%74%-67%-25%97%-80%118%-114%-13%48%-60%14%-8%-116%0%9%12%-79%-61%-34%35%64%4%-125%-45%-27%-87%-55%96%112%-50%120%-115%0%-12%-120%96%40%-21%-101%-10%-64%14%-55%96%88%-26%49%2%-48%33%-124%33%126%-117%-120%-95%-58%53%2%4%49%-84%121%72%-60%-48%48%66%-60%-48%-8%-110%-120%-87%-83%-93%60%12%42%-103%-27%97%-80%118%124%-28%97%-80%-38%39%120%24%-20%-125%83%60%-84%-16%21%-16%-115%-121%-63%-23%-51%-15%-80%-62%8%-56%-15%48%-108%95%-3%-59%-61%-80%-30%-58%31%108%23%5%67%85%102%6%-37%-50%-63%80%-5%-128%-120%97%-3%19%34%-122%-42%28%17%-85%120%78%-60%-86%-77%60%-52%-18%-28%-3%102%-86%117%-100%-121%37%-34%-16%-114%126%-35%48%-17%79%29%-65%-85%105%88%-23%-59%60%13%-117%117%-3%-48%44%-52%-38%59%-87%105%88%-53%7%77%-61%-26%106%-79%60%-74%122%104%-82%-54%109%18%-74%42%110%-50%43%-87%-11%-78%86%-55%-39%60%13%-77%-113%-52%-65%57%-106%-59%84%-37%23%77%-61%54%-1%-65%55%17%-59%-22%-97%106%26%86%117%95%-45%-80%37%-105%53%13%115%122%126%-46%48%-69%-3%-21%66%75%12%83%-55%-49%46%75%12%-101%-87%28%44%-84%-18%-79%-121%37%-124%85%-34%-15%-78%100%-80%98%-27%-96%96%-77%-107%-61%-115%85%27%-73%-84%125%-18%67%95%-60%-52%-25%95%-27%32%96%-115%-81%-4%44%-13%-40%-86%33%95%-53%56%-74%-44%125%51%44%-122%-107%-100%91%108%-19%105%-42%-78%-113%46%-70%-84%54%106%45%-88%28%-78%88%115%-64%83%13%-109%-42%-70%-96%39%47%6%-83%-107%-103%0%-53%32%86%-18%-86%28%114%-104%-45%-21%-86%28%98%-104%-75%127%50%-48%50%-123%-87%-92%-33%82%85%0%75%-116%-123%-80%12%97%53%-31%94%-107%25%-79%-2%-34%114%-124%-64%84%116%-85%-92%63%-24%-119%-53%44%-42%20%-39%-78%-70%125%42%-121%27%-69%93%25%-77%109%43%-118%-107%14%113%-24%-117%-104%-2%52%56%48%112%-91%-49%55%-89%-114%-7%38%-99%42%100%-49%-91%-48%-106%-2%13%-127%31%98%-1%-55%30%-37%-42%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
- <eAnnotations xmi:id="_8L9WQDrSEeGKkdk54CX6PQ" source="image_papyrus">
- <details xmi:id="_8L99UDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
- <details xmi:id="_Lb68gDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjPushConsumer"/>
+ <icon xmi:type="uml:Image" xmi:id="_hwLS8Dl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%108%0%0%0%97%8%0%0%0%0%22%-109%27%-49%0%0%2%-101%73%68%65%84%104%-127%-67%-38%-51%75%84%81%24%6%-16%-25%-36%59%87%68%43%107%76%40%63%42%-84%4%-125%1%49%-86%77%-82%70%24%-120%54%-39%-57%44%18%35%-110%62%104%-91%-83%10%-108%32%-94%64%40%92%-10%-79%-120%-118%8%23%82%-101%26%-124%22%65%41%4%69%-117%-118%-124%114%17%52%65%-108%9%105%-47%-28%116%26%107%76%-13%-34%-21%-67%112%-49%-5%60%-1%-64%111%49%103%120%-97%123%-34%3%61%118%-78%37%84%118%-89%61%115%-30%-123%14%29%76%39%16%41%106%-29%72%120%44%19%-51%42%100%-61%-77%-48%-40%-11%-56%24%-102%71%-119%-104%-38%-10%-114%-121%-63%74%101%121%24%84%-37%4%15%-125%-35%17%70%51%-124%-63%62%62%21%2%-21%55%-125%-63%-23%-2%30%-116%-99%54%-124%-95%-12%124%-114%-121%-95%-20%66%-98%-121%97%-7%-75%0%-51%36%-122%-8%32%17%67%-19%61%34%-122%-75%-113%-120%24%26%-122%-119%24%-102%94%19%49%-75%-27%45%15%-125%74%-67%-25%97%-80%118%-114%-13%48%-60%14%-8%-116%0%9%12%-79%-61%-34%35%64%4%-125%-45%-27%-87%-55%96%112%-50%120%-115%0%-12%-120%96%40%-21%-101%-10%-64%14%-55%96%88%-26%49%2%-48%33%-124%33%126%-117%-120%-95%-58%53%2%4%49%-84%121%72%-60%-48%48%66%-60%-48%-8%-110%-120%-87%-83%-93%60%12%42%-103%-27%97%-80%118%124%-28%97%-80%-38%39%120%24%-20%-125%83%60%-84%-16%21%-16%-115%-121%-63%-23%-51%-15%-80%-62%8%-56%-15%48%-108%95%-3%-59%-61%-80%-30%-58%31%108%23%5%67%85%102%6%-37%-50%-63%80%-5%-128%-120%97%-3%19%34%-122%-42%28%17%-85%120%78%-60%-86%-77%60%-52%-18%-28%-3%102%-86%117%-100%-121%37%-34%-16%-114%126%-35%48%-17%79%29%-65%-85%105%88%-23%-59%60%13%-117%117%-3%-48%44%-52%-38%59%-87%105%88%-53%7%77%-61%-26%106%-79%60%-74%122%104%-82%-54%109%18%-74%42%110%-50%43%-87%-11%-78%86%-55%-39%60%13%-77%-113%-52%-65%57%-106%-59%84%-37%23%77%-61%54%-1%-65%55%17%-59%-22%-97%106%26%86%117%95%-45%-80%37%-105%53%13%115%122%126%-46%48%-69%-3%-21%66%75%12%83%-55%-49%46%75%12%-101%-87%28%44%-84%-18%-79%-121%37%-124%85%-34%-15%-78%100%-80%98%-27%-96%96%-77%-107%-61%-115%85%27%-73%-84%125%-18%67%95%-60%-52%-25%95%-27%32%96%-115%-81%-4%44%-13%-40%-86%33%95%-53%56%-74%-44%125%51%44%-122%-107%-100%91%108%-19%105%-42%-78%-113%46%-70%-84%54%106%45%-88%28%-78%88%115%-64%83%13%-109%-42%-70%-96%39%47%6%-83%-107%-103%0%-53%32%86%-18%-86%28%114%-104%-45%-21%-86%28%98%-104%-75%127%50%-48%50%-123%-87%-92%-33%82%85%0%75%-116%-123%-80%12%97%53%-31%94%-107%25%-79%-2%-34%114%-124%-64%84%116%-85%-92%63%-24%-119%-53%44%-42%20%-39%-78%-70%125%42%-121%27%-69%93%25%-77%109%43%-118%-107%14%113%-24%-117%-104%-2%52%56%48%112%-91%-49%55%-89%-114%-7%38%-99%42%100%-49%-91%-48%-106%-2%13%-127%31%98%-1%-55%30%-37%-42%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8L9WQDrSEeGKkdk54CX6PQ" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8L99UDrSEeGKkdk54CX6PQ" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lb68gDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjPushConsumer"/>
</eAnnotations>
</icon>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_WtrfwlDlEd6cwecVIgl9nw" name="PushProducer">
- <icon xmi:id="_Eu1u8DiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%108%0%0%0%97%8%0%0%0%0%22%-109%27%-49%0%0%2%-101%73%68%65%84%104%-127%-67%-38%-51%75%84%81%24%6%-16%-25%-36%59%87%68%43%107%76%40%63%42%-84%4%-125%1%49%-86%77%-82%70%24%-120%54%-39%-57%44%18%35%-110%62%104%-91%-83%10%-108%32%-94%64%40%92%-10%-79%-120%-118%8%23%82%-101%26%-124%22%65%41%4%69%-117%-118%-124%114%17%52%65%-108%9%105%-47%-28%116%26%107%76%-13%-34%-21%-67%112%-49%-5%60%-1%-64%111%49%103%120%-97%123%-34%3%61%118%-78%37%84%118%-89%61%115%-30%-123%14%29%76%39%16%41%106%-29%72%120%44%19%-51%42%100%-61%-77%-48%-40%-11%-56%24%-102%71%-119%-104%-38%-10%-114%-121%-63%74%101%121%24%84%-37%4%15%-125%-35%17%70%51%-124%-63%62%62%21%2%-21%55%-125%-63%-23%-2%30%-116%-99%54%-124%-95%-12%124%-114%-121%-95%-20%66%-98%-121%97%-7%-75%0%-51%36%-122%-8%32%17%67%-19%61%34%-122%-75%-113%-120%24%26%-122%-119%24%-102%94%19%49%-75%-27%45%15%-125%74%-67%-25%97%-80%118%-114%-13%48%-60%14%-8%-116%0%9%12%-79%-61%-34%35%64%4%-125%-45%-27%-87%-55%96%112%-50%120%-115%0%-12%-120%96%40%-21%-101%-10%-64%14%-55%96%88%-26%49%2%-48%33%-124%33%126%-117%-120%-95%-58%53%2%4%49%-84%121%72%-60%-48%48%66%-60%-48%-8%-110%-120%-87%-83%-93%60%12%42%-103%-27%97%-80%118%124%-28%97%-80%-38%39%120%24%-20%-125%83%60%-84%-16%21%-16%-115%-121%-63%-23%-51%-15%-80%-62%8%-56%-15%48%-108%95%-3%-59%-61%-80%-30%-58%31%108%23%5%67%85%102%6%-37%-50%-63%80%-5%-128%-120%97%-3%19%34%-122%-42%28%17%-85%120%78%-60%-86%-77%60%-52%-18%-28%-3%102%-86%117%-100%-121%37%-34%-16%-114%126%-35%48%-17%79%29%-65%-85%105%88%-23%-59%60%13%-117%117%-3%-48%44%-52%-38%59%-87%105%88%-53%7%77%-61%-26%106%-79%60%-74%122%104%-82%-54%109%18%-74%42%110%-50%43%-87%-11%-78%86%-55%-39%60%13%-77%-113%-52%-65%57%-106%-59%84%-37%23%77%-61%54%-1%-65%55%17%-59%-22%-97%106%26%86%117%95%-45%-80%37%-105%53%13%115%122%126%-46%48%-69%-3%-21%66%75%12%83%-55%-49%46%75%12%-101%-87%28%44%-84%-18%-79%-121%37%-124%85%-34%-15%-78%100%-80%98%-27%-96%96%-77%-107%-61%-115%85%27%-73%-84%125%-18%67%95%-60%-52%-25%95%-27%32%96%-115%-81%-4%44%-13%-40%-86%33%95%-53%56%-74%-44%125%51%44%-122%-107%-100%91%108%-19%105%-42%-78%-113%46%-70%-84%54%106%45%-88%28%-78%88%115%-64%83%13%-109%-42%-70%-96%39%47%6%-83%-107%-103%0%-53%32%86%-18%-86%28%114%-104%-45%-21%-86%28%98%-104%-75%127%50%-48%50%-123%-87%-92%-33%82%85%0%75%-116%-123%-80%12%97%53%-31%94%-107%25%-79%-2%-34%114%-124%-64%84%116%-85%-92%63%-24%-119%-53%44%-42%20%-39%-78%-70%125%42%-121%27%-69%93%25%-77%109%43%-118%-107%14%113%-24%-117%-104%-2%52%56%48%112%-91%-49%55%-89%-114%-7%38%-99%42%100%-49%-91%-48%-106%-2%13%-127%31%98%-1%-55%30%-37%-42%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
- <eAnnotations xmi:id="_EVcCADrXEeGMCcwsbpLuFA" source="image_papyrus">
- <details xmi:id="_EVdQIDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconPushProducer"/>
- <details xmi:id="_Eg1ZsDrXEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <icon xmi:type="uml:Image" xmi:id="_Eu1u8DiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%108%0%0%0%97%8%0%0%0%0%22%-109%27%-49%0%0%2%-101%73%68%65%84%104%-127%-67%-38%-51%75%84%81%24%6%-16%-25%-36%59%87%68%43%107%76%40%63%42%-84%4%-125%1%49%-86%77%-82%70%24%-120%54%-39%-57%44%18%35%-110%62%104%-91%-83%10%-108%32%-94%64%40%92%-10%-79%-120%-118%8%23%82%-101%26%-124%22%65%41%4%69%-117%-118%-124%114%17%52%65%-108%9%105%-47%-28%116%26%107%76%-13%-34%-21%-67%112%-49%-5%60%-1%-64%111%49%103%120%-97%123%-34%3%61%118%-78%37%84%118%-89%61%115%-30%-123%14%29%76%39%16%41%106%-29%72%120%44%19%-51%42%100%-61%-77%-48%-40%-11%-56%24%-102%71%-119%-104%-38%-10%-114%-121%-63%74%101%121%24%84%-37%4%15%-125%-35%17%70%51%-124%-63%62%62%21%2%-21%55%-125%-63%-23%-2%30%-116%-99%54%-124%-95%-12%124%-114%-121%-95%-20%66%-98%-121%97%-7%-75%0%-51%36%-122%-8%32%17%67%-19%61%34%-122%-75%-113%-120%24%26%-122%-119%24%-102%94%19%49%-75%-27%45%15%-125%74%-67%-25%97%-80%118%-114%-13%48%-60%14%-8%-116%0%9%12%-79%-61%-34%35%64%4%-125%-45%-27%-87%-55%96%112%-50%120%-115%0%-12%-120%96%40%-21%-101%-10%-64%14%-55%96%88%-26%49%2%-48%33%-124%33%126%-117%-120%-95%-58%53%2%4%49%-84%121%72%-60%-48%48%66%-60%-48%-8%-110%-120%-87%-83%-93%60%12%42%-103%-27%97%-80%118%124%-28%97%-80%-38%39%120%24%-20%-125%83%60%-84%-16%21%-16%-115%-121%-63%-23%-51%-15%-80%-62%8%-56%-15%48%-108%95%-3%-59%-61%-80%-30%-58%31%108%23%5%67%85%102%6%-37%-50%-63%80%-5%-128%-120%97%-3%19%34%-122%-42%28%17%-85%120%78%-60%-86%-77%60%-52%-18%-28%-3%102%-86%117%-100%-121%37%-34%-16%-114%126%-35%48%-17%79%29%-65%-85%105%88%-23%-59%60%13%-117%117%-3%-48%44%-52%-38%59%-87%105%88%-53%7%77%-61%-26%106%-79%60%-74%122%104%-82%-54%109%18%-74%42%110%-50%43%-87%-11%-78%86%-55%-39%60%13%-77%-113%-52%-65%57%-106%-59%84%-37%23%77%-61%54%-1%-65%55%17%-59%-22%-97%106%26%86%117%95%-45%-80%37%-105%53%13%115%122%126%-46%48%-69%-3%-21%66%75%12%83%-55%-49%46%75%12%-101%-87%28%44%-84%-18%-79%-121%37%-124%85%-34%-15%-78%100%-80%98%-27%-96%96%-77%-107%-61%-115%85%27%-73%-84%125%-18%67%95%-60%-52%-25%95%-27%32%96%-115%-81%-4%44%-13%-40%-86%33%95%-53%56%-74%-44%125%51%44%-122%-107%-100%91%108%-19%105%-42%-78%-113%46%-70%-84%54%106%45%-88%28%-78%88%115%-64%83%13%-109%-42%-70%-96%39%47%6%-83%-107%-103%0%-53%32%86%-18%-86%28%114%-104%-45%-21%-86%28%98%-104%-75%127%50%-48%50%-123%-87%-92%-33%82%85%0%75%-116%-123%-80%12%97%53%-31%94%-107%25%-79%-2%-34%114%-124%-64%84%116%-85%-92%63%-24%-119%-53%44%-42%20%-39%-78%-70%125%42%-121%27%-69%93%25%-77%109%43%-118%-107%14%113%-24%-117%-104%-2%52%56%48%112%-91%-49%55%-89%-114%-7%38%-99%42%100%-49%-91%-48%-106%-2%13%-127%31%98%-1%-55%30%-37%-42%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_EVcCADrXEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_EVdQIDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconPushProducer"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Eg1ZsDrXEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
</eAnnotations>
</icon>
- <icon xmi:id="_djiTYDl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%97%0%0%0%98%8%0%0%0%0%101%-7%-30%-47%0%0%2%120%73%68%65%84%104%-127%-75%-38%-51%75%21%81%24%6%-16%-125%-106%105%25%-106%38%-107%84%-76%50%-119%-54%32%90%37%-75%-120%72%-94%69%-117%104%85%86%-46%-90%112%97%73%33%-47%-86%-123%16%33%70%17%-47%-54%-94%47%-24%3%-63%34%-56%-115%20%-35%77%4%-110%65%-123%27%11%51%37%-107%-16%-93%-85%-34%105%-26%-23%74%31%115%-18%120%103%-18%97%-50%-5%60%127%-64%-4%86%103%-26%61%-49%59%10%-99%23%-102%121%105%31%-127%122%-80%72%17%-77%-96%98%68%85%51%-127%116%-82%-87%26%-78%112%76%-35%34%11%117%106%-74%-98%45%32%121%-124%45%96%124%55%91%-64%-40%46%-74%-128%-127%-51%108%1%-3%-107%108%1%61%107%-40%2%-34%-106%-78%5%116%-111%8%95%-64%-45%34%-74%-32%-35%-90%16%-102%0%-17%106%62%89%-128%-45%66%32%50%4%56%-115%108%1%-45%39%-39%2%-110%7%-39%2%38%14%-80%5%-116%-18%96%11%24%-38%-50%22%-48%-73%-127%45%-32%-29%58%-74%-128%-41%43%-39%2%94%-107%-80%5%116%-120%17%97%2%-18%20%-78%5%-9%-70%16%17%42%-64%-67%40%-13%-94%13%23%-112%58%47%66%68%8%72%29%103%11%-104%58%-52%22%48%-79%-113%45%96%108%15%91%-64%-32%54%-74%-128%47%-101%-40%2%-34%-83%103%11%-24%89%-59%22%-16%-94%-116%45%-32%-39%82%-74%-128%-69%-59%108%1%55%11%-40%-126%123%41%54%97%40%-64%109%-54%35%11%-104%-39%-49%22%-34%-105%-109%-123%-127%-86%-104%-128%-87%-16%99%103%92%-64%80%-104%58%20%27%48%19%82%-89%-29%3%70%-126%-41%106%51%18%-104%8%-9%-84%38%39%3%-95%107%-103%13%96%32%-12%-38%125%30%114%11%-33%108%-81%43%-71%-124%113%-21%-6%44%-121%-112%-76%56%8%70%-126%115%-58%26%-120%22%-68%54%-127%-39%56%82%120%36%81%7%69%9%-35%-53%5%-128%40%-95%-73%66%2%-120%16%6%55%-118%0%-31%-62%100%-4%47%-126%-103%48%45%113%57%-119%18%-100%38%41%32%68%-16%-82%-56%21%126%-39%-123%-57%-126%-67%104%86%33%97%53%108%27%8%31%68%91%-10%44%-62%87%-39%101%-60%124%65%122%103%51%79%-104%-107%-34%59%5%-123%95%103%-123%-127%-96%64%40%-41%3%-62%-109%-59%-46%64%64%72%-84%16%7%50%5%-47%22%52%-101%48%-76%-107%0%-24%-62%-28%94%6%-96%9%-87%58%10%-32%11%-18%57%14%-32%11%55%72%-64%127%-95%-109%-10%63%-62%95%-31%13%107%103%-7%79%-24%91%75%3%-2%8%-33%41%7%65%19%126%-42%18%-127%57%-63%57%-63%4%-46%-126%-37%76%5%-46%66%7%23%80%71%85%-36%86%-57%52%-83%-86%-127%-6%-4%-68%-110%97%-11%-87%44%-93%-3%-54%-41%-78%-80%64%75%-111%-106%37%-59%126%86%111%-47%82%-85%-91%-2%84%58%109%-61%80%24%109%-65%-84%-27%-2%67%63%-49%95%-6%73%124%-42%50%19%28%-127%-94%-14%27%-2%-94%-44%59%115%-35%74%-17%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
- <eAnnotations xmi:id="_GvSOQDrXEeGMCcwsbpLuFA" source="image_papyrus">
- <details xmi:id="_GvS1UDrXEeGMCcwsbpLuFA" key="image_name_key" value="ConjIconPushProducer"/>
- <details xmi:id="_G5-bUDrXEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <icon xmi:type="uml:Image" xmi:id="_djiTYDl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%97%0%0%0%98%8%0%0%0%0%101%-7%-30%-47%0%0%2%120%73%68%65%84%104%-127%-75%-38%-51%75%21%81%24%6%-16%-125%-106%105%25%-106%38%-107%84%-76%50%-119%-54%32%90%37%-75%-120%72%-94%69%-117%104%85%86%-46%-90%112%97%73%33%-47%-86%-123%16%33%70%17%-47%-54%-94%47%-24%3%-63%34%-56%-115%20%-35%77%4%-110%65%-123%27%11%51%37%-107%-16%-93%-85%-34%105%-26%-23%74%31%115%-18%120%103%-18%97%-50%-5%60%127%-64%-4%86%103%-26%61%-49%59%10%-99%23%-102%121%105%31%-127%122%-80%72%17%-77%-96%98%68%85%51%-127%116%-82%-87%26%-78%112%76%-35%34%11%117%106%-74%-98%45%32%121%-124%45%96%124%55%91%-64%-40%46%-74%-128%-127%-51%108%1%-3%-107%108%1%61%107%-40%2%-34%-106%-78%5%116%-111%8%95%-64%-45%34%-74%-32%-35%-90%16%-102%0%-17%106%62%89%-128%-45%66%32%50%4%56%-115%108%1%-45%39%-39%2%-110%7%-39%2%38%14%-80%5%-116%-18%96%11%24%-38%-50%22%-48%-73%-127%45%-32%-29%58%-74%-128%-41%43%-39%2%94%-107%-80%5%116%-120%17%97%2%-18%20%-78%5%-9%-70%16%17%42%-64%-67%40%-13%-94%13%23%-112%58%47%66%68%8%72%29%103%11%-104%58%-52%22%48%-79%-113%45%96%108%15%91%-64%-32%54%-74%-128%47%-101%-40%2%-34%-83%103%11%-24%89%-59%22%-16%-94%-116%45%-32%-39%82%-74%-128%-69%-59%108%1%55%11%-40%-126%123%41%54%97%40%-64%109%-54%35%11%-104%-39%-49%22%-34%-105%-109%-123%-127%-86%-104%-128%-87%-16%99%103%92%-64%80%-104%58%20%27%48%19%82%-89%-29%3%70%-126%-41%106%51%18%-104%8%-9%-84%38%39%3%-95%107%-103%13%96%32%-12%-38%125%30%114%11%-33%108%-81%43%-71%-124%113%-21%-6%44%-121%-112%-76%56%8%70%-126%115%-58%26%-120%22%-68%54%-127%-39%56%82%120%36%81%7%69%9%-35%-53%5%-128%40%-95%-73%66%2%-120%16%6%55%-118%0%-31%-62%100%-4%47%-126%-103%48%45%113%57%-119%18%-100%38%41%32%68%-16%-82%-56%21%126%-39%-123%-57%-126%-67%104%86%33%97%53%108%27%8%31%68%91%-10%44%-62%87%-39%101%-60%124%65%122%103%51%79%-104%-107%-34%59%5%-123%95%103%-123%-127%-96%64%40%-41%3%-62%-109%-59%-46%64%64%72%-84%16%7%50%5%-47%22%52%-101%48%-76%-107%0%-24%-62%-28%94%6%-96%9%-87%58%10%-32%11%-18%57%14%-32%11%55%72%-64%127%-95%-109%-10%63%-62%95%-31%13%107%103%-7%79%-24%91%75%3%-2%8%-33%41%7%65%19%126%-42%18%-127%57%-63%57%-63%4%-46%-126%-37%76%5%-46%66%7%23%80%71%85%-36%86%-57%52%-83%-86%-127%-6%-4%-68%-110%97%-11%-87%44%-93%-3%-54%-41%-78%-80%64%75%-111%-106%37%-59%126%86%111%-47%82%-85%-91%-2%84%58%109%-61%80%24%109%-65%-84%-27%-2%67%63%-49%95%-6%73%124%-42%50%19%28%-127%-94%-14%27%-2%-94%-44%59%115%-35%74%-17%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GvSOQDrXEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GvS1UDrXEeGMCcwsbpLuFA" key="image_name_key" value="ConjIconPushProducer"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G5-bUDrXEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
</eAnnotations>
</icon>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_Wtrfw1DlEd6cwecVIgl9nw" name="UseInterface">
- <icon xmi:id="_FzdNoDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%84%0%0%0%101%8%3%0%0%0%-28%-109%52%-5%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-52%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%82%82%82%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%24%24%24%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-33%61%-9%-93%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%41%73%68%65%84%104%-127%-83%-39%125%91%-38%48%16%0%-16%-29%101%12%-76%32%32%69%17%-95%88%-107%23%-69%45%-43%90%-83%5%117%-32%-9%-1%78%-125%103%-37%67%47%109%115%-105%54%-9%119%-8%61%41%73%-109%-69%43%-120%-14%17%92%86%-105%86%56%-116%15%49%12%-83%-42%26%74%-126%-35%-54%106%8%82%84%74%-95%-125%-58%-117%12%30%98%84%28%125%-84%-74%-99%44%18%-96%87%20%125%-84%127%100%-117%0%83%81%12%85%-112%0%-61%98%-24%-83%-126%4%120%42%-126%-66%61%-87%72%-128%7%125%-44%-97%79%-43%38%-52%-75%-47%-2%25%65%2%-72%-70%-24%104%67%-102%-80%-43%68%107%57%59%19%69%-92%-121%46%25%36%-128%-81%-123%54%115%-99%-15%-85%-41%-88%110%15%81%-83%-51%-123%6%-22%63%100%-125%-45%-50%-3%-91%52%-108%-113%-98%100%-110%-81%-75%94%122%40%27%-99%103%-111%-42%58%115%44%23%-67%-31%-109%108%116%-108%-34%75%-101%93%-18%104%30%-38%77%-17%-7%102%-112%63%-100%-121%-2%72%-19%-95%47%-43%112%22%122%39%-101%118%-92%28%-49%65%-93%-119%100%-122%-118%71%-25%-94%-14%-61%119%8%-109%-125%110%37%-13%-52%-89%126%65%-93%-66%116%-81%15%-87%121%114%-48%26%54%63%-6%-28%47%104%-44%-57%91%-44%-71%-94%77%26%-67%-59%19%-99%51%76%26%-75%-15%102%34%23%-119%-125%86%-16%-61%-65%113%76%18%-75%16%-38%98%-103%20%-38%67%-89%-45%-17%-82%17%20%47%-45%61%-49%-92%-48%48%105%-114%-103%19%37%-48%1%-102%104%-109%105%18%-88%-117%-48%-127%25%-44%67%123%-108%107%18%104%-100%68%-17%-52%-96%17%122%-6%-116%11%-66%8%58%75%-102%54%-37%84%-93%40%-127%96%-66%77%36%-118%-18%-111%-118%33%-12%60%-119%50%14%103%22%58%78%-104%19%-66%-87%68%-125%-126%-21%116%64%-3%-111%91%91%36%-93%-27%-3%-115%95%73%-12%84%11%29%93%0%39%60%29%-12%-115%42%-117%-2%-59%82%7%125%-26%-103%-80%-48%65%57%69%-116%54%-54%13%45%-108%-7%-105%-62%119%29%-12%39%19%-43%90%-3%-63%-104%6%15%-47%-42%65%69%-60%91%127%-51%55%74%116%-81%-73%-57%-72%-114%-114%-15%-103%64%29%77%52%55%-48%5%-51%-53%120%104%20%85%-93%51%67%-24%-73%36%-70%50%-124%-94%-108%111%104%8%-19%-93%-11%103%-25%18%-60%-67%-113%106%-120%-70%33%116%-107%68%-49%13%-95%51%-12%-4%-20%77%-91%70%-5%-24%96%100%-33%-4%68%126%-118%58%112%83%51%-7%-87%-108%75%114%-49%84%2%13%-48%113%-53%77%-91%-87%-22%-28%20%77%-107%-7%86%81%-24%14%-95%78%94%43%70%15%-107%42%-66%23%35%21%-97%-76%85%121%-41%63%93%69%-93%20%29%-100%107%19%-88%92%70%27%-87%-9%83%-99%-119%11%19%-99%9%113%-123%81%70%121%-50%-23%-10%120%-110%-6%108%-96%-37%35%6%-87%-66%20%81%-3%-80%58%104%-82%-124%-62%69%-7%14%90%-6%15%-128%-119%-14%110%-27%-95%65%44%-85%112%82%-70%43%41%46%-45%-55%-31%38%-65%-80%-30%118%122%-85%41%116%-97%-77%-107%-20%-12%74%-119%-59%-1%-80%-34%-53%-95%57%93%126%-69%94%-90%123%46%-35%-41%-57%112%-98%23%35%-23%29%51%-13%69%98%106%91%75%-41%-35%109%-65%92%-9%74%19%21%-115%92%-11%24%15%-70%40%-25%43%-113%-89%-115%-118%119%-14%123%-44%-87%62%42%122%29%2%13%11%-96%-5%13%-85%-82%-68%-118%-95%34%82%78%-42%46%-122%10%113%-93%-8%103%-29%-94%-88%-22%11%111%113%84%-59%-106%64%-9%-73%108%-59%-54%-36%-75%-91%-48%125%-12%-22%97%-38%13%74%-94%-5%8%118%45%27%-61%81%121%-12%16%-2%-70%-46%-16%-38%97%24%-57%113%24%-74%-9%71%-31%31%12%-33%-99%51%8%-119%86%-81%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%45%-25%121%64%-90%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
- <eAnnotations xmi:id="_z5Ar0DrWEeGMCcwsbpLuFA" source="image_papyrus">
- <details xmi:id="_z5BS4DrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
- <details xmi:id="_BoRRIDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconUseInterface"/>
+ <icon xmi:type="uml:Image" xmi:id="_FzdNoDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%84%0%0%0%101%8%3%0%0%0%-28%-109%52%-5%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-52%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%82%82%82%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%24%24%24%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-33%61%-9%-93%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%41%73%68%65%84%104%-127%-83%-39%125%91%-38%48%16%0%-16%-29%101%12%-76%32%32%69%17%-95%88%-107%23%-69%45%-43%90%-83%5%117%-32%-9%-1%78%-125%103%-37%67%47%109%115%-105%54%-9%119%-8%61%41%73%-109%-69%43%-120%-14%17%92%86%-105%86%56%-116%15%49%12%-83%-42%26%74%-126%-35%-54%106%8%82%84%74%-95%-125%-58%-117%12%30%98%84%28%125%-84%-74%-99%44%18%-96%87%20%125%-84%127%100%-117%0%83%81%12%85%-112%0%-61%98%-24%-83%-126%4%120%42%-126%-66%61%-87%72%-128%7%125%-44%-97%79%-43%38%-52%-75%-47%-2%25%65%2%-72%-70%-24%104%67%-102%-80%-43%68%107%57%59%19%69%-92%-121%46%25%36%-128%-81%-123%54%115%-99%-15%-85%-41%-88%110%15%81%-83%-51%-123%6%-22%63%100%-125%-45%-50%-3%-91%52%-108%-113%-98%100%-110%-81%-75%94%122%40%27%-99%103%-111%-42%58%115%44%23%-67%-31%-109%108%116%-108%-34%75%-101%93%-18%104%30%-38%77%-17%-7%102%-112%63%-100%-121%-2%72%-19%-95%47%-43%112%22%122%39%-101%118%-92%28%-49%65%-93%-119%100%-122%-118%71%-25%-94%-14%-61%119%8%-109%-125%110%37%-13%-52%-89%126%65%-93%-66%116%-81%15%-87%121%114%-48%26%54%63%-6%-28%47%104%-44%-57%91%-44%-71%-94%77%26%-67%-59%19%-99%51%76%26%-75%-15%102%34%23%-119%-125%86%-16%-61%-65%113%76%18%-75%16%-38%98%-103%20%-38%67%-89%-45%-17%-82%17%20%47%-45%61%-49%-92%-48%48%105%-114%-103%19%37%-48%1%-102%104%-109%105%18%-88%-117%-48%-127%25%-44%67%123%-108%107%18%104%-100%68%-17%-52%-96%17%122%-6%-116%11%-66%8%58%75%-102%54%-37%84%-93%40%-127%96%-66%77%36%-118%-18%-111%-118%33%-12%60%-119%50%14%103%22%58%78%-104%19%-66%-87%68%-125%-126%-21%116%64%-3%-111%91%91%36%-93%-27%-3%-115%95%73%-12%84%11%29%93%0%39%60%29%-12%-115%42%-117%-2%-59%82%7%125%-26%-103%-80%-48%65%57%69%-116%54%-54%13%45%-108%-7%-105%-62%119%29%-12%39%19%-43%90%-3%-63%-104%6%15%-47%-42%65%69%-60%91%127%-51%55%74%116%-81%-73%-57%-72%-114%-114%-15%-103%64%29%77%52%55%-48%5%-51%-53%120%104%20%85%-93%51%67%-24%-73%36%-70%50%-124%-94%-108%111%104%8%-19%-93%-11%103%-25%18%-60%-67%-113%106%-120%-70%33%116%-107%68%-49%13%-95%51%-12%-4%-20%77%-91%70%-5%-24%96%100%-33%-4%68%126%-118%58%112%83%51%-7%-87%-108%75%114%-49%84%2%13%-48%113%-53%77%-91%-87%-22%-28%20%77%-107%-7%86%81%-24%14%-95%78%94%43%70%15%-107%42%-66%23%35%21%-97%-76%85%121%-41%63%93%69%-93%20%29%-100%107%19%-88%92%70%27%-87%-9%83%-99%-119%11%19%-99%9%113%-123%81%70%121%-50%-23%-10%120%-110%-6%108%-96%-37%35%6%-87%-66%20%81%-3%-80%58%104%-82%-124%-62%69%-7%14%90%-6%15%-128%-119%-14%110%-27%-95%65%44%-85%112%82%-70%43%41%46%-45%-55%-31%38%-65%-80%-30%118%122%-85%41%116%-97%-77%-107%-20%-12%74%-119%-59%-1%-80%-34%-53%-95%57%93%126%-69%94%-90%123%46%-35%-41%-57%112%-98%23%35%-23%29%51%-13%69%98%106%91%75%-41%-35%109%-65%92%-9%74%19%21%-115%92%-11%24%15%-70%40%-25%43%-113%-89%-115%-118%119%-14%123%-44%-87%62%42%122%29%2%13%11%-96%-5%13%-85%-82%-68%-118%-95%34%82%78%-42%46%-122%10%113%-93%-8%103%-29%-94%-88%-22%11%111%113%84%-59%-106%64%-9%-73%108%-59%-54%-36%-75%-91%-48%125%-12%-22%97%-38%13%74%-94%-5%8%118%45%27%-61%81%121%-12%16%-2%-70%-46%-16%-38%97%24%-57%113%24%-74%-9%71%-31%31%12%-33%-99%51%8%-119%86%-81%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%45%-25%121%64%-90%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z5Ar0DrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_z5BS4DrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BoRRIDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconUseInterface"/>
</eAnnotations>
</icon>
- <icon xmi:id="_Yy8SMDl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%119%0%0%0%92%8%3%0%0%0%99%-116%-38%77%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%120%120%120%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-71%82%-104%50%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%4%-59%73%68%65%84%104%-127%-59%-102%109%91%-30%58%16%-122%11%-118%40%-88%108%-83%2%-53%-117%93%123%4%-75%-20%110%53%-83%69%-91%-108%30%20%-1%-1%79%58%-107%-77%72%38%77%-109%73%-126%-41%62%95%-55%-52%77%94%-102%-52%76%98%-111%29%104%-2%-74%26%-115%-22%-29%81%-27%-83%31%35%77%44%51%98%-68%58%60%-19%120%22%-91%-27%-76%57%-70%-8%90%-18%-62%127%6%-56%-83%58%-65%-34%-61%47%-30%94%28%-76%-7%-52%63%122%109%-4%-5%5%-36%-59%73%73%79%105%-75%43%59%-26%14%78%-28%-48%-75%-70%-29%-78%-31%-42%-32%94%96%-87%107%-14%96%71%-36%-80%-18%42%96%115%5%-50%46%-72%-117%-82%26%53%-41%-16%-38%-100%-69%127%-91%-116%-51%-43%-116%-52%-72%-15%-67%14%53%87%123%102%-62%117%94%52%-79%-106%-27%-78%-53%75%-127%-101%-88%79%45%5%102%-66%101%60%119%-66%44%117%58%124%-71%15%38%-66%-1%59%-104%-106%-73%-15%-58%122%-36%-92%-60%101%-89%89%-95%63%-108%120%-32%79%75%-42%94%85%-121%-21%100%60%87%-39%36%-31%-76%-75%111%-98%-72%61%-2%-95%-50%-115%121%115%43%-40%127%23%15%-100%-3%-37%-19%41%115%91%69%47%-35%-107%-48%34%-31%-20%-90%-53%-19%-116%-32%-72%-11%-30%127%-81%75%14%88%66%86%-33%11%86%45%53%-18%-96%48%104%47%-123%-115%-128%-93%-8%119%1%92%87%-31%-38%25%107%-34%-112%118%-10%127%-115%-39%51%-60%-21%43%112%27%-84%113%13%71%-51%-43%103%-65%-66%78%-120%-26%-10%-104%81%-10%-86%114%-101%79%37%-20%88%-43%-48%-36%103%3%44%33%51%-90%-57%-18%5%-110%59%102%-2%-16%88%106%1%-107%48%115%28%32%-71%41%52%-13%21%-79%-124%92%-62%121%-14%18%20%-73%2%-79%-33%-112%43%-103%-42%29%116%-47%68%113%97%-108%-4%-54%13%-106%36%10%-65%1%31%87%14%-126%-5%6%-1%-21%72%3%-101%-81%45%120%66%77%16%-36%0%88%60%106%97%-39%-111%-50%-28%-36%8%44%70%-113%119%-22%97%20%-62%-59%121%41%-27%94%-125%-10%-57%-102%88%-10%99%12%-92%92%120%-2%45%-76%-71%33%-40%61%-36%80%-62%13%-63%48%-73%-124%109%-59%58%0%29%-24%75%-72%125%-48%-102%23%-9%99%-27%-128%-51%-29%78%-62%5%-21%-48%45%70%-3%10%2%51%54%-107%112%31%-103%-43%96%-96%17%-19%-22%42%18%115%95%-23%-58%122%123%-58%70%51%-72%66%-123%92%27%-76%-59%-124%54%2%-127%-120%-76%-14%-121%27%-49%120%-86%-46%77%51%51%44%-36%-7%110%63%-72%-47%-92%-115%-88%86%-24%-18%-111%27%-127%47%-23%-34%66%-89%-46%13%67%46%56%80%-97%44%18%103%40%-84%-75%111%-56%-99%-45%-50%-50%45%-46%-60%97%13%-105%51%-77%-96%83%-117%12%-111%92%113%90%34%87%8%-71%9%18%107%-67%25%114%9%-19%-52%-77%46%-1%10%-41%-75%-20%50%14%43%65%-47%15%-91%-104%118%-106%-49%47%-74%106%-79%-21%117%85%45%3%49%58%48%-28%-10%104%103%-7%-9%75%30%112%-36%95%-122%-36%127%104%103%-45%-100%27%-6%-120%93%50%-1%-117%-122%92%-97%118%-42%92%-97%11%73%-19%-8%-119%39%80%39%27%26%114%65%-35%-95%38%60%7%35%-48%-31%-98%-88%-87%92%96%127%122%23%-97%-5%32%-20%-59%103%-37%60%-127%101%-107%-17%86%-62%-58%-57%116%91%-109%112%-110%-112%91%56%103%98%-18%30%-35%-40%-45%-55%-55%62%5%-14%-69%19%9%23%-100%93%70%3%-67%0%-98%-10%100%-7%2%8%-13%59%6%92%88%-101%-103%-53%-72%48%29%-44%-33%-94%29%-112%-119%102%-46%-4%8%-90%-65%-25%-38%92%-80%105%124%36%-64%-78%-4%55%3%6%-17%-102%88%7%6%23%115%57%-9%16%24%100%-102%-87%10%-100%-82%103%34%-25%-62%21%-67%46%17%-88%-117%-119%45%-10%17%92%-72%-83%90%94%-55%-11%-105%80%76%125%115%25%97%-72%-16%-61%-77%-78%51%117%46%83%-119%94%111%3%-14%-70%-39%41%-76%106%41%23%-80%-104%-14%-43%-48%-58%113%7%-48%76%57%29%29%49%-10%119%4%-57%37%108%-11%-6%72%9%91%101%-126%-118%52%-62%114%-49%-40%-56%30%91%-11%-26%97%55%-31%63%-90%-18%-67%-49%-104%90%15%-24%-49%-72%112%49%-15%64%-16%92%-90%-66%-104%-85%-115%43%-96%21%-17%49%95%55%79%29%80%-9%26%78%-31%-82%-52%-67%65%-104%-11%82%-42%108%-101%100%-31%-18%113%126%20%35%-50%-87%-84%-53%118%-77%104%-12%-13%-13%87%-28%-67%-107%95%112%97%121%13%-47%-13%-112%-88%-58%-71%79%-100%110%23%36%-10%126%48%40%122%-79%-68%-96%-84%112%-24%-44%121%-73%-104%93%123%-37%2%-53%13%-7%-113%24%-38%7%-59%42%-113%125%125%-54%77%4%50%58%62%67%-33%-61%-58%-36%59%-50%92%105%112%115%-71%-15%24%-9%-85%71%101%-49%88%-106%96%65%-32%-17%-99%-29%105%-119%-61%-11%-112%-89%-23%75%-102%-118%94%88%64%-84%-54%61%123%-120%76%-32%-72%-22%50%-117%80%-23%61%-61%-111%54%-10%-23%-116%113%-91%-10%126%-93%112%-49%-120%84%113%71%87%124%55%50%19%63%126%-30%107%-56%-119%127%85%-33%-55%68%13%84%-78%76%-21%-111%87%80%85%127%-113%52%127%-106%-93%40%45%-7%85%122%-99%-9%87%123%-27%-81%52%88%93%29%-39%124%31%90%-17%-66%-94%-101%-30%-43%61%-105%-38%40%77%33%53%-33%-71%-123%99%-7%104%103%126%73%95%13%-72%-71%-110%-119%-88%-45%110%32%-82%-17%25%-67%-97%-20%-33%-74%-72%31%-12%-7%-31%74%22%9%25%-66%-37%36%97%127%-4%-13%-76%-67%-119%-4%-68%116%-38%-84%-83%4%-61%-69%51%-18%-89%102%-77%25%-10%-115%-22%-121%-2%3%52%51%-49%67%-105%-19%90%17%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%5%-46%-52%-24%92%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
- <eAnnotations xmi:id="_0rGQEDrWEeGMCcwsbpLuFA" source="image_papyrus">
- <details xmi:id="_0rHeMDrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
- <details xmi:id="_C7NfsDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjUseInterface"/>
+ <icon xmi:type="uml:Image" xmi:id="_Yy8SMDl9EeGi35TadupI-A" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%119%0%0%0%92%8%3%0%0%0%99%-116%-38%77%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%120%120%120%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-71%82%-104%50%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%4%-59%73%68%65%84%104%-127%-59%-102%109%91%-30%58%16%-122%11%-118%40%-88%108%-83%2%-53%-117%93%123%4%-75%-20%110%53%-83%69%-91%-108%30%20%-1%-1%79%58%-107%-77%72%38%77%-109%73%-126%-41%62%95%-55%-52%77%94%-102%-52%76%98%-111%29%104%-2%-74%26%-115%-22%-29%81%-27%-83%31%35%77%44%51%98%-68%58%60%-19%120%22%-91%-27%-76%57%-70%-8%90%-18%-62%127%6%-56%-83%58%-65%-34%-61%47%-30%94%28%-76%-7%-52%63%122%109%-4%-5%5%-36%-59%73%73%79%105%-75%43%59%-26%14%78%-28%-48%-75%-70%-29%-78%-31%-42%-32%94%96%-87%107%-14%96%71%-36%-80%-18%42%96%115%5%-50%46%-72%-117%-82%26%53%-41%-16%-38%-100%-69%127%-91%-116%-51%-43%-116%-52%-72%-15%-67%14%53%87%123%102%-62%117%94%52%-79%-106%-27%-78%-53%75%-127%-101%-88%79%45%5%102%-66%101%60%119%-66%44%117%58%124%-71%15%38%-66%-1%59%-104%-106%-73%-15%-58%122%-36%-92%-60%101%-89%89%-95%63%-108%120%-32%79%75%-42%94%85%-121%-21%100%60%87%-39%36%-31%-76%-75%111%-98%-72%61%-2%-95%-50%-115%121%115%43%-40%127%23%15%-100%-3%-37%-19%41%115%91%69%47%-35%-107%-48%34%-31%-20%-90%-53%-19%-116%-32%-72%-11%-30%127%-81%75%14%88%66%86%-33%11%86%45%53%-18%-96%48%104%47%-123%-115%-128%-93%-8%119%1%92%87%-31%-38%25%107%-34%-112%118%-10%127%-115%-39%51%-60%-21%43%112%27%-84%113%13%71%-51%-43%103%-65%-66%78%-120%-26%-10%-104%81%-10%-86%114%-101%79%37%-20%88%-43%-48%-36%103%3%44%33%51%-90%-57%-18%5%-110%59%102%-2%-16%88%106%1%-107%48%115%28%32%-71%41%52%-13%21%-79%-124%92%-62%121%-14%18%20%-73%2%-79%-33%-112%43%-103%-42%29%116%-47%68%113%97%-108%-4%-54%13%-106%36%10%-65%1%31%87%14%-126%-5%6%-1%-21%72%3%-101%-81%45%120%66%77%16%-36%0%88%60%106%97%-39%-111%-50%-28%-36%8%44%70%-113%119%-22%97%20%-62%-59%121%41%-27%94%-125%-10%-57%-102%88%-10%99%12%-92%92%120%-2%45%-76%-71%33%-40%61%-36%80%-62%13%-63%48%-73%-124%109%-59%58%0%29%-24%75%-72%125%-48%-102%23%-9%99%-27%-128%-51%-29%78%-62%5%-21%-48%45%70%-3%10%2%51%54%-107%112%31%-103%-43%96%-96%17%-19%-22%42%18%115%95%-23%-58%122%123%-58%70%51%-72%66%-123%92%27%-76%-59%-124%54%2%-127%-120%-76%-14%-121%27%-49%120%-86%-46%77%51%51%44%-36%-7%110%63%-72%-47%-92%-115%-88%86%-24%-18%-111%27%-127%47%-23%-34%66%-89%-46%13%67%46%56%80%-97%44%18%103%40%-84%-75%111%-56%-99%-45%-50%-50%45%-46%-60%97%13%-105%51%-77%-96%83%-117%12%-111%92%113%90%34%87%8%-71%9%18%107%-67%25%114%9%-19%-52%-77%46%-1%10%-41%-75%-20%50%14%43%65%-47%15%-91%-104%118%-106%-49%47%-74%106%-79%-21%117%85%45%3%49%58%48%-28%-10%104%103%-7%-9%75%30%112%-36%95%-122%-36%127%104%103%-45%-100%27%-6%-120%93%50%-1%-117%-122%92%-97%118%-42%92%-97%11%73%-19%-8%-119%39%80%39%27%26%114%65%-35%-95%38%60%7%35%-48%-31%-98%-88%-87%92%96%127%122%23%-97%-5%32%-20%-59%103%-37%60%-127%101%-107%-17%86%-62%-58%-57%116%91%-109%112%-110%-112%91%56%103%98%-18%30%-35%-40%-45%-55%-55%62%5%-14%-69%19%9%23%-100%93%70%3%-67%0%-98%-10%100%-7%2%8%-13%59%6%92%88%-101%-103%-53%-72%48%29%-44%-33%-94%29%-112%-119%102%-46%-4%8%-90%-65%-25%-38%92%-80%105%124%36%-64%-78%-4%55%3%6%-17%-102%88%7%6%23%115%57%-9%16%24%100%-102%-87%10%-100%-82%103%34%-25%-62%21%-67%46%17%-88%-117%-119%45%-10%17%92%-72%-83%90%94%-55%-11%-105%80%76%125%115%25%97%-72%-16%-61%-77%-78%51%117%46%83%-119%94%111%3%-14%-70%-39%41%-76%106%41%23%-80%-104%-14%-43%-48%-58%113%7%-48%76%57%29%29%49%-10%119%4%-57%37%108%-11%-6%72%9%91%101%-126%-118%52%-62%114%-49%-40%-56%30%91%-11%-26%97%55%-31%63%-90%-18%-67%-49%-104%90%15%-24%-49%-72%112%49%-15%64%-16%92%-90%-66%-104%-85%-115%43%-96%21%-17%49%95%55%79%29%80%-9%26%78%-31%-82%-52%-67%65%-104%-11%82%-42%108%-101%100%-31%-18%113%126%20%35%-50%-87%-84%-53%118%-77%104%-12%-13%-13%87%-28%-67%-107%95%112%97%121%13%-47%-13%-112%-88%-58%-71%79%-100%110%23%36%-10%126%48%40%122%-79%-68%-96%-84%112%-24%-44%121%-73%-104%93%123%-37%2%-53%13%-7%-113%24%-38%7%-59%42%-113%125%125%-54%77%4%50%58%62%67%-33%-61%-58%-36%59%-50%92%105%112%115%-71%-15%24%-9%-85%71%101%-49%88%-106%96%65%-32%-17%-99%-29%105%-119%-61%-11%-112%-89%-23%75%-102%-118%94%88%64%-84%-54%61%123%-120%76%-32%-72%-22%50%-117%80%-23%61%-61%-111%54%-10%-23%-116%113%-91%-10%126%-93%112%-49%-120%84%113%71%87%124%55%50%19%63%126%-30%107%-56%-119%127%85%-33%-55%68%13%84%-78%76%-21%-111%87%80%85%127%-113%52%127%-106%-93%40%45%-7%85%122%-99%-9%87%123%-27%-81%52%88%93%29%-39%124%31%90%-17%-66%-94%-101%-30%-43%61%-105%-38%40%77%33%53%-33%-71%-123%99%-7%104%103%126%73%95%13%-72%-71%-110%-119%-88%-45%110%32%-82%-17%25%-67%-97%-20%-33%-74%-72%31%-12%-7%-31%74%22%9%25%-66%-37%36%97%127%-4%-13%-76%-67%-119%-4%-68%116%-38%-84%-83%4%-61%-69%51%-18%-89%102%-77%25%-10%-115%-22%-121%-2%3%52%51%-49%67%-105%-19%90%17%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%5%-46%-52%-24%92%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0rGQEDrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0rHeMDrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_C7NfsDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjUseInterface"/>
</eAnnotations>
</icon>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="__nMrwLqNEd-SedGzMDDkww" name="AMIpoll">
- <icon xmi:id="_JXZ1gDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%84%0%0%0%101%8%3%0%0%0%-28%-109%52%-5%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-52%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%82%82%82%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%24%24%24%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-33%61%-9%-93%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%41%73%68%65%84%104%-127%-83%-39%125%91%-38%48%16%0%-16%-29%101%12%-76%32%32%69%17%-95%88%-107%23%-69%45%-43%90%-83%5%117%-32%-9%-1%78%-125%103%-37%67%47%109%115%-105%54%-9%119%-8%61%41%73%-109%-69%43%-120%-14%17%92%86%-105%86%56%-116%15%49%12%-83%-42%26%74%-126%-35%-54%106%8%82%84%74%-95%-125%-58%-117%12%30%98%84%28%125%-84%-74%-99%44%18%-96%87%20%125%-84%127%100%-117%0%83%81%12%85%-112%0%-61%98%-24%-83%-126%4%120%42%-126%-66%61%-87%72%-128%7%125%-44%-97%79%-43%38%-52%-75%-47%-2%25%65%2%-72%-70%-24%104%67%-102%-80%-43%68%107%57%59%19%69%-92%-121%46%25%36%-128%-81%-123%54%115%-99%-15%-85%-41%-88%110%15%81%-83%-51%-123%6%-22%63%100%-125%-45%-50%-3%-91%52%-108%-113%-98%100%-110%-81%-75%94%122%40%27%-99%103%-111%-42%58%115%44%23%-67%-31%-109%108%116%-108%-34%75%-101%93%-18%104%30%-38%77%-17%-7%102%-112%63%-100%-121%-2%72%-19%-95%47%-43%112%22%122%39%-101%118%-92%28%-49%65%-93%-119%100%-122%-118%71%-25%-94%-14%-61%119%8%-109%-125%110%37%-13%-52%-89%126%65%-93%-66%116%-81%15%-87%121%114%-48%26%54%63%-6%-28%47%104%-44%-57%91%-44%-71%-94%77%26%-67%-59%19%-99%51%76%26%-75%-15%102%34%23%-119%-125%86%-16%-61%-65%113%76%18%-75%16%-38%98%-103%20%-38%67%-89%-45%-17%-82%17%20%47%-45%61%-49%-92%-48%48%105%-114%-103%19%37%-48%1%-102%104%-109%105%18%-88%-117%-48%-127%25%-44%67%123%-108%107%18%104%-100%68%-17%-52%-96%17%122%-6%-116%11%-66%8%58%75%-102%54%-37%84%-93%40%-127%96%-66%77%36%-118%-18%-111%-118%33%-12%60%-119%50%14%103%22%58%78%-104%19%-66%-87%68%-125%-126%-21%116%64%-3%-111%91%91%36%-93%-27%-3%-115%95%73%-12%84%11%29%93%0%39%60%29%-12%-115%42%-117%-2%-59%82%7%125%-26%-103%-80%-48%65%57%69%-116%54%-54%13%45%-108%-7%-105%-62%119%29%-12%39%19%-43%90%-3%-63%-104%6%15%-47%-42%65%69%-60%91%127%-51%55%74%116%-81%-73%-57%-72%-114%-114%-15%-103%64%29%77%52%55%-48%5%-51%-53%120%104%20%85%-93%51%67%-24%-73%36%-70%50%-124%-94%-108%111%104%8%-19%-93%-11%103%-25%18%-60%-67%-113%106%-120%-70%33%116%-107%68%-49%13%-95%51%-12%-4%-20%77%-91%70%-5%-24%96%100%-33%-4%68%126%-118%58%112%83%51%-7%-87%-108%75%114%-49%84%2%13%-48%113%-53%77%-91%-87%-22%-28%20%77%-107%-7%86%81%-24%14%-95%78%94%43%70%15%-107%42%-66%23%35%21%-97%-76%85%121%-41%63%93%69%-93%20%29%-100%107%19%-88%92%70%27%-87%-9%83%-99%-119%11%19%-99%9%113%-123%81%70%121%-50%-23%-10%120%-110%-6%108%-96%-37%35%6%-87%-66%20%81%-3%-80%58%104%-82%-124%-62%69%-7%14%90%-6%15%-128%-119%-14%110%-27%-95%65%44%-85%112%82%-70%43%41%46%-45%-55%-31%38%-65%-80%-30%118%122%-85%41%116%-97%-77%-107%-20%-12%74%-119%-59%-1%-80%-34%-53%-95%57%93%126%-69%94%-90%123%46%-35%-41%-57%112%-98%23%35%-23%29%51%-13%69%98%106%91%75%-41%-35%109%-65%92%-9%74%19%21%-115%92%-11%24%15%-70%40%-25%43%-113%-89%-115%-118%119%-14%123%-44%-87%62%42%122%29%2%13%11%-96%-5%13%-85%-82%-68%-118%-95%34%82%78%-42%46%-122%10%113%-93%-8%103%-29%-94%-88%-22%11%111%113%84%-59%-106%64%-9%-73%108%-59%-54%-36%-75%-91%-48%125%-12%-22%97%-38%13%74%-94%-5%8%118%45%27%-61%81%121%-12%16%-2%-70%-46%-16%-38%97%24%-57%113%24%-74%-9%71%-31%31%12%-33%-99%51%8%-119%86%-81%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%45%-25%121%64%-90%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
- <eAnnotations xmi:id="_3DWg4DrWEeGMCcwsbpLuFA" source="image_papyrus">
- <details xmi:id="_3DXH8DrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
- <details xmi:id="_9f8J0DrWEeGMCcwsbpLuFA" key="image_name_key" value="IconAMIPoll"/>
+ <icon xmi:type="uml:Image" xmi:id="_JXZ1gDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%84%0%0%0%101%8%3%0%0%0%-28%-109%52%-5%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-52%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%82%82%82%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%24%24%24%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-33%61%-9%-93%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%41%73%68%65%84%104%-127%-83%-39%125%91%-38%48%16%0%-16%-29%101%12%-76%32%32%69%17%-95%88%-107%23%-69%45%-43%90%-83%5%117%-32%-9%-1%78%-125%103%-37%67%47%109%115%-105%54%-9%119%-8%61%41%73%-109%-69%43%-120%-14%17%92%86%-105%86%56%-116%15%49%12%-83%-42%26%74%-126%-35%-54%106%8%82%84%74%-95%-125%-58%-117%12%30%98%84%28%125%-84%-74%-99%44%18%-96%87%20%125%-84%127%100%-117%0%83%81%12%85%-112%0%-61%98%-24%-83%-126%4%120%42%-126%-66%61%-87%72%-128%7%125%-44%-97%79%-43%38%-52%-75%-47%-2%25%65%2%-72%-70%-24%104%67%-102%-80%-43%68%107%57%59%19%69%-92%-121%46%25%36%-128%-81%-123%54%115%-99%-15%-85%-41%-88%110%15%81%-83%-51%-123%6%-22%63%100%-125%-45%-50%-3%-91%52%-108%-113%-98%100%-110%-81%-75%94%122%40%27%-99%103%-111%-42%58%115%44%23%-67%-31%-109%108%116%-108%-34%75%-101%93%-18%104%30%-38%77%-17%-7%102%-112%63%-100%-121%-2%72%-19%-95%47%-43%112%22%122%39%-101%118%-92%28%-49%65%-93%-119%100%-122%-118%71%-25%-94%-14%-61%119%8%-109%-125%110%37%-13%-52%-89%126%65%-93%-66%116%-81%15%-87%121%114%-48%26%54%63%-6%-28%47%104%-44%-57%91%-44%-71%-94%77%26%-67%-59%19%-99%51%76%26%-75%-15%102%34%23%-119%-125%86%-16%-61%-65%113%76%18%-75%16%-38%98%-103%20%-38%67%-89%-45%-17%-82%17%20%47%-45%61%-49%-92%-48%48%105%-114%-103%19%37%-48%1%-102%104%-109%105%18%-88%-117%-48%-127%25%-44%67%123%-108%107%18%104%-100%68%-17%-52%-96%17%122%-6%-116%11%-66%8%58%75%-102%54%-37%84%-93%40%-127%96%-66%77%36%-118%-18%-111%-118%33%-12%60%-119%50%14%103%22%58%78%-104%19%-66%-87%68%-125%-126%-21%116%64%-3%-111%91%91%36%-93%-27%-3%-115%95%73%-12%84%11%29%93%0%39%60%29%-12%-115%42%-117%-2%-59%82%7%125%-26%-103%-80%-48%65%57%69%-116%54%-54%13%45%-108%-7%-105%-62%119%29%-12%39%19%-43%90%-3%-63%-104%6%15%-47%-42%65%69%-60%91%127%-51%55%74%116%-81%-73%-57%-72%-114%-114%-15%-103%64%29%77%52%55%-48%5%-51%-53%120%104%20%85%-93%51%67%-24%-73%36%-70%50%-124%-94%-108%111%104%8%-19%-93%-11%103%-25%18%-60%-67%-113%106%-120%-70%33%116%-107%68%-49%13%-95%51%-12%-4%-20%77%-91%70%-5%-24%96%100%-33%-4%68%126%-118%58%112%83%51%-7%-87%-108%75%114%-49%84%2%13%-48%113%-53%77%-91%-87%-22%-28%20%77%-107%-7%86%81%-24%14%-95%78%94%43%70%15%-107%42%-66%23%35%21%-97%-76%85%121%-41%63%93%69%-93%20%29%-100%107%19%-88%92%70%27%-87%-9%83%-99%-119%11%19%-99%9%113%-123%81%70%121%-50%-23%-10%120%-110%-6%108%-96%-37%35%6%-87%-66%20%81%-3%-80%58%104%-82%-124%-62%69%-7%14%90%-6%15%-128%-119%-14%110%-27%-95%65%44%-85%112%82%-70%43%41%46%-45%-55%-31%38%-65%-80%-30%118%122%-85%41%116%-97%-77%-107%-20%-12%74%-119%-59%-1%-80%-34%-53%-95%57%93%126%-69%94%-90%123%46%-35%-41%-57%112%-98%23%35%-23%29%51%-13%69%98%106%91%75%-41%-35%109%-65%92%-9%74%19%21%-115%92%-11%24%15%-70%40%-25%43%-113%-89%-115%-118%119%-14%123%-44%-87%62%42%122%29%2%13%11%-96%-5%13%-85%-82%-68%-118%-95%34%82%78%-42%46%-122%10%113%-93%-8%103%-29%-94%-88%-22%11%111%113%84%-59%-106%64%-9%-73%108%-59%-54%-36%-75%-91%-48%125%-12%-22%97%-38%13%74%-94%-5%8%118%45%27%-61%81%121%-12%16%-2%-70%-46%-16%-38%97%24%-57%113%24%-74%-9%71%-31%31%12%-33%-99%51%8%-119%86%-81%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%45%-25%121%64%-90%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3DWg4DrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3DXH8DrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9f8J0DrWEeGMCcwsbpLuFA" key="image_name_key" value="IconAMIPoll"/>
</eAnnotations>
</icon>
- <icon xmi:id="_3-hIoDrWEeGMCcwsbpLuFA" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%119%0%0%0%92%8%3%0%0%0%99%-116%-38%77%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%120%120%120%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-71%82%-104%50%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%4%-59%73%68%65%84%104%-127%-59%-102%109%91%-30%58%16%-122%11%-118%40%-88%108%-83%2%-53%-117%93%123%4%-75%-20%110%53%-83%69%-91%-108%30%20%-1%-1%79%58%-107%-77%72%38%77%-109%73%-126%-41%62%95%-55%-52%77%94%-102%-52%76%98%-111%29%104%-2%-74%26%-115%-22%-29%81%-27%-83%31%35%77%44%51%98%-68%58%60%-19%120%22%-91%-27%-76%57%-70%-8%90%-18%-62%127%6%-56%-83%58%-65%-34%-61%47%-30%94%28%-76%-7%-52%63%122%109%-4%-5%5%-36%-59%73%73%79%105%-75%43%59%-26%14%78%-28%-48%-75%-70%-29%-78%-31%-42%-32%94%96%-87%107%-14%96%71%-36%-80%-18%42%96%115%5%-50%46%-72%-117%-82%26%53%-41%-16%-38%-100%-69%127%-91%-116%-51%-43%-116%-52%-72%-15%-67%14%53%87%123%102%-62%117%94%52%-79%-106%-27%-78%-53%75%-127%-101%-88%79%45%5%102%-66%101%60%119%-66%44%117%58%124%-71%15%38%-66%-1%59%-104%-106%-73%-15%-58%122%-36%-92%-60%101%-89%89%-95%63%-108%120%-32%79%75%-42%94%85%-121%-21%100%60%87%-39%36%-31%-76%-75%111%-98%-72%61%-2%-95%-50%-115%121%115%43%-40%127%23%15%-100%-3%-37%-19%41%115%91%69%47%-35%-107%-48%34%-31%-20%-90%-53%-19%-116%-32%-72%-11%-30%127%-81%75%14%88%66%86%-33%11%86%45%53%-18%-96%48%104%47%-123%-115%-128%-93%-8%119%1%92%87%-31%-38%25%107%-34%-112%118%-10%127%-115%-39%51%-60%-21%43%112%27%-84%113%13%71%-51%-43%103%-65%-66%78%-120%-26%-10%-104%81%-10%-86%114%-101%79%37%-20%88%-43%-48%-36%103%3%44%33%51%-90%-57%-18%5%-110%59%102%-2%-16%88%106%1%-107%48%115%28%32%-71%41%52%-13%21%-79%-124%92%-62%121%-14%18%20%-73%2%-79%-33%-112%43%-103%-42%29%116%-47%68%113%97%-108%-4%-54%13%-106%36%10%-65%1%31%87%14%-126%-5%6%-1%-21%72%3%-101%-81%45%120%66%77%16%-36%0%88%60%106%97%-39%-111%-50%-28%-36%8%44%70%-113%119%-22%97%20%-62%-59%121%41%-27%94%-125%-10%-57%-102%88%-10%99%12%-92%92%120%-2%45%-76%-71%33%-40%61%-36%80%-62%13%-63%48%-73%-124%109%-59%58%0%29%-24%75%-72%125%-48%-102%23%-9%99%-27%-128%-51%-29%78%-62%5%-21%-48%45%70%-3%10%2%51%54%-107%112%31%-103%-43%96%-96%17%-19%-22%42%18%115%95%-23%-58%122%123%-58%70%51%-72%66%-123%92%27%-76%-59%-124%54%2%-127%-120%-76%-14%-121%27%-49%120%-86%-46%77%51%51%44%-36%-7%110%63%-72%-47%-92%-115%-88%86%-24%-18%-111%27%-127%47%-23%-34%66%-89%-46%13%67%46%56%80%-97%44%18%103%40%-84%-75%111%-56%-99%-45%-50%-50%45%-46%-60%97%13%-105%51%-77%-96%83%-117%12%-111%92%113%90%34%87%8%-71%9%18%107%-67%25%114%9%-19%-52%-77%46%-1%10%-41%-75%-20%50%14%43%65%-47%15%-91%-104%118%-106%-49%47%-74%106%-79%-21%117%85%45%3%49%58%48%-28%-10%104%103%-7%-9%75%30%112%-36%95%-122%-36%127%104%103%-45%-100%27%-6%-120%93%50%-1%-117%-122%92%-97%118%-42%92%-97%11%73%-19%-8%-119%39%80%39%27%26%114%65%-35%-95%38%60%7%35%-48%-31%-98%-88%-87%92%96%127%122%23%-97%-5%32%-20%-59%103%-37%60%-127%101%-107%-17%86%-62%-58%-57%116%91%-109%112%-110%-112%91%56%103%98%-18%30%-35%-40%-45%-55%-55%62%5%-14%-69%19%9%23%-100%93%70%3%-67%0%-98%-10%100%-7%2%8%-13%59%6%92%88%-101%-103%-53%-72%48%29%-44%-33%-94%29%-112%-119%102%-46%-4%8%-90%-65%-25%-38%92%-80%105%124%36%-64%-78%-4%55%3%6%-17%-102%88%7%6%23%115%57%-9%16%24%100%-102%-87%10%-100%-82%103%34%-25%-62%21%-67%46%17%-88%-117%-119%45%-10%17%92%-72%-83%90%94%-55%-11%-105%80%76%125%115%25%97%-72%-16%-61%-77%-78%51%117%46%83%-119%94%111%3%-14%-70%-39%41%-76%106%41%23%-80%-104%-14%-43%-48%-58%113%7%-48%76%57%29%29%49%-10%119%4%-57%37%108%-11%-6%72%9%91%101%-126%-118%52%-62%114%-49%-40%-56%30%91%-11%-26%97%55%-31%63%-90%-18%-67%-49%-104%90%15%-24%-49%-72%112%49%-15%64%-16%92%-90%-66%-104%-85%-115%43%-96%21%-17%49%95%55%79%29%80%-9%26%78%-31%-82%-52%-67%65%-104%-11%82%-42%108%-101%100%-31%-18%113%126%20%35%-50%-87%-84%-53%118%-77%104%-12%-13%-13%87%-28%-67%-107%95%112%97%121%13%-47%-13%-112%-88%-58%-71%79%-100%110%23%36%-10%126%48%40%122%-79%-68%-96%-84%112%-24%-44%121%-73%-104%93%123%-37%2%-53%13%-7%-113%24%-38%7%-59%42%-113%125%125%-54%77%4%50%58%62%67%-33%-61%-58%-36%59%-50%92%105%112%115%-71%-15%24%-9%-85%71%101%-49%88%-106%96%65%-32%-17%-99%-29%105%-119%-61%-11%-112%-89%-23%75%-102%-118%94%88%64%-84%-54%61%123%-120%76%-32%-72%-22%50%-117%80%-23%61%-61%-111%54%-10%-23%-116%113%-91%-10%126%-93%112%-49%-120%84%113%71%87%124%55%50%19%63%126%-30%107%-56%-119%127%85%-33%-55%68%13%84%-78%76%-21%-111%87%80%85%127%-113%52%127%-106%-93%40%45%-7%85%122%-99%-9%87%123%-27%-81%52%88%93%29%-39%124%31%90%-17%-66%-94%-101%-30%-43%61%-105%-38%40%77%33%53%-33%-71%-123%99%-7%104%103%126%73%95%13%-72%-71%-110%-119%-88%-45%110%32%-82%-17%25%-67%-97%-20%-33%-74%-72%31%-12%-7%-31%74%22%9%25%-66%-37%36%97%127%-4%-13%-76%-67%-119%-4%-68%116%-38%-84%-83%4%-61%-69%51%-18%-89%102%-77%25%-10%-115%-22%-121%-2%3%52%51%-49%67%-105%-19%90%17%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%5%-46%-52%-24%92%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
- <eAnnotations xmi:id="_54LY8DrWEeGMCcwsbpLuFA" source="image_papyrus">
- <details xmi:id="_54MnEDrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
- <details xmi:id="_ACEvYDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjAMIPoll"/>
+ <icon xmi:type="uml:Image" xmi:id="_3-hIoDrWEeGMCcwsbpLuFA" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%119%0%0%0%92%8%3%0%0%0%99%-116%-38%77%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%120%120%120%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%-51%-51%-51%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-71%82%-104%50%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%4%-59%73%68%65%84%104%-127%-59%-102%109%91%-30%58%16%-122%11%-118%40%-88%108%-83%2%-53%-117%93%123%4%-75%-20%110%53%-83%69%-91%-108%30%20%-1%-1%79%58%-107%-77%72%38%77%-109%73%-126%-41%62%95%-55%-52%77%94%-102%-52%76%98%-111%29%104%-2%-74%26%-115%-22%-29%81%-27%-83%31%35%77%44%51%98%-68%58%60%-19%120%22%-91%-27%-76%57%-70%-8%90%-18%-62%127%6%-56%-83%58%-65%-34%-61%47%-30%94%28%-76%-7%-52%63%122%109%-4%-5%5%-36%-59%73%73%79%105%-75%43%59%-26%14%78%-28%-48%-75%-70%-29%-78%-31%-42%-32%94%96%-87%107%-14%96%71%-36%-80%-18%42%96%115%5%-50%46%-72%-117%-82%26%53%-41%-16%-38%-100%-69%127%-91%-116%-51%-43%-116%-52%-72%-15%-67%14%53%87%123%102%-62%117%94%52%-79%-106%-27%-78%-53%75%-127%-101%-88%79%45%5%102%-66%101%60%119%-66%44%117%58%124%-71%15%38%-66%-1%59%-104%-106%-73%-15%-58%122%-36%-92%-60%101%-89%89%-95%63%-108%120%-32%79%75%-42%94%85%-121%-21%100%60%87%-39%36%-31%-76%-75%111%-98%-72%61%-2%-95%-50%-115%121%115%43%-40%127%23%15%-100%-3%-37%-19%41%115%91%69%47%-35%-107%-48%34%-31%-20%-90%-53%-19%-116%-32%-72%-11%-30%127%-81%75%14%88%66%86%-33%11%86%45%53%-18%-96%48%104%47%-123%-115%-128%-93%-8%119%1%92%87%-31%-38%25%107%-34%-112%118%-10%127%-115%-39%51%-60%-21%43%112%27%-84%113%13%71%-51%-43%103%-65%-66%78%-120%-26%-10%-104%81%-10%-86%114%-101%79%37%-20%88%-43%-48%-36%103%3%44%33%51%-90%-57%-18%5%-110%59%102%-2%-16%88%106%1%-107%48%115%28%32%-71%41%52%-13%21%-79%-124%92%-62%121%-14%18%20%-73%2%-79%-33%-112%43%-103%-42%29%116%-47%68%113%97%-108%-4%-54%13%-106%36%10%-65%1%31%87%14%-126%-5%6%-1%-21%72%3%-101%-81%45%120%66%77%16%-36%0%88%60%106%97%-39%-111%-50%-28%-36%8%44%70%-113%119%-22%97%20%-62%-59%121%41%-27%94%-125%-10%-57%-102%88%-10%99%12%-92%92%120%-2%45%-76%-71%33%-40%61%-36%80%-62%13%-63%48%-73%-124%109%-59%58%0%29%-24%75%-72%125%-48%-102%23%-9%99%-27%-128%-51%-29%78%-62%5%-21%-48%45%70%-3%10%2%51%54%-107%112%31%-103%-43%96%-96%17%-19%-22%42%18%115%95%-23%-58%122%123%-58%70%51%-72%66%-123%92%27%-76%-59%-124%54%2%-127%-120%-76%-14%-121%27%-49%120%-86%-46%77%51%51%44%-36%-7%110%63%-72%-47%-92%-115%-88%86%-24%-18%-111%27%-127%47%-23%-34%66%-89%-46%13%67%46%56%80%-97%44%18%103%40%-84%-75%111%-56%-99%-45%-50%-50%45%-46%-60%97%13%-105%51%-77%-96%83%-117%12%-111%92%113%90%34%87%8%-71%9%18%107%-67%25%114%9%-19%-52%-77%46%-1%10%-41%-75%-20%50%14%43%65%-47%15%-91%-104%118%-106%-49%47%-74%106%-79%-21%117%85%45%3%49%58%48%-28%-10%104%103%-7%-9%75%30%112%-36%95%-122%-36%127%104%103%-45%-100%27%-6%-120%93%50%-1%-117%-122%92%-97%118%-42%92%-97%11%73%-19%-8%-119%39%80%39%27%26%114%65%-35%-95%38%60%7%35%-48%-31%-98%-88%-87%92%96%127%122%23%-97%-5%32%-20%-59%103%-37%60%-127%101%-107%-17%86%-62%-58%-57%116%91%-109%112%-110%-112%91%56%103%98%-18%30%-35%-40%-45%-55%-55%62%5%-14%-69%19%9%23%-100%93%70%3%-67%0%-98%-10%100%-7%2%8%-13%59%6%92%88%-101%-103%-53%-72%48%29%-44%-33%-94%29%-112%-119%102%-46%-4%8%-90%-65%-25%-38%92%-80%105%124%36%-64%-78%-4%55%3%6%-17%-102%88%7%6%23%115%57%-9%16%24%100%-102%-87%10%-100%-82%103%34%-25%-62%21%-67%46%17%-88%-117%-119%45%-10%17%92%-72%-83%90%94%-55%-11%-105%80%76%125%115%25%97%-72%-16%-61%-77%-78%51%117%46%83%-119%94%111%3%-14%-70%-39%41%-76%106%41%23%-80%-104%-14%-43%-48%-58%113%7%-48%76%57%29%29%49%-10%119%4%-57%37%108%-11%-6%72%9%91%101%-126%-118%52%-62%114%-49%-40%-56%30%91%-11%-26%97%55%-31%63%-90%-18%-67%-49%-104%90%15%-24%-49%-72%112%49%-15%64%-16%92%-90%-66%-104%-85%-115%43%-96%21%-17%49%95%55%79%29%80%-9%26%78%-31%-82%-52%-67%65%-104%-11%82%-42%108%-101%100%-31%-18%113%126%20%35%-50%-87%-84%-53%118%-77%104%-12%-13%-13%87%-28%-67%-107%95%112%97%121%13%-47%-13%-112%-88%-58%-71%79%-100%110%23%36%-10%126%48%40%122%-79%-68%-96%-84%112%-24%-44%121%-73%-104%93%123%-37%2%-53%13%-7%-113%24%-38%7%-59%42%-113%125%125%-54%77%4%50%58%62%67%-33%-61%-58%-36%59%-50%92%105%112%115%-71%-15%24%-9%-85%71%101%-49%88%-106%96%65%-32%-17%-99%-29%105%-119%-61%-11%-112%-89%-23%75%-102%-118%94%88%64%-84%-54%61%123%-120%76%-32%-72%-22%50%-117%80%-23%61%-61%-111%54%-10%-23%-116%113%-91%-10%126%-93%112%-49%-120%84%113%71%87%124%55%50%19%63%126%-30%107%-56%-119%127%85%-33%-55%68%13%84%-78%76%-21%-111%87%80%85%127%-113%52%127%-106%-93%40%45%-7%85%122%-99%-9%87%123%-27%-81%52%88%93%29%-39%124%31%90%-17%-66%-94%-101%-30%-43%61%-105%-38%40%77%33%53%-33%-71%-123%99%-7%104%103%126%73%95%13%-72%-71%-110%-119%-88%-45%110%32%-82%-17%25%-67%-97%-20%-33%-74%-72%31%-12%-7%-31%74%22%9%25%-66%-37%36%97%127%-4%-13%-76%-67%-119%-4%-68%116%-38%-84%-83%4%-61%-69%51%-18%-89%102%-77%25%-10%-115%-22%-121%-2%3%52%51%-49%67%-105%-19%90%17%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%5%-46%-52%-24%92%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_54LY8DrWEeGMCcwsbpLuFA" source="image_papyrus">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_54MnEDrWEeGMCcwsbpLuFA" key="image_kind_key" value="icon"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ACEvYDrXEeGMCcwsbpLuFA" key="image_name_key" value="IconConjAMIPoll"/>
</eAnnotations>
</icon>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_AQZZwLqOEd-SedGzMDDkww" name="AMIcallback">
- <icon xmi:id="_KoY8QDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%72%0%0%0%104%8%3%0%0%0%101%-97%70%67%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%103%103%103%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%-34%-34%-34%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-51%-46%-59%107%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%-13%73%68%65%84%88%-123%-75%-39%109%67%-86%48%20%0%-32%-39%53%75%-67%105%26%-23%-51%74%52%73%45%-13%-86%13%-13%37%-55%-105%-44%-1%-1%-109%-82%-70%13%6%-116%-77%-93%113%-49%-73%-28%-12%48%-74%113%-40%-128%80%116%12%55%-39%-4%116%78%-56%-14%-13%-6%-9%-13%40%120%-108%32%21%-69%121%85%39%82%52%-14%109%-65%-123%-124%-102%-9%36%20%-85%-92%125%44%84%-67%13%51%-5%-72%-33%30%7%117%-44%-52%62%-78%110%-93%-12%-48%-80%31%-19%16%82%40%98%-95%-30%-89%-12%111%-26%52%-105%-51%-68%79%-66%-91%-97%-26%51%28%100%23%-68%-50%-51%-82%-59%-123%84%47%-67%-50%-65%27%-95%-96%-116%-56%-81%-65%-7%-122%-37%62%119%-101%-107%-73%17%-48%-117%-37%23%70%-24%-102%-35%-66%-21%-22%33%-93%-63%115%51%-74%-30%104%-57%-30%71%23%90%72%-100%-76%-93%62%-36%-30%-121%-57%58%-56%-31%-89%-20%71%37%116%-71%-76%-47%64%57%-106%118%59%-116%-52%-56%-77%-116%50%12%-35%-16%6%-43%-12%109%126%0%-95%54%75%-54%65%-115%-50%-120%-127%-125%-96%-100%56%-101%-66%-43%101%8%26%-78%-79%-81%64%14%-91%31%-20%108%14%0%85%-7%20%-126%-95%36%-53%106%6%-96%-46%-52%-117%95%-18%-48%66%-15%-59%-78%82%62%40%41%-33%-42%34%28%24%-78%89%86%90%-122%54%10%-122%-112%80%-103%15%4%59%-7%64%-122%6%74%72%-29%-48%-54%33%107%34%-25%77%-108%-112%-22%118%-107%99%-50%38%-101%30%-102%105%32%-106%-107%-43%67%-64%13%-78%15%-125%101%117%-62%80%-91%-59%-29%-110%-91%-92%96%40%-63%-78%90%97%104%18%56%-41%68%-15%-33%82%-16%17%122%4%32%58%61%-4%109%-35%64%-114%-51%70%-1%-101%66%16%127%48%-66%65%16%-81%16%61%16%90%-80%-92%70%-88%-18%123%49%92%-79%-100%45%8%-15%-71%-74%59%93%100%-16%70%-101%67%24%58%-29%51%-96%29%-27%60%89%-18%-56%-126%16%-17%110%98%85%-43%-114%99%-78%-29%-53%-95%14%-86%-15%38%-103%79%42%103%-79%-108%90%12%67%-18%-125%-51%82%76%-53%103%-79%-124%27%-37%122%104%84%22%119%-54%-57%34%112%89%110%-83%88%30%70%85%3%-47%-46%74%-28%-109%-63%-38%43%4%-43%-65%-30%113%77%-22%-20%12%58%-120%62%74%107%80%115%-48%105%-83%-41%-83%-117%-98%-89%19%43%65%113%-112%-41%-91%-54%112%-121%65%15%81%67%93%94%14%81%113%-85%21%2%-94%118%-38%-118%112%-6%94%65%-57%64%-14%16%-55%-31%27%72%28%-76%-21%-87%92%-35%-81%52%-14%-2%-46%-119%-123%-10%91%-111%94%69%40%-53%65%104%51%-126%-121%14%81%122%-36%38%-86%-54%-57%-63%-111%80%116%-60%9%57%-25%111%44%-106%63%-125%-38%-127%73%114%42%84%12%12%-21%-55%80%45%56%-51%78%-123%30%-30%-126%-24%-8%4%-56%72%-68%-20%6%-89%37%-105%114%66%111%-6%-26%81%-112%-109%-54%-117%-62%50%-10%65%94%96%-26%81%45%39%13%-78%-68%-75%56%14%58%43%-5%26%-33%61%17%26%-11%2%-35%-103%60%13%-86%-122%106%110%-30%36%40%21%46%-109%-2%81%67%66%41%9%88%-26%95%55%-50%-20%107%45%-41%36%44%-44%116%21%43%-89%92%9%32%-95%-124%123%93%-3%63%-22%22%-29%-96%-110%-104%-77%-26%-103%-102%-63%66%124%-57%73%-54%-91%40%7%7%-119%5%87%5%88%4%98%-96%-30%-73%-34%65%65%124%-28%-83%47%-64%65%65%108%-37%2%47%-109%49%16%-33%-58%-107%-31%109%18%2%-30%-101%-19%103%-48%65%64%35%54%23%87%-102%125%-101%30%-30%-101%-19%46%-123%67%15%-99%51%72%-77%71%70%64%108%105%100%106%28%5%52%-99%-7%-29%-18%-16%-21%-57%-15%-112%58%-46%113%65%-16%108%-4%95%-48%117%92%-48%107%92%-48%-80%16%13%-127%-81%-75%-126%-48%-18%-2%-68%-32%-117%-73%-105%-106%27%-20%21%-76%-26%117%20%-26%-19%113%-102%53%-87%-88%73%-45%67%-4%85%-61%86%-109%-90%-121%28%6%93%-1%24%18%5%82%-13%-42%6%1%-15%89%-95%-71%73%16%-112%-63%42%-101%-75%0%-77%48%31%15%-82%88%-109%-32%-94%-115%-127%120%-115%-124%-117%36%-22%-69%-56%59%-105%-96%119%82%40%-56%48%-11%18%-18%-109%79%91%-36%114%-23%-56%126%66%126%59%18%-53%17%82%-114%26%59%36%52%114%-117%94%-93%-89%94%2%96%63%-117%21%-35%-3%44%33%-123%-74%-30%21%55%22%-94%-122%36%17%82%-97%78%38%19%-33%-73%9%52%68%-115%80%-39%-13%125%-100%-64%67%-69%103%110%-61%15%-7%-54%-17%49%16%117%62%99%-126%-88%-99%24%-57%3%-19%98%-47%-81%-57%3%-19%-30%-95%-35%43%-49%119%113%46%-1%-8%15%83%120%-125%-89%63%57%-45%-36%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%32%-103%-56%60%27%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
- <icon xmi:id="_WTUY0ENnEeGoAtSeIK7WLg" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%72%0%0%0%104%8%3%0%0%0%101%-97%70%67%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%103%103%103%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%-34%-34%-34%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-51%-46%-59%107%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%-13%73%68%65%84%88%-123%-75%-39%109%67%-86%48%20%0%-32%-39%53%75%-67%105%26%-23%-51%74%52%73%45%-13%-86%13%-13%37%-55%-105%-44%-1%-1%-109%-82%-70%13%6%-116%-77%-93%113%-49%-73%-28%-12%48%-74%113%-40%-128%80%116%12%55%-39%-4%116%78%-56%-14%-13%-6%-9%-13%40%120%-108%32%21%-69%121%85%39%82%52%-14%109%-65%-123%-124%-102%-9%36%20%-85%-92%125%44%84%-67%13%51%-5%-72%-33%30%7%117%-44%-52%62%-78%110%-93%-12%-48%-80%31%-19%16%82%40%98%-95%-30%-89%-12%111%-26%52%-105%-51%-68%79%-66%-91%-97%-26%51%28%100%23%-68%-50%-51%-82%-59%-123%84%47%-67%-50%-65%27%-95%-96%-116%-56%-81%-65%-7%-122%-37%62%119%-101%-107%-73%17%-48%-117%-37%23%70%-24%-102%-35%-66%-21%-22%33%-93%-63%115%51%-74%-30%104%-57%-30%71%23%90%72%-100%-76%-93%62%-36%-30%-121%-57%58%-56%-31%-89%-20%71%37%116%-71%-76%-47%64%57%-106%118%59%-116%-52%-56%-77%-116%50%12%-35%-16%6%-43%-12%109%126%0%-95%54%75%-54%65%-115%-50%-120%-127%-125%-96%-100%56%-101%-66%-43%101%8%26%-78%-79%-81%64%14%-91%31%-20%108%14%0%85%-7%20%-126%-95%36%-53%106%6%-96%-46%-52%-117%95%-18%-48%66%-15%-59%-78%82%62%40%41%-33%-42%34%28%24%-78%89%86%90%-122%54%10%-122%-112%80%-103%15%4%59%-7%64%-122%6%74%72%-29%-48%-54%33%107%34%-25%77%-108%-112%-22%118%-107%99%-50%38%-101%30%-102%105%32%-106%-107%-43%67%-64%13%-78%15%-125%101%117%-62%80%-91%-59%-29%-110%-91%-92%96%40%-63%-78%90%97%104%18%56%-41%68%-15%-33%82%-16%17%122%4%32%58%61%-4%109%-35%64%-114%-51%70%-1%-101%66%16%127%48%-66%65%16%-81%16%61%16%90%-80%-92%70%-88%-18%123%49%92%-79%-100%45%8%-15%-71%-74%59%93%100%-16%70%-101%67%24%58%-29%51%-96%29%-27%60%89%-18%-56%-126%16%-17%110%98%85%-43%-114%99%-78%-29%-53%-95%14%-86%-15%38%-103%79%42%103%-79%-108%90%12%67%-18%-125%-51%82%76%-53%103%-79%-124%27%-37%122%104%84%22%119%-54%-57%34%112%89%110%-83%88%30%70%85%3%-47%-46%74%-28%-109%-63%-38%43%4%-43%-65%-30%113%77%-22%-20%12%58%-120%62%74%107%80%115%-48%105%-83%-41%-83%-117%-98%-89%19%43%65%113%-112%-41%-91%-54%112%-121%65%15%81%67%93%94%14%81%113%-85%21%2%-94%118%-38%-118%112%-6%94%65%-57%64%-14%16%-55%-31%27%72%28%-76%-21%-87%92%-35%-81%52%-14%-2%-46%-119%-123%-10%91%-111%94%69%40%-53%65%104%51%-126%-121%14%81%122%-36%38%-86%-54%-57%-63%-111%80%116%-60%9%57%-25%111%44%-106%63%-125%-38%-127%73%114%42%84%12%12%-21%-55%80%45%56%-51%78%-123%30%-30%-126%-24%-8%4%-56%72%-68%-20%6%-89%37%-105%114%66%111%-6%-26%81%-112%-109%-54%-117%-62%50%-10%65%94%96%-26%81%45%39%13%-78%-68%-75%56%14%58%43%-5%26%-33%61%17%26%-11%2%-35%-103%60%13%-86%-122%106%110%-30%36%40%21%46%-109%-2%81%67%66%41%9%88%-26%95%55%-50%-20%107%45%-41%36%44%-44%116%21%43%-89%92%9%32%-95%-124%123%93%-3%63%-22%22%-29%-96%-110%-104%-77%-26%-103%-102%-63%66%124%-57%73%-54%-91%40%7%7%-119%5%87%5%88%4%98%-96%-30%-73%-34%65%65%124%-28%-83%47%-64%65%65%108%-37%2%47%-109%49%16%-33%-58%-107%-31%109%18%2%-30%-101%-19%103%-48%65%64%35%54%23%87%-102%125%-101%30%-30%-101%-19%46%-123%67%15%-99%51%72%-77%71%70%64%108%105%100%106%28%5%52%-99%-7%-29%-18%-16%-21%-57%-15%-112%58%-46%113%65%-16%108%-4%95%-48%117%92%-48%107%92%-48%-80%16%13%-127%-81%-75%-126%-48%-18%-2%-68%-32%-117%-73%-105%-106%27%-20%21%-76%-26%117%20%-26%-19%113%-102%53%-87%-88%73%-45%67%-4%85%-61%86%-109%-90%-121%28%6%93%-1%24%18%5%82%-13%-42%6%1%-15%89%-95%-71%73%16%-112%-63%42%-101%-75%0%-77%48%31%15%-82%88%-109%-32%-94%-115%-127%120%-115%-124%-117%36%-22%-69%-56%59%-105%-96%119%82%40%-56%48%-11%18%-18%-109%79%91%-36%114%-23%-56%126%66%126%59%18%-53%17%82%-114%26%59%36%52%114%-117%94%-93%-89%94%2%96%63%-117%21%-35%-3%44%33%-123%-74%-30%21%55%22%-94%-122%36%17%82%-97%78%38%19%-33%-73%9%52%68%-115%80%-39%-13%125%-100%-64%67%-69%103%110%-61%15%-7%-54%-17%49%16%117%62%99%-126%-88%-99%24%-57%3%-19%98%-47%-81%-57%3%-19%-30%-95%-35%43%-49%119%113%46%-1%-8%15%83%120%-125%-89%63%57%-45%-36%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%32%-103%-56%60%27%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ <icon xmi:type="uml:Image" xmi:id="_KoY8QDiyEeGiupyIkgMHVw" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%72%0%0%0%104%8%3%0%0%0%101%-97%70%67%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%103%103%103%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%-34%-34%-34%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-51%-46%-59%107%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%-13%73%68%65%84%88%-123%-75%-39%109%67%-86%48%20%0%-32%-39%53%75%-67%105%26%-23%-51%74%52%73%45%-13%-86%13%-13%37%-55%-105%-44%-1%-1%-109%-82%-70%13%6%-116%-77%-93%113%-49%-73%-28%-12%48%-74%113%-40%-128%80%116%12%55%-39%-4%116%78%-56%-14%-13%-6%-9%-13%40%120%-108%32%21%-69%121%85%39%82%52%-14%109%-65%-123%-124%-102%-9%36%20%-85%-92%125%44%84%-67%13%51%-5%-72%-33%30%7%117%-44%-52%62%-78%110%-93%-12%-48%-80%31%-19%16%82%40%98%-95%-30%-89%-12%111%-26%52%-105%-51%-68%79%-66%-91%-97%-26%51%28%100%23%-68%-50%-51%-82%-59%-123%84%47%-67%-50%-65%27%-95%-96%-116%-56%-81%-65%-7%-122%-37%62%119%-101%-107%-73%17%-48%-117%-37%23%70%-24%-102%-35%-66%-21%-22%33%-93%-63%115%51%-74%-30%104%-57%-30%71%23%90%72%-100%-76%-93%62%-36%-30%-121%-57%58%-56%-31%-89%-20%71%37%116%-71%-76%-47%64%57%-106%118%59%-116%-52%-56%-77%-116%50%12%-35%-16%6%-43%-12%109%126%0%-95%54%75%-54%65%-115%-50%-120%-127%-125%-96%-100%56%-101%-66%-43%101%8%26%-78%-79%-81%64%14%-91%31%-20%108%14%0%85%-7%20%-126%-95%36%-53%106%6%-96%-46%-52%-117%95%-18%-48%66%-15%-59%-78%82%62%40%41%-33%-42%34%28%24%-78%89%86%90%-122%54%10%-122%-112%80%-103%15%4%59%-7%64%-122%6%74%72%-29%-48%-54%33%107%34%-25%77%-108%-112%-22%118%-107%99%-50%38%-101%30%-102%105%32%-106%-107%-43%67%-64%13%-78%15%-125%101%117%-62%80%-91%-59%-29%-110%-91%-92%96%40%-63%-78%90%97%104%18%56%-41%68%-15%-33%82%-16%17%122%4%32%58%61%-4%109%-35%64%-114%-51%70%-1%-101%66%16%127%48%-66%65%16%-81%16%61%16%90%-80%-92%70%-88%-18%123%49%92%-79%-100%45%8%-15%-71%-74%59%93%100%-16%70%-101%67%24%58%-29%51%-96%29%-27%60%89%-18%-56%-126%16%-17%110%98%85%-43%-114%99%-78%-29%-53%-95%14%-86%-15%38%-103%79%42%103%-79%-108%90%12%67%-18%-125%-51%82%76%-53%103%-79%-124%27%-37%122%104%84%22%119%-54%-57%34%112%89%110%-83%88%30%70%85%3%-47%-46%74%-28%-109%-63%-38%43%4%-43%-65%-30%113%77%-22%-20%12%58%-120%62%74%107%80%115%-48%105%-83%-41%-83%-117%-98%-89%19%43%65%113%-112%-41%-91%-54%112%-121%65%15%81%67%93%94%14%81%113%-85%21%2%-94%118%-38%-118%112%-6%94%65%-57%64%-14%16%-55%-31%27%72%28%-76%-21%-87%92%-35%-81%52%-14%-2%-46%-119%-123%-10%91%-111%94%69%40%-53%65%104%51%-126%-121%14%81%122%-36%38%-86%-54%-57%-63%-111%80%116%-60%9%57%-25%111%44%-106%63%-125%-38%-127%73%114%42%84%12%12%-21%-55%80%45%56%-51%78%-123%30%-30%-126%-24%-8%4%-56%72%-68%-20%6%-89%37%-105%114%66%111%-6%-26%81%-112%-109%-54%-117%-62%50%-10%65%94%96%-26%81%45%39%13%-78%-68%-75%56%14%58%43%-5%26%-33%61%17%26%-11%2%-35%-103%60%13%-86%-122%106%110%-30%36%40%21%46%-109%-2%81%67%66%41%9%88%-26%95%55%-50%-20%107%45%-41%36%44%-44%116%21%43%-89%92%9%32%-95%-124%123%93%-3%63%-22%22%-29%-96%-110%-104%-77%-26%-103%-102%-63%66%124%-57%73%-54%-91%40%7%7%-119%5%87%5%88%4%98%-96%-30%-73%-34%65%65%124%-28%-83%47%-64%65%65%108%-37%2%47%-109%49%16%-33%-58%-107%-31%109%18%2%-30%-101%-19%103%-48%65%64%35%54%23%87%-102%125%-101%30%-30%-101%-19%46%-123%67%15%-99%51%72%-77%71%70%64%108%105%100%106%28%5%52%-99%-7%-29%-18%-16%-21%-57%-15%-112%58%-46%113%65%-16%108%-4%95%-48%117%92%-48%107%92%-48%-80%16%13%-127%-81%-75%-126%-48%-18%-2%-68%-32%-117%-73%-105%-106%27%-20%21%-76%-26%117%20%-26%-19%113%-102%53%-87%-88%73%-45%67%-4%85%-61%86%-109%-90%-121%28%6%93%-1%24%18%5%82%-13%-42%6%1%-15%89%-95%-71%73%16%-112%-63%42%-101%-75%0%-77%48%31%15%-82%88%-109%-32%-94%-115%-127%120%-115%-124%-117%36%-22%-69%-56%59%-105%-96%119%82%40%-56%48%-11%18%-18%-109%79%91%-36%114%-23%-56%126%66%126%59%18%-53%17%82%-114%26%59%36%52%114%-117%94%-93%-89%94%2%96%63%-117%21%-35%-3%44%33%-123%-74%-30%21%55%22%-94%-122%36%17%82%-97%78%38%19%-33%-73%9%52%68%-115%80%-39%-13%125%-100%-64%67%-69%103%110%-61%15%-7%-54%-17%49%16%117%62%99%-126%-88%-99%24%-57%3%-19%98%-47%-81%-57%3%-19%-30%-95%-35%43%-49%119%113%46%-1%-8%15%83%120%-125%-89%63%57%-45%-36%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%32%-103%-56%60%27%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ <icon xmi:type="uml:Image" xmi:id="_WTUY0ENnEeGoAtSeIK7WLg" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%72%0%0%0%104%8%3%0%0%0%101%-97%70%67%0%0%0%4%103%65%77%65%0%0%-79%-113%11%-4%97%5%0%0%0%-43%80%76%84%69%0%0%0%-81%-81%-81%-85%-85%-85%-103%-103%-103%-107%-107%-107%-111%-111%-111%-115%-115%-115%-119%-119%-119%119%119%119%115%115%115%111%111%111%107%107%107%103%103%103%85%85%85%81%81%81%77%77%77%73%73%73%69%69%69%-18%-18%-18%-22%-22%-22%-26%-26%-26%51%51%51%-30%-30%-30%47%47%47%-34%-34%-34%43%43%43%39%39%39%35%35%35%-52%-52%-52%-56%-56%-56%-60%-60%-60%17%17%17%-64%-64%-64%13%13%13%-68%-68%-68%9%9%9%5%5%5%-86%-86%-86%-90%-90%-90%-94%-94%-94%-98%-98%-98%-102%-102%-102%-120%-120%-120%-124%-124%-124%-128%-128%-128%124%124%124%102%102%102%98%98%98%94%94%94%90%90%90%86%86%86%-1%-1%-1%-5%-5%-5%-9%-9%-9%68%68%68%-13%-13%-13%64%64%64%60%60%60%56%56%56%52%52%52%-35%-35%-35%-39%-39%-39%-43%-43%-43%34%34%34%-47%-47%-47%30%30%30%26%26%26%22%22%22%-69%-69%-69%-73%-73%-73%-77%-77%-77%-51%-46%-59%107%0%0%0%61%116%69%88%116%83%111%102%116%119%97%114%101%0%88%86%32%118%101%114%115%105%111%110%32%51%46%49%48%97%45%106%117%109%98%111%70%105%120%43%69%110%104%32%111%102%32%50%48%48%56%49%50%49%54%32%40%105%110%116%101%114%105%109%33%41%-80%-32%124%-127%0%0%3%-13%73%68%65%84%88%-123%-75%-39%109%67%-86%48%20%0%-32%-39%53%75%-67%105%26%-23%-51%74%52%73%45%-13%-86%13%-13%37%-55%-105%-44%-1%-1%-109%-82%-70%13%6%-116%-77%-93%113%-49%-73%-28%-12%48%-74%113%-40%-128%80%116%12%55%-39%-4%116%78%-56%-14%-13%-6%-9%-13%40%120%-108%32%21%-69%121%85%39%82%52%-14%109%-65%-123%-124%-102%-9%36%20%-85%-92%125%44%84%-67%13%51%-5%-72%-33%30%7%117%-44%-52%62%-78%110%-93%-12%-48%-80%31%-19%16%82%40%98%-95%-30%-89%-12%111%-26%52%-105%-51%-68%79%-66%-91%-97%-26%51%28%100%23%-68%-50%-51%-82%-59%-123%84%47%-67%-50%-65%27%-95%-96%-116%-56%-81%-65%-7%-122%-37%62%119%-101%-107%-73%17%-48%-117%-37%23%70%-24%-102%-35%-66%-21%-22%33%-93%-63%115%51%-74%-30%104%-57%-30%71%23%90%72%-100%-76%-93%62%-36%-30%-121%-57%58%-56%-31%-89%-20%71%37%116%-71%-76%-47%64%57%-106%118%59%-116%-52%-56%-77%-116%50%12%-35%-16%6%-43%-12%109%126%0%-95%54%75%-54%65%-115%-50%-120%-127%-125%-96%-100%56%-101%-66%-43%101%8%26%-78%-79%-81%64%14%-91%31%-20%108%14%0%85%-7%20%-126%-95%36%-53%106%6%-96%-46%-52%-117%95%-18%-48%66%-15%-59%-78%82%62%40%41%-33%-42%34%28%24%-78%89%86%90%-122%54%10%-122%-112%80%-103%15%4%59%-7%64%-122%6%74%72%-29%-48%-54%33%107%34%-25%77%-108%-112%-22%118%-107%99%-50%38%-101%30%-102%105%32%-106%-107%-43%67%-64%13%-78%15%-125%101%117%-62%80%-91%-59%-29%-110%-91%-92%96%40%-63%-78%90%97%104%18%56%-41%68%-15%-33%82%-16%17%122%4%32%58%61%-4%109%-35%64%-114%-51%70%-1%-101%66%16%127%48%-66%65%16%-81%16%61%16%90%-80%-92%70%-88%-18%123%49%92%-79%-100%45%8%-15%-71%-74%59%93%100%-16%70%-101%67%24%58%-29%51%-96%29%-27%60%89%-18%-56%-126%16%-17%110%98%85%-43%-114%99%-78%-29%-53%-95%14%-86%-15%38%-103%79%42%103%-79%-108%90%12%67%-18%-125%-51%82%76%-53%103%-79%-124%27%-37%122%104%84%22%119%-54%-57%34%112%89%110%-83%88%30%70%85%3%-47%-46%74%-28%-109%-63%-38%43%4%-43%-65%-30%113%77%-22%-20%12%58%-120%62%74%107%80%115%-48%105%-83%-41%-83%-117%-98%-89%19%43%65%113%-112%-41%-91%-54%112%-121%65%15%81%67%93%94%14%81%113%-85%21%2%-94%118%-38%-118%112%-6%94%65%-57%64%-14%16%-55%-31%27%72%28%-76%-21%-87%92%-35%-81%52%-14%-2%-46%-119%-123%-10%91%-111%94%69%40%-53%65%104%51%-126%-121%14%81%122%-36%38%-86%-54%-57%-63%-111%80%116%-60%9%57%-25%111%44%-106%63%-125%-38%-127%73%114%42%84%12%12%-21%-55%80%45%56%-51%78%-123%30%-30%-126%-24%-8%4%-56%72%-68%-20%6%-89%37%-105%114%66%111%-6%-26%81%-112%-109%-54%-117%-62%50%-10%65%94%96%-26%81%45%39%13%-78%-68%-75%56%14%58%43%-5%26%-33%61%17%26%-11%2%-35%-103%60%13%-86%-122%106%110%-30%36%40%21%46%-109%-2%81%67%66%41%9%88%-26%95%55%-50%-20%107%45%-41%36%44%-44%116%21%43%-89%92%9%32%-95%-124%123%93%-3%63%-22%22%-29%-96%-110%-104%-77%-26%-103%-102%-63%66%124%-57%73%-54%-91%40%7%7%-119%5%87%5%88%4%98%-96%-30%-73%-34%65%65%124%-28%-83%47%-64%65%65%108%-37%2%47%-109%49%16%-33%-58%-107%-31%109%18%2%-30%-101%-19%103%-48%65%64%35%54%23%87%-102%125%-101%30%-30%-101%-19%46%-123%67%15%-99%51%72%-77%71%70%64%108%105%100%106%28%5%52%-99%-7%-29%-18%-16%-21%-57%-15%-112%58%-46%113%65%-16%108%-4%95%-48%117%92%-48%107%92%-48%-80%16%13%-127%-81%-75%-126%-48%-18%-2%-68%-32%-117%-73%-105%-106%27%-20%21%-76%-26%117%20%-26%-19%113%-102%53%-87%-88%73%-45%67%-4%85%-61%86%-109%-90%-121%28%6%93%-1%24%18%5%82%-13%-42%6%1%-15%89%-95%-71%73%16%-112%-63%42%-101%-75%0%-77%48%31%15%-82%88%-109%-32%-94%-115%-127%120%-115%-124%-117%36%-22%-69%-56%59%-105%-96%119%82%40%-56%48%-11%18%-18%-109%79%91%-36%114%-23%-56%126%66%126%59%18%-53%17%82%-114%26%59%36%52%114%-117%94%-93%-89%94%2%96%63%-117%21%-35%-3%44%33%-123%-74%-30%21%55%22%-94%-122%36%17%82%-97%78%38%19%-33%-73%9%52%68%-115%80%-39%-13%125%-100%-64%67%-69%103%110%-61%15%-7%-54%-17%49%16%117%62%99%-126%-88%-99%24%-57%3%-19%98%-47%-81%-57%3%-19%-30%-95%-35%43%-49%119%113%46%-1%-8%15%83%120%-125%-89%63%57%-45%-36%0%0%0%7%116%73%77%69%7%-36%1%6%14%1%32%-103%-56%60%27%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
</packagedElement>
<packagedElement xmi:type="uml:Stereotype" xmi:id="_GjnlcC8qEeKx7OxAiA06uw" name="PushProdPullCons">
- <icon xmi:id="_0I0rMEMLEeKGIL695HkFYQ" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%112%0%0%0%103%8%0%0%0%0%-3%88%-103%-76%0%0%7%56%73%68%65%84%104%-127%-75%-102%123%80%21%85%28%-57%-9%-18%-67%92%121%-91%40%-124%38%70%64%-26%11%-33%-118%-29%115%124%84%-90%83%106%-91%-93%2%-115%83%-90%102%-90%-7%-56%-55%-41%-104%58%-26%-116%-40%56%-102%-64%-116%-88%53%101%62%-54%102%-14%81%26%86%102%-58%4%78%102%-120%14%89%62%72%5%-15%9%72%112%-111%-57%-62%-23%42%23%-10%123%118%-49%-18%-98%-35%-69%-2%-2%-29%-100%-33%-2%62%-105%-35%-13%123%-100%-33%57%2%-31%23%-23%-20%-87%-101%-116%-31%-102%-69%38%108%16%-127%31%-105%-38%78%16%-100%83%47%-46%-93%-43%-97%116%17%-59%94%-23%53%-10%3%-85%-34%116%9%15%36%-106%34%86%39%63%28%20%-109%-1%-77%29%-72%-92%-111%39%8%-29%-85%96%52%-75%105%116%90%-75%-51%-64%-116%22%62%-53%66%-28%101%121%-76%122%96%-45%-88%-72%-76%-34%86%-32%-31%80%-95%89%-66%-105%-121%47%61%-39%60%-22%78%-77%19%120%-90%-83%-52%19%-14%-28%-15%-62%56%121%56%116%-97%125%-64%-62%-98%-64%-21%120%93%-98%-88%26%12%19%109%-114%-39%5%44%123%22%-52%10%91%112%-22%-101%64%-104%-119%62%103%15%80%74%114%-128%-43%23%-53%113%-50%-25%22%62%-23%117%-51%22%-32%42%39%-40%-20%83%76%79%-106%-67%-128%-60%81%-58%65%-57%24%-72%-93%5%88%-20%-112%-81%-100%-66%-103%-128%-60%-55%30%-65%-127%-103%-32%16%66%-21%-29%106%-123%11%79%-125%-126%56%-73%-42%79%96%126%52%-104%11%-38%-55%82%-55%121%28%84%2%-42%-7%7%-68%-34%11%95%-40%-70%58%-90%-46%-63%-57%64%39%-28%115%127%-128%-98%-25%-112%55%-29%-66%-122%-38%118%-4%-52%97%-121%-83%3%-91%-23%-24%16%99%52%51%66%-3%-121%34%-24%69%-99%-78%12%92%-29%2%59%61%-117%-75%21%107%-26%-32%-101%-24%-10%-113%69%-32%23%24%70%-94%114%-11%126%90%-59%68%36%14%101%21%6%-58%-64%19%-83%-64%70%-85%31%-12%120%-124%-108%12%69%-30%-72%50%11%64%72%61%-34%-46%-30%-45%6%125%32%-71%26%15%-22%-30%76%-83%-11%-91%13%-68%-35%7%127%-14%74%-74%67%-96%-28%70%-127%126%-64%7%-110%73%-96%-121%-118%-111%111%104%-2%96%-112%-93%97%-16%68%96%-70%73%-32%76%116%-120%81%-9%56%120%-124%-20%13%-126%103%66%-65%50%5%92%-113%14%-47%-11%10%23%-113%-44%111%-62%-68%18%-98%101%2%-72%-41%13%79%70%-98%-26%-29%121%-35%113%41%126%-121%-40%-13%-36%-64%-109%-24%16%-63%-103%-68%60%66%42%95%67%98%127%86%-88%96%1%11%48%67%56%-73%25%57%4%74%-39%88%36%14%47%-27%2%-106%80%14%-79%-62%-40%33%80%-118%-6%-31%-61%83%-85%84%10%106%-96%-12%18%46%-48%100%-11%35%-6%-110%31%11%79%59%22%-87%-36%81%13%-100%-117%-111%127%-104%118%-116%-46%-110%19%88%-61%6%108%52%4%110%70%-121%-120%-27%116%8%74%14%-32%-110%11%82%-26%99%37%112%63%58%68%-60%31%22%120%-92%126%43%102%-103%-106%-118%-88%-81%0%-2%-114%-31%41%-8%59%43%60%66%106%87%99%0%104%-105%71%77%-46%-64%43%88%-127%9%105%90%1%-40%72%60%-77%-48%76%-89%34%77%96%101%95%84%92%96%84%-15%105%75%-7%-85%104%104%48%-106%-57%8%-84%-101%-128%106%-109%121%-73%-104%44%-71%51%4%77%-31%30%22%-127%-117%-47%1%19%-52%59%4%-54%-91%46%96%-53%49%67%-2%56%0%-92%98%125%76%-127%95%60%-17%-14%123%2%-84%57%87%49%-128%-103%-104%-51%-38%-24%-106%122%92%114%-76%53%-40%115%103%-88%-128%-25%-38%-64%-68%-21%-96%-103%-120%-83%33%-69%-15%63%8%57%-92%0%-34%-120%-63%-81%-68%-103%-77%67%-96%43%13%31%81%-7%56%-121%2%86%12%66%-34%60%-21%14%-127%82%-77%16%-115%-58%92%4%96%-35%100%-100%-102%-32%-113%67%-96%84%38%-94%-39%-34%55%101%-32%10%116%-120%-34%37%54%-15%-68%-7%120%36%18%71%120%-102%-128%59%-112%-41%94%111%103%96%86%-118%-79%-1%-31%72%-108%26%-127%-57%48%67%-124%-8%-17%16%40%-25%-79%60%118%-66%-1%16%120%1%-13%-105%75%-93%-100%-76%44%89%-24%110%-31%69%94%96%113%71%124%-49%41%118%56%4%37%-5%-63%29%-59%84%47%-112%-6%-82%-13%-52%-107%76%60%-46%-112%14%-18%56%64%18%-14%112%-63%-116%54%-20%122%88%-112%44%-8%100%125%37%97%62%-16%-30%-17%60%2%-34%5%-88%114%29%-21%-119%-48%94%-2%51%-20%-46%35%-32%-35%-22%15%-1%81%-40%95%68%-64%125%-28%86%27%66%-74%66%42%38%-127%125%71%-94%-41%45%54%-94%79%88%-84%-102%-76%-91%-10%61%92%-110%-61%-68%-91%-65%112%59%0%70%66%-71%55%74%124%-46%-80%5%19%70%-41%-85%-28%-127%-29%83%91%-84%-88%-117%-122%70%-52%-56%1%76%-119%17%15%-1%27%111%-92%-103%-126%-60%78%-73%108%-28%-3%22%1%-106%-125%15%18%31%-16%-2%112%-22%61%87%-40%-58%43%120%6%-20%-70%55%-111%38%32%41%-19%-122%-60%41%-4%-89%44%-6%82%58%2%-84%58%23%18%25%72%10%-80%37%35%44%-78%39%-68%121%-110%-48%-24%-53%77%-91%105%99%2%-2%19%-73%20%-62%70%59%2%120%-35%114%52%57%-80%-71%-8%-10%-43%52%71%-80%1%-23%-38%-25%127%0%104%-56%64%-121%-120%-109%79%115%-102%-86%-74%109%-72%13%13%57%-18%55%48%19%-33%89%120%-74%60%-47%92%-105%-82%68%98%100%30%-53%-120%9%57%-35%14%-84%5%-19%-127%25%-71%-14%-98%-123%121%42%-90%72%109%-60%-124%20%-10%0%91%1%41%56%37%3%-21%-88%-114%-57%0%127%-10%50%-9%-80%115%-19%-104%69%109%51%97%51%83%-47%-101%90%-57%60%-3%60%-74%120%94%71%67%99%-24%62%8%110%-41%-118%-30%80%-15%109%-85%1%64%90%-125%11%52%-31%6%61%75%-19%-128%-13%-15%4%66%88%109%113%-57%77%117%-82%-97%82%30%-27%-48%123%-4%-97%67%64%-41%-75%-35%-110%59%-2%68%117%-82%127%84%78%43%-70%24%123%48%59%90%-22%98%-100%-61%70%93%-32%103%-86%121%101%-97%-122%-38%98%69%-28%-104%-26%81%-67%54%-41%90%-75%-126%-86%19%-75%0%3%64%-76%-39%124%124%15%-5%18%-30%116%-58%-70%83%1%-21%38%82%59%41%115%-123%99%-19%108%92%117%35%24%-35%75%70%115%-81%18%-49%117%-123%-25%-71%111%4%120%-91%-98%-6%32%-35%-103%71%57%-116%126%-23%45%-20%120%-16%53%-12%125%-14%101%48%60%24%-59%-114%-57%-52%-114%112%123%36%46%-31%-34%127%-1%18%14%-113%-75%-44%88%-30%-58%61%111%-25%22%-50%124%76%29%-107%6%102%104%104%-79%-69%-6%-5%49%88%4%127%-51%-59%-93%-70%93%-30%50%-109%39%51%105%24%0%-62%127%-27%-32%81%53%-67%-112%100%-6%-20%105%57%-70%99%7%-29%-126%-68%6%119%97%-62%112%-19%-66%-124%22%80%-102%-122%-18%-40%-29%95%35%-32%-57%88%20%-59%-21%-88%107%-98%-82%-47%-57%-65%35%13%2%-64%1%60%119%-114%-52%-42%-47%-44%62%63%-92%-49%-13%18%43%-11%120%39%35%65%53%84%119%-111%-23%-100%-112%-46%-3%-24%-7%58%1%-32%114%103%80%12%-40%-84%-57%-45%61%3%-50%69%71%118%-90%104%22%-28%119%71%-127%-98%-72%80%-33%109%117%79%-71%-113%96%62%14%-38%-87%-111%-113%-85%-88%19%-82%-119%6%-101%33%-3%-117%3%25%-72%-10%90%-79%-113%-39%-22%-105%-95%7%13%49%-38%-18%25%92%-115%88%-117%-25%52%109%-103%-7%120%43%54%-50%-30%12%27%117%6%64%-23%29%-4%-7%-99%24%-7%-8%80%75%80%-32%-120%73%70%-73%77%60%-44%9%-60%32%-43%11%59%-125%-103%37%100%-105%33%-49%-8%62%-51%93%-22%4%-30%21%69%62%46%-60%-30%-39%-99%-62%54%97%14%72%-82%117%71%-30%108%-86%91%92%54%26%-25%-34%-30%-23%36%115%-36%-119%58%-117%45%79%-9%-73%56%-75%1%121%-29%-54%-75%44%-104%4%-110%99%-104%-113%-57%-62%-65%113%37%6%38%-6%-23%-36%70%49%9%36%-69%-96%86%-23%12%123%-123%108%8%12%-86%-102%-34%31%32%-39%36%7%-128%104%-72%-69%-106%41%-13%-62%-114%-14%-15%56%-127%-46%-30%-26%0%48%6%-118%-37%-13%-51%-25%75%-116%-102%-34%47%-96%55%94%-6%-14%-79%115%55%-116%-42%-114%-9%-15%-60%85%-36%-115%15%-34%-5%-91%37%-109%26%-119%115%-88%-22%-35%87%-88%-119%-17%62%-126%43%-69%82%90%127%-105%-69%-25%94%-123%-27%-53%-55%-34%72%26%-67%-61%68%99%-121%-1%82%50%33%-27%-84%-46%-81%-28%-52%-33%-90%-6%72%-1%3%78%-120%-67%33%108%33%82%26%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
- <icon xmi:id="_12mboEMLEeKGIL695HkFYQ" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%112%0%0%0%103%8%0%0%0%0%-3%88%-103%-76%0%0%7%56%73%68%65%84%104%-127%-75%-102%123%80%21%85%28%-57%-9%-18%-67%92%121%-91%40%-124%38%70%64%-26%11%-33%-118%-29%115%124%84%-90%83%106%-91%-93%2%-115%83%-90%102%-90%-7%-56%-55%-41%-104%58%-26%-116%-40%56%-102%-64%-116%-88%53%101%62%-54%102%-14%81%26%86%102%-58%4%78%102%-120%14%89%62%72%5%-15%9%72%112%-111%-57%-62%-23%42%23%-10%123%118%-49%-18%-98%-35%-69%-2%-2%-29%-100%-33%-2%62%-105%-35%-13%123%-100%-33%57%2%-31%23%-23%-20%-87%-101%-116%-31%-102%-69%38%108%16%-127%31%-105%-38%78%16%-100%83%47%-46%-93%-43%-97%116%17%-59%94%-23%53%-10%3%-85%-34%116%9%15%36%-106%34%86%39%63%28%20%-109%-1%-77%29%-72%-92%-111%39%8%-29%-85%96%52%-75%105%116%90%-75%-51%-64%-116%22%62%-53%66%-28%101%121%-76%122%96%-45%-88%-72%-76%-34%86%-32%-31%80%-95%89%-66%-105%-121%47%61%-39%60%-22%78%-77%19%120%-90%-83%-52%19%-14%-28%-15%-62%56%121%56%116%-97%125%-64%-62%-98%-64%-21%120%93%-98%-88%26%12%19%109%-114%-39%5%44%123%22%-52%10%91%112%-22%-101%64%-104%-119%62%103%15%80%74%114%-128%-43%23%-53%113%-50%-25%22%62%-23%117%-51%22%-32%42%39%-40%-20%83%76%79%-106%-67%-128%-60%81%-58%65%-57%24%-72%-93%5%88%-20%-112%-81%-100%-66%-103%-128%-60%-55%30%-65%-127%-103%-32%16%66%-21%-29%106%-123%11%79%-125%-126%56%-73%-42%79%96%126%52%-104%11%-38%-55%82%-55%121%28%84%2%-42%-7%7%-68%-34%11%95%-40%-70%58%-90%-46%-63%-57%64%39%-28%115%127%-128%-98%-25%-112%55%-29%-66%-122%-38%118%-4%-52%97%-121%-83%3%-91%-23%-24%16%99%52%51%66%-3%-121%34%-24%69%-99%-78%12%92%-29%2%59%61%-117%-75%21%107%-26%-32%-101%-24%-10%-113%69%-32%23%24%70%-94%114%-11%126%90%-59%68%36%14%101%21%6%-58%-64%19%-83%-64%70%-85%31%-12%120%-124%-108%12%69%-30%-72%50%11%64%72%61%-34%-46%-30%-45%6%125%32%-71%26%15%-22%-30%76%-83%-11%-91%13%-68%-35%7%127%-14%74%-74%67%-96%-28%70%-127%126%-64%7%-110%73%-96%-121%-118%-111%111%104%-2%96%-112%-93%97%-16%68%96%-70%73%-32%76%116%-120%81%-9%56%120%-124%-20%13%-126%103%66%-65%50%5%92%-113%14%-47%-11%10%23%-113%-44%111%-62%-68%18%-98%101%2%-72%-41%13%79%70%-98%-26%-29%121%-35%113%41%126%-121%-40%-13%-36%-64%-109%-24%16%-63%-103%-68%60%66%42%95%67%98%127%86%-88%96%1%11%48%67%56%-73%25%57%4%74%-39%88%36%14%47%-27%2%-106%80%14%-79%-62%-40%33%80%-118%-6%-31%-61%83%-85%84%10%106%-96%-12%18%46%-48%100%-11%35%-6%-110%31%11%79%59%22%-87%-36%81%13%-100%-117%-111%127%-104%118%-116%-46%-110%19%88%-61%6%108%52%4%110%70%-121%-120%-27%116%8%74%14%-32%-110%11%82%-26%99%37%112%63%58%68%-60%31%22%120%-92%126%43%102%-103%-106%-118%-88%-81%0%-2%-114%-31%41%-8%59%43%60%66%106%87%99%0%104%-105%71%77%-46%-64%43%88%-127%9%105%90%1%-40%72%60%-77%-48%76%-89%34%77%96%101%95%84%92%96%84%-15%105%75%-7%-85%104%104%48%-106%-57%8%-84%-101%-128%106%-109%121%-73%-104%44%-71%51%4%77%-31%30%22%-127%-117%-47%1%19%-52%59%4%-54%-91%46%96%-53%49%67%-2%56%0%-92%98%125%76%-127%95%60%-17%-14%123%2%-84%57%87%49%-128%-103%-104%-51%-38%-24%-106%122%92%114%-76%53%-40%115%103%-88%-128%-25%-38%-64%-68%-21%-96%-103%-120%-83%33%-69%-15%63%8%57%-92%0%-34%-120%-63%-81%-68%-103%-77%67%-96%43%13%31%81%-7%56%-121%2%86%12%66%-34%60%-21%14%-127%82%-77%16%-115%-58%92%4%96%-35%100%-100%-102%-32%-113%67%-96%84%38%-94%-39%-34%55%101%-32%10%116%-120%-34%37%54%-15%-68%-7%120%36%18%71%120%-102%-128%59%-112%-41%94%111%103%96%86%-118%-79%-1%-31%72%-108%26%-127%-57%48%67%-124%-8%-17%16%40%-25%-79%60%118%-66%-1%16%120%1%-13%-105%75%-93%-100%-76%44%89%-24%110%-31%69%94%96%113%71%124%-49%41%118%56%4%37%-5%-63%29%-59%84%47%-112%-6%-82%-13%-52%-107%76%60%-46%-112%14%-18%56%64%18%-14%112%-63%-116%54%-20%122%88%-112%44%-8%100%125%37%97%62%-16%-30%-17%60%2%-34%5%-88%114%29%-21%-119%-48%94%-2%51%-20%-46%35%-32%-35%-22%15%-1%81%-40%95%68%-64%125%-28%86%27%66%-74%66%42%38%-127%125%71%-94%-41%45%54%-94%79%88%-84%-102%-76%-91%-10%61%92%-110%-61%-68%-91%-65%112%59%0%70%66%-71%55%74%124%-46%-80%5%19%70%-41%-85%-28%-127%-29%83%91%-84%-88%-117%-122%70%-52%-56%1%76%-119%17%15%-1%27%111%-92%-103%-126%-60%78%-73%108%-28%-3%22%1%-106%-125%15%18%31%-16%-2%112%-22%61%87%-40%-58%43%120%6%-20%-70%55%-111%38%32%41%-19%-122%-60%41%-4%-89%44%-6%82%58%2%-84%58%23%18%25%72%10%-80%37%35%44%-78%39%-68%121%-110%-48%-24%-53%77%-91%105%99%2%-2%19%-73%20%-62%70%59%2%120%-35%114%52%57%-80%-71%-8%-10%-43%52%71%-80%1%-23%-38%-25%127%0%104%-56%64%-121%-120%-109%79%115%-102%-86%-74%109%-72%13%13%57%-18%55%48%19%-33%89%120%-74%60%-47%92%-105%-82%68%98%100%30%-53%-120%9%57%-35%14%-84%5%-19%-127%25%-71%-14%-98%-123%121%42%-90%72%109%-60%-124%20%-10%0%91%1%41%56%37%3%-21%-88%-114%-57%0%127%-10%50%-9%-80%115%-19%-104%69%109%51%97%51%83%-47%-101%90%-57%60%-3%60%-74%120%94%71%67%99%-24%62%8%110%-41%-118%-30%80%-15%109%-85%1%64%90%-125%11%52%-31%6%61%75%-19%-128%-13%-15%4%66%88%109%113%-57%77%117%-82%-97%82%30%-27%-48%123%-4%-97%67%64%-41%-75%-35%-110%59%-2%68%117%-82%127%84%78%43%-70%24%123%48%59%90%-22%98%-100%-61%70%93%-32%103%-86%121%101%-97%-122%-38%98%69%-28%-104%-26%81%-67%54%-41%90%-75%-126%-86%19%-75%0%3%64%-76%-39%124%124%15%-5%18%-30%116%-58%-70%83%1%-21%38%82%59%41%115%-123%99%-19%108%92%117%35%24%-35%75%70%115%-81%18%-49%117%-123%-25%-71%111%4%120%-91%-98%-6%32%-35%-103%71%57%-116%126%-23%45%-20%120%-16%53%-12%125%-14%101%48%60%24%-59%-114%-57%-52%-114%112%123%36%46%-31%-34%127%-1%18%14%-113%-75%-44%88%-30%-58%61%111%-25%22%-50%124%76%29%-107%6%102%104%104%-79%-69%-6%-5%49%88%4%127%-51%-59%-93%-70%93%-30%50%-109%39%51%105%24%0%-62%127%-27%-32%81%53%-67%-112%100%-6%-20%105%57%-70%99%7%-29%-126%-68%6%119%97%-62%112%-19%-66%-124%22%80%-102%-122%-18%-40%-29%95%35%-32%-57%88%20%-59%-21%-88%107%-98%-82%-47%-57%-65%35%13%2%-64%1%60%119%-114%-52%-42%-47%-44%62%63%-92%-49%-13%18%43%-11%120%39%35%65%53%84%119%-111%-23%-100%-112%-46%-3%-24%-7%58%1%-32%114%103%80%12%-40%-84%-57%-45%61%3%-50%69%71%118%-90%104%22%-28%119%71%-127%-98%-72%80%-33%109%117%79%-71%-113%96%62%14%-38%-87%-111%-113%-85%-88%19%-82%-119%6%-101%33%-3%-117%3%25%-72%-10%90%-79%-113%-39%-22%-105%-95%7%13%49%-38%-18%25%92%-115%88%-117%-25%52%109%-103%-7%120%43%54%-50%-30%12%27%117%6%64%-23%29%-4%-7%-99%24%-7%-8%80%75%80%-32%-120%73%70%-73%77%60%-44%9%-60%32%-43%11%59%-125%-103%37%100%-105%33%-49%-8%62%-51%93%-22%4%-30%21%69%62%46%-60%-30%-39%-99%-62%54%97%14%72%-82%117%71%-30%108%-86%91%92%54%26%-25%-34%-30%-23%36%115%-36%-119%58%-117%45%79%-9%-73%56%-75%1%121%-29%-54%-75%44%-104%4%-110%99%-104%-113%-57%-62%-65%113%37%6%38%-6%-23%-36%70%49%9%36%-69%-96%86%-23%12%123%-123%108%8%12%-86%-102%-34%31%32%-39%36%7%-128%104%-72%-69%-106%41%-13%-62%-114%-14%-15%56%-127%-46%-30%-26%0%48%6%-118%-37%-13%-51%-25%75%-116%-102%-34%47%-96%55%94%-6%-14%-79%115%55%-116%-42%-114%-9%-15%-60%85%-36%-115%15%-34%-5%-91%37%-109%26%-119%115%-88%-22%-35%87%-88%-119%-17%62%-126%43%-69%82%90%127%-105%-69%-25%94%-123%-27%-53%-55%-34%72%26%-67%-61%68%99%-121%-1%82%50%33%-27%-84%-46%-81%-28%-52%-33%-90%-6%72%-1%3%78%-120%-67%33%108%33%82%26%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ <icon xmi:type="uml:Image" xmi:id="_0I0rMEMLEeKGIL695HkFYQ" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%112%0%0%0%103%8%0%0%0%0%-3%88%-103%-76%0%0%7%56%73%68%65%84%104%-127%-75%-102%123%80%21%85%28%-57%-9%-18%-67%92%121%-91%40%-124%38%70%64%-26%11%-33%-118%-29%115%124%84%-90%83%106%-91%-93%2%-115%83%-90%102%-90%-7%-56%-55%-41%-104%58%-26%-116%-40%56%-102%-64%-116%-88%53%101%62%-54%102%-14%81%26%86%102%-58%4%78%102%-120%14%89%62%72%5%-15%9%72%112%-111%-57%-62%-23%42%23%-10%123%118%-49%-18%-98%-35%-69%-2%-2%-29%-100%-33%-2%62%-105%-35%-13%123%-100%-33%57%2%-31%23%-23%-20%-87%-101%-116%-31%-102%-69%38%108%16%-127%31%-105%-38%78%16%-100%83%47%-46%-93%-43%-97%116%17%-59%94%-23%53%-10%3%-85%-34%116%9%15%36%-106%34%86%39%63%28%20%-109%-1%-77%29%-72%-92%-111%39%8%-29%-85%96%52%-75%105%116%90%-75%-51%-64%-116%22%62%-53%66%-28%101%121%-76%122%96%-45%-88%-72%-76%-34%86%-32%-31%80%-95%89%-66%-105%-121%47%61%-39%60%-22%78%-77%19%120%-90%-83%-52%19%-14%-28%-15%-62%56%121%56%116%-97%125%-64%-62%-98%-64%-21%120%93%-98%-88%26%12%19%109%-114%-39%5%44%123%22%-52%10%91%112%-22%-101%64%-104%-119%62%103%15%80%74%114%-128%-43%23%-53%113%-50%-25%22%62%-23%117%-51%22%-32%42%39%-40%-20%83%76%79%-106%-67%-128%-60%81%-58%65%-57%24%-72%-93%5%88%-20%-112%-81%-100%-66%-103%-128%-60%-55%30%-65%-127%-103%-32%16%66%-21%-29%106%-123%11%79%-125%-126%56%-73%-42%79%96%126%52%-104%11%-38%-55%82%-55%121%28%84%2%-42%-7%7%-68%-34%11%95%-40%-70%58%-90%-46%-63%-57%64%39%-28%115%127%-128%-98%-25%-112%55%-29%-66%-122%-38%118%-4%-52%97%-121%-83%3%-91%-23%-24%16%99%52%51%66%-3%-121%34%-24%69%-99%-78%12%92%-29%2%59%61%-117%-75%21%107%-26%-32%-101%-24%-10%-113%69%-32%23%24%70%-94%114%-11%126%90%-59%68%36%14%101%21%6%-58%-64%19%-83%-64%70%-85%31%-12%120%-124%-108%12%69%-30%-72%50%11%64%72%61%-34%-46%-30%-45%6%125%32%-71%26%15%-22%-30%76%-83%-11%-91%13%-68%-35%7%127%-14%74%-74%67%-96%-28%70%-127%126%-64%7%-110%73%-96%-121%-118%-111%111%104%-2%96%-112%-93%97%-16%68%96%-70%73%-32%76%116%-120%81%-9%56%120%-124%-20%13%-126%103%66%-65%50%5%92%-113%14%-47%-11%10%23%-113%-44%111%-62%-68%18%-98%101%2%-72%-41%13%79%70%-98%-26%-29%121%-35%113%41%126%-121%-40%-13%-36%-64%-109%-24%16%-63%-103%-68%60%66%42%95%67%98%127%86%-88%96%1%11%48%67%56%-73%25%57%4%74%-39%88%36%14%47%-27%2%-106%80%14%-79%-62%-40%33%80%-118%-6%-31%-61%83%-85%84%10%106%-96%-12%18%46%-48%100%-11%35%-6%-110%31%11%79%59%22%-87%-36%81%13%-100%-117%-111%127%-104%118%-116%-46%-110%19%88%-61%6%108%52%4%110%70%-121%-120%-27%116%8%74%14%-32%-110%11%82%-26%99%37%112%63%58%68%-60%31%22%120%-92%126%43%102%-103%-106%-118%-88%-81%0%-2%-114%-31%41%-8%59%43%60%66%106%87%99%0%104%-105%71%77%-46%-64%43%88%-127%9%105%90%1%-40%72%60%-77%-48%76%-89%34%77%96%101%95%84%92%96%84%-15%105%75%-7%-85%104%104%48%-106%-57%8%-84%-101%-128%106%-109%121%-73%-104%44%-71%51%4%77%-31%30%22%-127%-117%-47%1%19%-52%59%4%-54%-91%46%96%-53%49%67%-2%56%0%-92%98%125%76%-127%95%60%-17%-14%123%2%-84%57%87%49%-128%-103%-104%-51%-38%-24%-106%122%92%114%-76%53%-40%115%103%-88%-128%-25%-38%-64%-68%-21%-96%-103%-120%-83%33%-69%-15%63%8%57%-92%0%-34%-120%-63%-81%-68%-103%-77%67%-96%43%13%31%81%-7%56%-121%2%86%12%66%-34%60%-21%14%-127%82%-77%16%-115%-58%92%4%96%-35%100%-100%-102%-32%-113%67%-96%84%38%-94%-39%-34%55%101%-32%10%116%-120%-34%37%54%-15%-68%-7%120%36%18%71%120%-102%-128%59%-112%-41%94%111%103%96%86%-118%-79%-1%-31%72%-108%26%-127%-57%48%67%-124%-8%-17%16%40%-25%-79%60%118%-66%-1%16%120%1%-13%-105%75%-93%-100%-76%44%89%-24%110%-31%69%94%96%113%71%124%-49%41%118%56%4%37%-5%-63%29%-59%84%47%-112%-6%-82%-13%-52%-107%76%60%-46%-112%14%-18%56%64%18%-14%112%-63%-116%54%-20%122%88%-112%44%-8%100%125%37%97%62%-16%-30%-17%60%2%-34%5%-88%114%29%-21%-119%-48%94%-2%51%-20%-46%35%-32%-35%-22%15%-1%81%-40%95%68%-64%125%-28%86%27%66%-74%66%42%38%-127%125%71%-94%-41%45%54%-94%79%88%-84%-102%-76%-91%-10%61%92%-110%-61%-68%-91%-65%112%59%0%70%66%-71%55%74%124%-46%-80%5%19%70%-41%-85%-28%-127%-29%83%91%-84%-88%-117%-122%70%-52%-56%1%76%-119%17%15%-1%27%111%-92%-103%-126%-60%78%-73%108%-28%-3%22%1%-106%-125%15%18%31%-16%-2%112%-22%61%87%-40%-58%43%120%6%-20%-70%55%-111%38%32%41%-19%-122%-60%41%-4%-89%44%-6%82%58%2%-84%58%23%18%25%72%10%-80%37%35%44%-78%39%-68%121%-110%-48%-24%-53%77%-91%105%99%2%-2%19%-73%20%-62%70%59%2%120%-35%114%52%57%-80%-71%-8%-10%-43%52%71%-80%1%-23%-38%-25%127%0%104%-56%64%-121%-120%-109%79%115%-102%-86%-74%109%-72%13%13%57%-18%55%48%19%-33%89%120%-74%60%-47%92%-105%-82%68%98%100%30%-53%-120%9%57%-35%14%-84%5%-19%-127%25%-71%-14%-98%-123%121%42%-90%72%109%-60%-124%20%-10%0%91%1%41%56%37%3%-21%-88%-114%-57%0%127%-10%50%-9%-80%115%-19%-104%69%109%51%97%51%83%-47%-101%90%-57%60%-3%60%-74%120%94%71%67%99%-24%62%8%110%-41%-118%-30%80%-15%109%-85%1%64%90%-125%11%52%-31%6%61%75%-19%-128%-13%-15%4%66%88%109%113%-57%77%117%-82%-97%82%30%-27%-48%123%-4%-97%67%64%-41%-75%-35%-110%59%-2%68%117%-82%127%84%78%43%-70%24%123%48%59%90%-22%98%-100%-61%70%93%-32%103%-86%121%101%-97%-122%-38%98%69%-28%-104%-26%81%-67%54%-41%90%-75%-126%-86%19%-75%0%3%64%-76%-39%124%124%15%-5%18%-30%116%-58%-70%83%1%-21%38%82%59%41%115%-123%99%-19%108%92%117%35%24%-35%75%70%115%-81%18%-49%117%-123%-25%-71%111%4%120%-91%-98%-6%32%-35%-103%71%57%-116%126%-23%45%-20%120%-16%53%-12%125%-14%101%48%60%24%-59%-114%-57%-52%-114%112%123%36%46%-31%-34%127%-1%18%14%-113%-75%-44%88%-30%-58%61%111%-25%22%-50%124%76%29%-107%6%102%104%104%-79%-69%-6%-5%49%88%4%127%-51%-59%-93%-70%93%-30%50%-109%39%51%105%24%0%-62%127%-27%-32%81%53%-67%-112%100%-6%-20%105%57%-70%99%7%-29%-126%-68%6%119%97%-62%112%-19%-66%-124%22%80%-102%-122%-18%-40%-29%95%35%-32%-57%88%20%-59%-21%-88%107%-98%-82%-47%-57%-65%35%13%2%-64%1%60%119%-114%-52%-42%-47%-44%62%63%-92%-49%-13%18%43%-11%120%39%35%65%53%84%119%-111%-23%-100%-112%-46%-3%-24%-7%58%1%-32%114%103%80%12%-40%-84%-57%-45%61%3%-50%69%71%118%-90%104%22%-28%119%71%-127%-98%-72%80%-33%109%117%79%-71%-113%96%62%14%-38%-87%-111%-113%-85%-88%19%-82%-119%6%-101%33%-3%-117%3%25%-72%-10%90%-79%-113%-39%-22%-105%-95%7%13%49%-38%-18%25%92%-115%88%-117%-25%52%109%-103%-7%120%43%54%-50%-30%12%27%117%6%64%-23%29%-4%-7%-99%24%-7%-8%80%75%80%-32%-120%73%70%-73%77%60%-44%9%-60%32%-43%11%59%-125%-103%37%100%-105%33%-49%-8%62%-51%93%-22%4%-30%21%69%62%46%-60%-30%-39%-99%-62%54%97%14%72%-82%117%71%-30%108%-86%91%92%54%26%-25%-34%-30%-23%36%115%-36%-119%58%-117%45%79%-9%-73%56%-75%1%121%-29%-54%-75%44%-104%4%-110%99%-104%-113%-57%-62%-65%113%37%6%38%-6%-23%-36%70%49%9%36%-69%-96%86%-23%12%123%-123%108%8%12%-86%-102%-34%31%32%-39%36%7%-128%104%-72%-69%-106%41%-13%-62%-114%-14%-15%56%-127%-46%-30%-26%0%48%6%-118%-37%-13%-51%-25%75%-116%-102%-34%47%-96%55%94%-6%-14%-79%115%55%-116%-42%-114%-9%-15%-60%85%-36%-115%15%-34%-5%-91%37%-109%26%-119%115%-88%-22%-35%87%-88%-119%-17%62%-126%43%-69%82%90%127%-105%-69%-25%94%-123%-27%-53%-55%-34%72%26%-67%-61%68%99%-121%-1%82%50%33%-27%-84%-46%-81%-28%-52%-33%-90%-6%72%-1%3%78%-120%-67%33%108%33%82%26%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
+ <icon xmi:type="uml:Image" xmi:id="_12mboEMLEeKGIL695HkFYQ" content="-119%80%78%71%13%10%26%10%0%0%0%13%73%72%68%82%0%0%0%112%0%0%0%103%8%0%0%0%0%-3%88%-103%-76%0%0%7%56%73%68%65%84%104%-127%-75%-102%123%80%21%85%28%-57%-9%-18%-67%92%121%-91%40%-124%38%70%64%-26%11%-33%-118%-29%115%124%84%-90%83%106%-91%-93%2%-115%83%-90%102%-90%-7%-56%-55%-41%-104%58%-26%-116%-40%56%-102%-64%-116%-88%53%101%62%-54%102%-14%81%26%86%102%-58%4%78%102%-120%14%89%62%72%5%-15%9%72%112%-111%-57%-62%-23%42%23%-10%123%118%-49%-18%-98%-35%-69%-2%-2%-29%-100%-33%-2%62%-105%-35%-13%123%-100%-33%57%2%-31%23%-23%-20%-87%-101%-116%-31%-102%-69%38%108%16%-127%31%-105%-38%78%16%-100%83%47%-46%-93%-43%-97%116%17%-59%94%-23%53%-10%3%-85%-34%116%9%15%36%-106%34%86%39%63%28%20%-109%-1%-77%29%-72%-92%-111%39%8%-29%-85%96%52%-75%105%116%90%-75%-51%-64%-116%22%62%-53%66%-28%101%121%-76%122%96%-45%-88%-72%-76%-34%86%-32%-31%80%-95%89%-66%-105%-121%47%61%-39%60%-22%78%-77%19%120%-90%-83%-52%19%-14%-28%-15%-62%56%121%56%116%-97%125%-64%-62%-98%-64%-21%120%93%-98%-88%26%12%19%109%-114%-39%5%44%123%22%-52%10%91%112%-22%-101%64%-104%-119%62%103%15%80%74%114%-128%-43%23%-53%113%-50%-25%22%62%-23%117%-51%22%-32%42%39%-40%-20%83%76%79%-106%-67%-128%-60%81%-58%65%-57%24%-72%-93%5%88%-20%-112%-81%-100%-66%-103%-128%-60%-55%30%-65%-127%-103%-32%16%66%-21%-29%106%-123%11%79%-125%-126%56%-73%-42%79%96%126%52%-104%11%-38%-55%82%-55%121%28%84%2%-42%-7%7%-68%-34%11%95%-40%-70%58%-90%-46%-63%-57%64%39%-28%115%127%-128%-98%-25%-112%55%-29%-66%-122%-38%118%-4%-52%97%-121%-83%3%-91%-23%-24%16%99%52%51%66%-3%-121%34%-24%69%-99%-78%12%92%-29%2%59%61%-117%-75%21%107%-26%-32%-101%-24%-10%-113%69%-32%23%24%70%-94%114%-11%126%90%-59%68%36%14%101%21%6%-58%-64%19%-83%-64%70%-85%31%-12%120%-124%-108%12%69%-30%-72%50%11%64%72%61%-34%-46%-30%-45%6%125%32%-71%26%15%-22%-30%76%-83%-11%-91%13%-68%-35%7%127%-14%74%-74%67%-96%-28%70%-127%126%-64%7%-110%73%-96%-121%-118%-111%111%104%-2%96%-112%-93%97%-16%68%96%-70%73%-32%76%116%-120%81%-9%56%120%-124%-20%13%-126%103%66%-65%50%5%92%-113%14%-47%-11%10%23%-113%-44%111%-62%-68%18%-98%101%2%-72%-41%13%79%70%-98%-26%-29%121%-35%113%41%126%-121%-40%-13%-36%-64%-109%-24%16%-63%-103%-68%60%66%42%95%67%98%127%86%-88%96%1%11%48%67%56%-73%25%57%4%74%-39%88%36%14%47%-27%2%-106%80%14%-79%-62%-40%33%80%-118%-6%-31%-61%83%-85%84%10%106%-96%-12%18%46%-48%100%-11%35%-6%-110%31%11%79%59%22%-87%-36%81%13%-100%-117%-111%127%-104%118%-116%-46%-110%19%88%-61%6%108%52%4%110%70%-121%-120%-27%116%8%74%14%-32%-110%11%82%-26%99%37%112%63%58%68%-60%31%22%120%-92%126%43%102%-103%-106%-118%-88%-81%0%-2%-114%-31%41%-8%59%43%60%66%106%87%99%0%104%-105%71%77%-46%-64%43%88%-127%9%105%90%1%-40%72%60%-77%-48%76%-89%34%77%96%101%95%84%92%96%84%-15%105%75%-7%-85%104%104%48%-106%-57%8%-84%-101%-128%106%-109%121%-73%-104%44%-71%51%4%77%-31%30%22%-127%-117%-47%1%19%-52%59%4%-54%-91%46%96%-53%49%67%-2%56%0%-92%98%125%76%-127%95%60%-17%-14%123%2%-84%57%87%49%-128%-103%-104%-51%-38%-24%-106%122%92%114%-76%53%-40%115%103%-88%-128%-25%-38%-64%-68%-21%-96%-103%-120%-83%33%-69%-15%63%8%57%-92%0%-34%-120%-63%-81%-68%-103%-77%67%-96%43%13%31%81%-7%56%-121%2%86%12%66%-34%60%-21%14%-127%82%-77%16%-115%-58%92%4%96%-35%100%-100%-102%-32%-113%67%-96%84%38%-94%-39%-34%55%101%-32%10%116%-120%-34%37%54%-15%-68%-7%120%36%18%71%120%-102%-128%59%-112%-41%94%111%103%96%86%-118%-79%-1%-31%72%-108%26%-127%-57%48%67%-124%-8%-17%16%40%-25%-79%60%118%-66%-1%16%120%1%-13%-105%75%-93%-100%-76%44%89%-24%110%-31%69%94%96%113%71%124%-49%41%118%56%4%37%-5%-63%29%-59%84%47%-112%-6%-82%-13%-52%-107%76%60%-46%-112%14%-18%56%64%18%-14%112%-63%-116%54%-20%122%88%-112%44%-8%100%125%37%97%62%-16%-30%-17%60%2%-34%5%-88%114%29%-21%-119%-48%94%-2%51%-20%-46%35%-32%-35%-22%15%-1%81%-40%95%68%-64%125%-28%86%27%66%-74%66%42%38%-127%125%71%-94%-41%45%54%-94%79%88%-84%-102%-76%-91%-10%61%92%-110%-61%-68%-91%-65%112%59%0%70%66%-71%55%74%124%-46%-80%5%19%70%-41%-85%-28%-127%-29%83%91%-84%-88%-117%-122%70%-52%-56%1%76%-119%17%15%-1%27%111%-92%-103%-126%-60%78%-73%108%-28%-3%22%1%-106%-125%15%18%31%-16%-2%112%-22%61%87%-40%-58%43%120%6%-20%-70%55%-111%38%32%41%-19%-122%-60%41%-4%-89%44%-6%82%58%2%-84%58%23%18%25%72%10%-80%37%35%44%-78%39%-68%121%-110%-48%-24%-53%77%-91%105%99%2%-2%19%-73%20%-62%70%59%2%120%-35%114%52%57%-80%-71%-8%-10%-43%52%71%-80%1%-23%-38%-25%127%0%104%-56%64%-121%-120%-109%79%115%-102%-86%-74%109%-72%13%13%57%-18%55%48%19%-33%89%120%-74%60%-47%92%-105%-82%68%98%100%30%-53%-120%9%57%-35%14%-84%5%-19%-127%25%-71%-14%-98%-123%121%42%-90%72%109%-60%-124%20%-10%0%91%1%41%56%37%3%-21%-88%-114%-57%0%127%-10%50%-9%-80%115%-19%-104%69%109%51%97%51%83%-47%-101%90%-57%60%-3%60%-74%120%94%71%67%99%-24%62%8%110%-41%-118%-30%80%-15%109%-85%1%64%90%-125%11%52%-31%6%61%75%-19%-128%-13%-15%4%66%88%109%113%-57%77%117%-82%-97%82%30%-27%-48%123%-4%-97%67%64%-41%-75%-35%-110%59%-2%68%117%-82%127%84%78%43%-70%24%123%48%59%90%-22%98%-100%-61%70%93%-32%103%-86%121%101%-97%-122%-38%98%69%-28%-104%-26%81%-67%54%-41%90%-75%-126%-86%19%-75%0%3%64%-76%-39%124%124%15%-5%18%-30%116%-58%-70%83%1%-21%38%82%59%41%115%-123%99%-19%108%92%117%35%24%-35%75%70%115%-81%18%-49%117%-123%-25%-71%111%4%120%-91%-98%-6%32%-35%-103%71%57%-116%126%-23%45%-20%120%-16%53%-12%125%-14%101%48%60%24%-59%-114%-57%-52%-114%112%123%36%46%-31%-34%127%-1%18%14%-113%-75%-44%88%-30%-58%61%111%-25%22%-50%124%76%29%-107%6%102%104%104%-79%-69%-6%-5%49%88%4%127%-51%-59%-93%-70%93%-30%50%-109%39%51%105%24%0%-62%127%-27%-32%81%53%-67%-112%100%-6%-20%105%57%-70%99%7%-29%-126%-68%6%119%97%-62%112%-19%-66%-124%22%80%-102%-122%-18%-40%-29%95%35%-32%-57%88%20%-59%-21%-88%107%-98%-82%-47%-57%-65%35%13%2%-64%1%60%119%-114%-52%-42%-47%-44%62%63%-92%-49%-13%18%43%-11%120%39%35%65%53%84%119%-111%-23%-100%-112%-46%-3%-24%-7%58%1%-32%114%103%80%12%-40%-84%-57%-45%61%3%-50%69%71%118%-90%104%22%-28%119%71%-127%-98%-72%80%-33%109%117%79%-71%-113%96%62%14%-38%-87%-111%-113%-85%-88%19%-82%-119%6%-101%33%-3%-117%3%25%-72%-10%90%-79%-113%-39%-22%-105%-95%7%13%49%-38%-18%25%92%-115%88%-117%-25%52%109%-103%-7%120%43%54%-50%-30%12%27%117%6%64%-23%29%-4%-7%-99%24%-7%-8%80%75%80%-32%-120%73%70%-73%77%60%-44%9%-60%32%-43%11%59%-125%-103%37%100%-105%33%-49%-8%62%-51%93%-22%4%-30%21%69%62%46%-60%-30%-39%-99%-62%54%97%14%72%-82%117%71%-30%108%-86%91%92%54%26%-25%-34%-30%-23%36%115%-36%-119%58%-117%45%79%-9%-73%56%-75%1%121%-29%-54%-75%44%-104%4%-110%99%-104%-113%-57%-62%-65%113%37%6%38%-6%-23%-36%70%49%9%36%-69%-96%86%-23%12%123%-123%108%8%12%-86%-102%-34%31%32%-39%36%7%-128%104%-72%-69%-106%41%-13%-62%-114%-14%-15%56%-127%-46%-30%-26%0%48%6%-118%-37%-13%-51%-25%75%-116%-102%-34%47%-96%55%94%-6%-14%-79%115%55%-116%-42%-114%-9%-15%-60%85%-36%-115%15%-34%-5%-91%37%-109%26%-119%115%-88%-22%-35%87%-88%-119%-17%62%-126%43%-69%82%90%127%-105%-69%-25%94%-123%-27%-53%-55%-34%72%26%-67%-61%68%99%-121%-1%82%50%33%-27%-84%-46%-81%-28%-52%-33%-90%-6%72%-1%3%78%-120%-67%33%108%33%82%26%0%0%0%0%73%69%78%68%-82%66%96%-126%" format="Papyrus"/>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_1FxlEH-QEeOtkrzuMiGEow" name="Please update derived elements"/>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_HmnpEJsrEd61Eo3nmu3JhQ" name="StdPorts">
- <ownedComment xmi:id="_Yq-O8Nt2Ed6nqsBVkgJEEA" annotatedElement="_-WNegNtxEd6nqsBVkgJEEA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_Yq-O8Nt2Ed6nqsBVkgJEEA" annotatedElement="_-WNegNtxEd6nqsBVkgJEEA">
<body>Is called during component activation &amp; deactivation. The two functions may not block i.e. return control to the caller after &quot;a very short&quot; period</body>
</ownedComment>
- <ownedComment xmi:id="_OcN78Nt2Ed6nqsBVkgJEEA" annotatedElement="_N6fa4JsrEd61Eo3nmu3JhQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_OcN78Nt2Ed6nqsBVkgJEEA" annotatedElement="_N6fa4JsrEd61Eo3nmu3JhQ">
<body>Is called during startup. Expected to block. Only one component instance per node may define it.</body>
</ownedComment>
<packagedElement xmi:type="uml:Class" xmi:id="_N6fa4JsrEd61Eo3nmu3JhQ" name="Cstart" isAbstract="true">
@@ -852,22 +852,22 @@ m_state = FOLLOWER;</body>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_xtlE8ARAEd--t-uhRn9OBA" name="ContainerServices">
- <ownedComment xmi:id="_hGEOAMT8Ed-zx4a_r4xAYw" annotatedElement="_SiY_AP-EEd6628OhKk_dpg">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hGEOAMT8Ed-zx4a_r4xAYw" annotatedElement="_SiY_AP-EEd6628OhKk_dpg">
<body>A thread service supporting the LifeCycle port. Once started, it calls the activate operation (via the required port rLC) of a connected component in a new thread of a specific priority (a configuration attribute). This C++ implementation is based on the POSIX pthread library. It will further assume that the execution is done with root privileges, since these are required to set the thread priority. The thread properties assume round-robin (SCHED_RR) scheduling.
</body>
</ownedComment>
- <ownedComment xmi:id="_EuvHYCXREeGX6PuSE-DJlQ" annotatedElement="_5J9coCXQEeGX6PuSE-DJlQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_EuvHYCXREeGX6PuSE-DJlQ" annotatedElement="_5J9coCXQEeGX6PuSE-DJlQ">
<body> Interceptor variant of thread (inherits all, only difference to Thread superclass: tagged as connector)</body>
</ownedComment>
<packagedElement xmi:type="uml:Class" xmi:id="_SiY_AP-EEd6628OhKk_dpg" name="Thread">
- <ownedComment xmi:id="_lCtoICnOEeGxrprK9wB9iA" annotatedElement="_rVfYoMGJEd-Mveea1W_olA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_lCtoICnOEeGxrprK9wB9iA" annotatedElement="_rVfYoMGJEd-Mveea1W_olA">
<body>Priority of the thread. The interpretation of the value is OS specific. In case of POSIX; priorities are only taken into accound for threads with a FIFO and round-robin scheduliung policy.</body>
</ownedComment>
- <generalization xmi:id="_6bsEkARAEd--t-uhRn9OBA" general="_-WNegNtxEd6nqsBVkgJEEA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_6bsEkARAEd--t-uhRn9OBA" general="_-WNegNtxEd6nqsBVkgJEEA"/>
<ownedAttribute xmi:type="uml:Port" xmi:id="_ZjdOAP-EEd6628OhKk_dpg" name="rLC" aggregation="composite">
<type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
</ownedAttribute>
- <ownedAttribute xmi:id="_rVfYoMGJEd-Mveea1W_olA" name="priority" visibility="public">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_rVfYoMGJEd-Mveea1W_olA" name="priority" visibility="public">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_e6XsEFjmEeKaM_PspnG53g" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_e6ckkFjmEeKaM_PspnG53g" value="1"/>
@@ -875,17 +875,17 @@ m_state = FOLLOWER;</body>
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <interfaceRealization xmi:id="_lrFSQDz9Ed-v9PxuTj6Elw" name="derived realization of ILifeCycle" client="_SiY_AP-EEd6628OhKk_dpg">
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_lrFSQDz9Ed-v9PxuTj6Elw" name="derived realization of ILifeCycle" client="_SiY_AP-EEd6628OhKk_dpg">
<supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
- <contract href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
</interfaceRealization>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_MWW4MAQyEd--t-uhRn9OBA" name="staticAct" specification="_yv198P-EEd6628OhKk_dpg">
- <ownedParameter xmi:id="_TJjA4CxyEeOMQpc6Y-MAJw" name="arg">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_TJjA4CxyEeOMQpc6Y-MAJw" name="arg">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TKI2wCxyEeOMQpc6Y-MAJw" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TKVrECxyEeOMQpc6Y-MAJw" value="1"/>
</ownedParameter>
- <ownedParameter xmi:id="_TKyXACxyEeOMQpc6Y-MAJw" name="ret" direction="return">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_TKyXACxyEeOMQpc6Y-MAJw" name="ret" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TTLeACxyEeOMQpc6Y-MAJw" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TTZgcCxyEeOMQpc6Y-MAJw" value="1"/>
@@ -908,23 +908,23 @@ pthread_setschedparam (pt, SCHED_RR, &amp;schedParam);
// TODO: check return code (in particular, SCHED_RR only works for root)
</body>
</ownedBehavior>
- <ownedOperation xmi:id="_yv198P-EEd6628OhKk_dpg" name="staticAct" isStatic="true" method="_MWW4MAQyEd--t-uhRn9OBA">
- <ownedParameter xmi:id="_1TXqoP-EEd6628OhKk_dpg" name="arg">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_yv198P-EEd6628OhKk_dpg" name="staticAct" isStatic="true" method="_MWW4MAQyEd--t-uhRn9OBA">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_1TXqoP-EEd6628OhKk_dpg" name="arg">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3MCccP-EEd6628OhKk_dpg" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3MDDgP-EEd6628OhKk_dpg" value="1"/>
</ownedParameter>
- <ownedParameter xmi:id="_BywjgP-FEd6628OhKk_dpg" name="ret" direction="return">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_BywjgP-FEd6628OhKk_dpg" name="ret" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_8I6RgBydEduyofBvg4RL2w"/>
</ownedParameter>
</ownedOperation>
- <ownedOperation xmi:id="_JmxyMD16Ed-Bk-AHd6yyoA" name="activate" method="_oP6UcED4Ed-_DOja_sRgWA"/>
- <ownedOperation xmi:id="_JqB6gD16Ed-Bk-AHd6yyoA" name="deactivate"/>
- <ownedOperation xmi:id="_TBScwCxyEeOMQpc6Y-MAJw" name="configuration_complete"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JmxyMD16Ed-Bk-AHd6yyoA" name="activate" method="_oP6UcED4Ed-_DOja_sRgWA"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_JqB6gD16Ed-Bk-AHd6yyoA" name="deactivate"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_TBScwCxyEeOMQpc6Y-MAJw" name="configuration_complete"/>
</packagedElement>
<packagedElement xmi:type="uml:Dependency" xmi:id="_wCkVcNYGEd-CgJIavLpOxQ" name="ImplRequirement" client="_SiY_AP-EEd6628OhKk_dpg" supplier="_ea234NYGEd-CgJIavLpOxQ"/>
<packagedElement xmi:type="uml:Class" xmi:id="_WkkjoPNUEeCovO8AYZymZQ" name="CallEvent_">
- <ownedAttribute xmi:id="_YKtbAPNUEeCovO8AYZymZQ" name="operationID" visibility="public">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_YKtbAPNUEeCovO8AYZymZQ" name="operationID" visibility="public">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aDHHEPNUEeCovO8AYZymZQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aDIVMPNUEeCovO8AYZymZQ" value="1"/>
@@ -932,19 +932,19 @@ pthread_setschedparam (pt, SCHED_RR, &amp;schedParam);
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:id="_gQGNwPNUEeCovO8AYZymZQ" name="kind" visibility="public" type="_jQjHAPNUEeCovO8AYZymZQ">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gQGNwPNUEeCovO8AYZymZQ" name="kind" visibility="public" type="_jQjHAPNUEeCovO8AYZymZQ">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_imLUUPNUEeCovO8AYZymZQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_imL7YPNUEeCovO8AYZymZQ" value="1"/>
<defaultValue xmi:type="uml:LiteralString" xmi:id="_imuG4PNUEeCovO8AYZymZQ">
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:id="_-_HCMBI0EeGU49ezpRnvLg" name="portID">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_-_HCMBI0EeGU49ezpRnvLg" name="portID">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-_LToBI0EeGU49ezpRnvLg" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_-_L6sBI0EeGU49ezpRnvLg" value="1"/>
</ownedAttribute>
- <ownedAttribute xmi:id="_qzHgkPNUEeCovO8AYZymZQ" name="params" visibility="public" type="_OU5asFaNEeKxltxu9uR4dg">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qzHgkPNUEeCovO8AYZymZQ" name="params" visibility="public" type="_OU5asFaNEeKxltxu9uR4dg">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sMOBgPNUEeCovO8AYZymZQ"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_sMPPoPNUEeCovO8AYZymZQ" value="1"/>
<defaultValue xmi:type="uml:LiteralString" xmi:id="_sMRE0PNUEeCovO8AYZymZQ">
@@ -960,14 +960,14 @@ pthread_setschedparam (pt, SCHED_RR, &amp;schedParam);
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:id="_k-OpoPN8EeCovO8AYZymZQ" name="events" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_k-OpoPN8EeCovO8AYZymZQ" name="events" visibility="public" type="_WkkjoPNUEeCovO8AYZymZQ">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mr7hkPN8EeCovO8AYZymZQ" value="20"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mr-k4PN8EeCovO8AYZymZQ" value="20"/>
<defaultValue xmi:type="uml:LiteralString" xmi:id="_msGgsPN8EeCovO8AYZymZQ">
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:id="__a1A0PQXEeCovO8AYZymZQ" name="m_size" visibility="public">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__a1A0PQXEeCovO8AYZymZQ" name="m_size" visibility="public">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A1N7MPQYEeCovO8AYZymZQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_A1OiQPQYEeCovO8AYZymZQ" value="1"/>
@@ -975,7 +975,7 @@ pthread_setschedparam (pt, SCHED_RR, &amp;schedParam);
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:id="_KnS5QPQYEeCovO8AYZymZQ" name="m_cond" visibility="public">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_KnS5QPQYEeCovO8AYZymZQ" name="m_cond" visibility="public">
<type xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_QWlVgPRTEeCUGrV0Hl4JwQ"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KyZ9EPQYEeCovO8AYZymZQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_KyakIPQYEeCovO8AYZymZQ" value="1"/>
@@ -983,13 +983,13 @@ pthread_setschedparam (pt, SCHED_RR, &amp;schedParam);
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:id="_Ig_MUCSlEeG6GJ4vU06VYQ" name="ID_TIMEOUT" isStatic="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ig_MUCSlEeG6GJ4vU06VYQ" name="ID_TIMEOUT" isStatic="true">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IjAlkCSlEeG6GJ4vU06VYQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_IjCawCSlEeG6GJ4vU06VYQ" value="1"/>
<defaultValue xmi:type="uml:LiteralInteger" xmi:id="_SjUM4CSlEeG6GJ4vU06VYQ" name="" value="-1"/>
</ownedAttribute>
- <interfaceRealization xmi:id="_mI0xEPQXEeCovO8AYZymZQ" name="derived realization of IPoolControl" client="_JRmo0PNAEeCovO8AYZymZQ" supplier="_omxU4PNAEeCovO8AYZymZQ" contract="_omxU4PNAEeCovO8AYZymZQ"/>
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_mI0xEPQXEeCovO8AYZymZQ" name="derived realization of IPoolControl" client="_JRmo0PNAEeCovO8AYZymZQ" supplier="_omxU4PNAEeCovO8AYZymZQ" contract="_omxU4PNAEeCovO8AYZymZQ"/>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_2HjeoPQXEeCovO8AYZymZQ" name="writeEvent" specification="_f1HmEPQREeCovO8AYZymZQ0">
<language>C/C++</language>
<body>events[0] = event;
@@ -1018,56 +1018,56 @@ return events[0];</body>
<language>C/C++</language>
<body>m_cond.lock();</body>
</ownedBehavior>
- <ownedOperation xmi:id="_tK0poPQWEeCovO8AYZymZQ0" name="readEvent" method="_9xRCAPQXEeCovO8AYZymZQ">
- <ownedParameter xmi:id="_HUTnoCVyEeGaL60JjVj19Q" name="timeout">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tK0poPQWEeCovO8AYZymZQ0" name="readEvent" method="_9xRCAPQXEeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_HUTnoCVyEeGaL60JjVj19Q" name="timeout">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HUWq8CVyEeGaL60JjVj19Q" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HUXSACVyEeGaL60JjVj19Q" value="1"/>
</ownedParameter>
- <ownedParameter xmi:id="_HUZHMCVyEeGaL60JjVj19Q" type="_WkkjoPNUEeCovO8AYZymZQ" direction="return">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_HUZHMCVyEeGaL60JjVj19Q" type="_WkkjoPNUEeCovO8AYZymZQ" direction="return">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HUbjcCVyEeGaL60JjVj19Q" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HUcxkCVyEeGaL60JjVj19Q" value="1"/>
</ownedParameter>
</ownedOperation>
- <ownedOperation xmi:id="_FBMo4PQXEeCovO8AYZymZQ0" name="size" method="_5Sw2YPQXEeCovO8AYZymZQ">
- <ownedParameter xmi:id="_mKtAYPQXEeCovO8AYZymZQ" direction="return">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FBMo4PQXEeCovO8AYZymZQ0" name="size" method="_5Sw2YPQXEeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_mKtAYPQXEeCovO8AYZymZQ" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mKvcoPQXEeCovO8AYZymZQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mKwqwPQXEeCovO8AYZymZQ" value="1"/>
</ownedParameter>
</ownedOperation>
- <ownedOperation xmi:id="_f1HmEPQREeCovO8AYZymZQ0" name="writeEvent" method="_2HjeoPQXEeCovO8AYZymZQ">
- <ownedParameter xmi:id="_HRdvACVyEeGaL60JjVj19Q" name="event" type="_WkkjoPNUEeCovO8AYZymZQ">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_f1HmEPQREeCovO8AYZymZQ0" name="writeEvent" method="_2HjeoPQXEeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_HRdvACVyEeGaL60JjVj19Q" name="event" type="_WkkjoPNUEeCovO8AYZymZQ">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HUNhACVyEeGaL60JjVj19Q" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_HUOvICVyEeGaL60JjVj19Q" value="1"/>
</ownedParameter>
</ownedOperation>
- <ownedOperation xmi:id="_lrF08PRTEeCUGrV0Hl4JwQ" name="EventPool" method="_JoG14PRUEeCKVJwdD4MMsg"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_lrF08PRTEeCUGrV0Hl4JwQ" name="EventPool" method="_JoG14PRUEeCKVJwdD4MMsg"/>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_elkpwPQREeCovO8AYZymZQ" name="IWriteEvent">
- <ownedOperation xmi:id="_f1HmEPQREeCovO8AYZymZQ" name="writeEvent" visibility="public" isAbstract="true">
- <ownedComment xmi:id="_wAdzUPQREeCovO8AYZymZQ">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_f1HmEPQREeCovO8AYZymZQ" name="writeEvent" visibility="public" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_wAdzUPQREeCovO8AYZymZQ">
<body>&lt;&lt;TextualRepresentation>>public abstract writeEvent (in event:BasicCalls::ContainerServices::Event) ;</body>
</ownedComment>
- <ownedParameter xmi:id="__4qMgCUQEeGXBt65HZzY7g" name="event" type="_WkkjoPNUEeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="__4qMgCUQEeGXBt65HZzY7g" name="event" type="_WkkjoPNUEeCovO8AYZymZQ">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="__4raoCUQEeGXBt65HZzY7g" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__4sowCUQEeGXBt65HZzY7g" value="1"/>
</ownedParameter>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Enumeration" xmi:id="_jQjHAPNUEeCovO8AYZymZQ" name="EventKind">
- <ownedLiteral xmi:id="_jv4uYPNUEeCovO8AYZymZQ" name="CallEvent"/>
- <ownedLiteral xmi:id="_kuDm0PNUEeCovO8AYZymZQ" name="SignalEvent"/>
- <ownedLiteral xmi:id="_ljD8MPNUEeCovO8AYZymZQ" name="TimeEvent"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jv4uYPNUEeCovO8AYZymZQ" name="CallEvent"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_kuDm0PNUEeCovO8AYZymZQ" name="SignalEvent"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ljD8MPNUEeCovO8AYZymZQ" name="TimeEvent"/>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_omxU4PNAEeCovO8AYZymZQ" name="IPoolControl">
- <generalization xmi:id="_feaHgPQXEeCovO8AYZymZQ" general="_elkpwPQREeCovO8AYZymZQ"/>
- <generalization xmi:id="_GwxT0CUREeGXBt65HZzY7g" general="_DY2VwCUREeGXBt65HZzY7g"/>
- <ownedOperation xmi:id="_FBMo4PQXEeCovO8AYZymZQ" name="size" visibility="public" isAbstract="true">
- <ownedComment xmi:id="_NaRMoPQXEeCovO8AYZymZQ">
+ <generalization xmi:type="uml:Generalization" xmi:id="_feaHgPQXEeCovO8AYZymZQ" general="_elkpwPQREeCovO8AYZymZQ"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_GwxT0CUREeGXBt65HZzY7g" general="_DY2VwCUREeGXBt65HZzY7g"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_FBMo4PQXEeCovO8AYZymZQ" name="size" visibility="public" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_NaRMoPQXEeCovO8AYZymZQ">
<body>&lt;&lt;TextualRepresentation>>public abstract size () : BasicCalls::Long ;</body>
</ownedComment>
- <ownedParameter xmi:id="_RlkvcPQXEeCovO8AYZymZQ" direction="return">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_RlkvcPQXEeCovO8AYZymZQ" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Rll9kPQXEeCovO8AYZymZQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_RlmkoPQXEeCovO8AYZymZQ" value="1"/>
@@ -1075,29 +1075,29 @@ return events[0];</body>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="_DY2VwCUREeGXBt65HZzY7g" name="IReadEvent">
- <ownedOperation xmi:id="_tK0poPQWEeCovO8AYZymZQ" name="readEvent" visibility="public" isAbstract="true">
- <ownedComment xmi:id="_xPdjwPQWEeCovO8AYZymZQ">
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_tK0poPQWEeCovO8AYZymZQ" name="readEvent" visibility="public" isAbstract="true">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_xPdjwPQWEeCovO8AYZymZQ">
<body>&lt;&lt;TextualRepresentation>>public abstract readEvent(in timeout : BasicCalls::Long) : BasicCalls::ContainerServices::Event ;</body>
</ownedComment>
- <ownedParameter xmi:id="_PnwykPRREeCUGrV0Hl4JwQ" name="timeout">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_PnwykPRREeCUGrV0Hl4JwQ" name="timeout">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PofyYPRREeCUGrV0Hl4JwQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Pow4IPRREeCUGrV0Hl4JwQ" value="1"/>
</ownedParameter>
- <ownedParameter xmi:id="_Po7QMPRREeCUGrV0Hl4JwQ" type="_WkkjoPNUEeCovO8AYZymZQ" direction="return">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_Po7QMPRREeCUGrV0Hl4JwQ" type="_WkkjoPNUEeCovO8AYZymZQ" direction="return">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PpWG8PRREeCUGrV0Hl4JwQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Ppl-kPRREeCUGrV0Hl4JwQ" value="1"/>
</ownedParameter>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_5J9coCXQEeGX6PuSE-DJlQ" name="ThreadInterceptor">
- <generalization xmi:id="_9thucCXQEeGX6PuSE-DJlQ" general="_SiY_AP-EEd6628OhKk_dpg"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_9thucCXQEeGX6PuSE-DJlQ" general="_SiY_AP-EEd6628OhKk_dpg"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_9V8OQCjYEeGFbebITJYb9g" name="PeriodicTimer">
- <ownedComment xmi:id="_zLeSkCnOEeGxrprK9wB9iA" annotatedElement="_tmNeoCjbEeGFbebITJYb9g">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_zLeSkCnOEeGxrprK9wB9iA" annotatedElement="_tmNeoCjbEeGFbebITJYb9g">
<body>The period length of the perdioci timer in ticks. Currently, a tick corresponds to 1 ms (simulation time in the underlying OS abstraction layer). It is planned to support VSL expressions, i.e. a value/unit pair.</body>
</ownedComment>
- <generalization xmi:id="_Y6lPACjZEeGFbebITJYb9g" general="_-WNegNtxEd6nqsBVkgJEEA"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_Y6lPACjZEeGFbebITJYb9g" general="_-WNegNtxEd6nqsBVkgJEEA"/>
<ownedAttribute xmi:type="uml:Port" xmi:id="_ATRiECjZEeGFbebITJYb9g" name="tick" visibility="public" aggregation="composite">
<type xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_Xb-y0AweEd6it_RkGhz_AA"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E3y2ICjZEeGFbebITJYb9g" value="1"/>
@@ -1106,7 +1106,7 @@ return events[0];</body>
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:id="_tmNeoCjbEeGFbebITJYb9g" name="periodLength" visibility="public">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_tmNeoCjbEeGFbebITJYb9g" name="periodLength" visibility="public">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_tmmgMCjbEeGFbebITJYb9g" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tmnHQCjbEeGFbebITJYb9g" value="1"/>
@@ -1114,9 +1114,9 @@ return events[0];</body>
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <interfaceRealization xmi:id="_F9_-UCjbEeGFbebITJYb9g" name="derived realization of ILifeCycle" client="_9V8OQCjYEeGFbebITJYb9g">
+ <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_F9_-UCjbEeGFbebITJYb9g" name="derived realization of ILifeCycle" client="_9V8OQCjYEeGFbebITJYb9g">
<supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
- <contract href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
+ <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_T3li0Dz6Ed-v9PxuTj6Elw"/>
</interfaceRealization>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_RMkvkCjbEeGFbebITJYb9g" name="activate" specification="_F-cDMCjbEeGFbebITJYb9g">
<language>C/C++</language>
@@ -1129,12 +1129,12 @@ for (;;) {
timer.wakeUp(time);
}</body>
</ownedBehavior>
- <ownedOperation xmi:id="_F-cDMCjbEeGFbebITJYb9g" name="activate" method="_RMkvkCjbEeGFbebITJYb9g"/>
- <ownedOperation xmi:id="_F-iJ0CjbEeGFbebITJYb9g" name="deactivate"/>
- <ownedOperation xmi:id="_rljQcFy8EeOwKfaVRwV11Q" name="configuration_complete"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_F-cDMCjbEeGFbebITJYb9g" name="activate" method="_RMkvkCjbEeGFbebITJYb9g"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_F-iJ0CjbEeGFbebITJYb9g" name="deactivate"/>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_rljQcFy8EeOwKfaVRwV11Q" name="configuration_complete"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_1sCBICjZEeGFbebITJYb9g" name="PeriodicTimerRule">
- <ownedAttribute xmi:id="_6yVMkCjZEeGFbebITJYb9g" name="timer" visibility="public" type="_9V8OQCjYEeGFbebITJYb9g">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_6yVMkCjZEeGFbebITJYb9g" name="timer" visibility="public" type="_9V8OQCjYEeGFbebITJYb9g">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_54aFgCjaEeGFbebITJYb9g" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_54bToCjaEeGFbebITJYb9g" value="1"/>
<defaultValue xmi:type="uml:LiteralString" xmi:id="_54eW8CjaEeGFbebITJYb9g">
@@ -1143,14 +1143,14 @@ for (;;) {
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_-X6zMCjZEeGFbebITJYb9g" name="PeriodicTimerWithThread">
- <ownedAttribute xmi:id="_ARs_UCjaEeGFbebITJYb9g" name="timer" visibility="public" type="_9V8OQCjYEeGFbebITJYb9g" aggregation="composite">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ARs_UCjaEeGFbebITJYb9g" name="timer" visibility="public" type="_9V8OQCjYEeGFbebITJYb9g" aggregation="composite">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k_FtQCjaEeGFbebITJYb9g" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_k_G7YCjaEeGFbebITJYb9g" value="1"/>
<defaultValue xmi:type="uml:LiteralString" xmi:id="_k_J-sCjaEeGFbebITJYb9g">
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:id="_RMqEkCjaEeGFbebITJYb9g" name="thread" visibility="public" type="_SiY_AP-EEd6628OhKk_dpg" aggregation="composite">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RMqEkCjaEeGFbebITJYb9g" name="thread" visibility="public" type="_SiY_AP-EEd6628OhKk_dpg" aggregation="composite">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j8bWYCjaEeGFbebITJYb9g" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_j8ckgCjaEeGFbebITJYb9g" value="1"/>
<defaultValue xmi:type="uml:LiteralString" xmi:id="_j8eZsCjaEeGFbebITJYb9g">
@@ -1165,22 +1165,22 @@ for (;;) {
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <ownedConnector xmi:id="_iDCL0CjaEeGFbebITJYb9g" name="Connector1">
- <end xmi:id="_iDCy4CjaEeGFbebITJYb9g" partWithPort="_RMqEkCjaEeGFbebITJYb9g" role="_ZjdOAP-EEd6628OhKk_dpg">
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_iDCL0CjaEeGFbebITJYb9g" name="Connector1">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_iDCy4CjaEeGFbebITJYb9g" partWithPort="_RMqEkCjaEeGFbebITJYb9g" role="_ZjdOAP-EEd6628OhKk_dpg">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iDCy4ijaEeGFbebITJYb9g" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iDCy4SjaEeGFbebITJYb9g" value="1"/>
</end>
- <end xmi:id="_iDCy4yjaEeGFbebITJYb9g" partWithPort="_ARs_UCjaEeGFbebITJYb9g" role="__SLXgNtxEd6nqsBVkgJEEA">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_iDCy4yjaEeGFbebITJYb9g" partWithPort="_ARs_UCjaEeGFbebITJYb9g" role="__SLXgNtxEd6nqsBVkgJEEA">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_iDCy5SjaEeGFbebITJYb9g" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_iDCy5CjaEeGFbebITJYb9g" value="1"/>
</end>
</ownedConnector>
- <ownedConnector xmi:id="_84IJsCkAEeGDDbdzqSb4UA" name="Connector2">
- <end xmi:id="_84JX0CkAEeGDDbdzqSb4UA" partWithPort="_ARs_UCjaEeGFbebITJYb9g" role="_ATRiECjZEeGFbebITJYb9g">
+ <ownedConnector xmi:type="uml:Connector" xmi:id="_84IJsCkAEeGDDbdzqSb4UA" name="Connector2">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_84JX0CkAEeGDDbdzqSb4UA" partWithPort="_ARs_UCjaEeGFbebITJYb9g" role="_ATRiECjZEeGFbebITJYb9g">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_84JX0ikAEeGDDbdzqSb4UA" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_84JX0SkAEeGDDbdzqSb4UA" value="1"/>
</end>
- <end xmi:id="_84L0ECkAEeGDDbdzqSb4UA" role="_3NSGwCkAEeGDDbdzqSb4UA">
+ <end xmi:type="uml:ConnectorEnd" xmi:id="_84L0ECkAEeGDDbdzqSb4UA" role="_3NSGwCkAEeGDDbdzqSb4UA">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_84L0EikAEeGDDbdzqSb4UA" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_84L0ESkAEeGDDbdzqSb4UA" value="1"/>
</end>
@@ -1190,7 +1190,7 @@ for (;;) {
<supplier xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_ETakYDj8Edy0Rd6V_tf1-Q"/>
</packagedElement>
<packagedElement xmi:type="uml:DataType" xmi:id="_OU5asFaNEeKxltxu9uR4dg" name="ParamValues">
- <ownedAttribute xmi:id="_RW82cFaNEeKxltxu9uR4dg" name="values" visibility="public">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RW82cFaNEeKxltxu9uR4dg" name="values" visibility="public">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_IYEXcB-VEd6nGq8wpI2tjg"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TAmU0FaNEeKxltxu9uR4dg" value="200"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TAqmQFaNEeKxltxu9uR4dg" value="200"/>
@@ -1200,7 +1200,7 @@ for (;;) {
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:DataType" xmi:id="_Y8dPQFaNEeKxltxu9uR4dg" name="QoS">
- <ownedAttribute xmi:id="_fYeQcFaNEeKxltxu9uR4dg" name="deadline" visibility="public">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_fYeQcFaNEeKxltxu9uR4dg" name="deadline" visibility="public">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gFUvYFaNEeKxltxu9uR4dg" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gFYZwFaNEeKxltxu9uR4dg" value="1"/>
@@ -1208,7 +1208,7 @@ for (;;) {
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:id="_oUVYMFaNEeKxltxu9uR4dg" name="period" visibility="public">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_oUVYMFaNEeKxltxu9uR4dg" name="period" visibility="public">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rUQF8FaNEeKxltxu9uR4dg" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rUSiMFaNEeKxltxu9uR4dg" value="1"/>
@@ -1216,7 +1216,7 @@ for (;;) {
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:id="_xXGZMFaNEeKxltxu9uR4dg" name="readyTime" visibility="public">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xXGZMFaNEeKxltxu9uR4dg" name="readyTime" visibility="public">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yjbCYFaNEeKxltxu9uR4dg" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yjcQgFaNEeKxltxu9uR4dg" value="1"/>
@@ -1234,14 +1234,14 @@ for (;;) {
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_y4qB4ARJEd--t-uhRn9OBA" name="containerRules">
- <ownedComment xmi:id="_q-kFUMTJEd-cLazKlAeYsQ" annotatedElement="_14WtMARJEd--t-uhRn9OBA">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_q-kFUMTJEd-cLazKlAeYsQ" annotatedElement="_14WtMARJEd--t-uhRn9OBA">
<body>This rule adds an interceptor for the lifecycle (lc) port. It will use the Thread implementation that executes the activate method in a new thread of a given priority (property of the interceptor implementation)</body>
</ownedComment>
- <ownedComment xmi:id="_H0IrsDbgEeGdqp2YT1LwWw" annotatedElement="_1sCBICjZEeGFbebITJYb9g">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_H0IrsDbgEeGdqp2YT1LwWw" annotatedElement="_1sCBICjZEeGFbebITJYb9g">
<body>Adds a periodic timer to the container</body>
</ownedComment>
<packagedElement xmi:type="uml:Class" xmi:id="_14WtMARJEd--t-uhRn9OBA" name="runStartThread">
- <ownedAttribute xmi:id="_mvN04PTWEeCn1-FCrfecFg" name="start" visibility="public" type="_5J9coCXQEeGX6PuSE-DJlQ">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_mvN04PTWEeCn1-FCrfecFg" name="start" visibility="public" type="_5J9coCXQEeGX6PuSE-DJlQ">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nPVfYPTWEeCn1-FCrfecFg" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nPXUkPTWEeCn1-FCrfecFg" value="1"/>
</ownedAttribute>
@@ -1264,17 +1264,17 @@ for (;;) {
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_uFRRUH7dEd-FNNgSS03RxQ" name="configOptions">
<packagedElement xmi:type="uml:Class" xmi:id="_29YhgH7dEd-FNNgSS03RxQ" name="Distribution">
- <ownedComment xmi:id="_INNDgH7eEd-FNNgSS03RxQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_INNDgH7eEd-FNNgSS03RxQ">
<body>Use for distributed applications</body>
</ownedComment>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_3myD0H7dEd-FNNgSS03RxQ" name="Debug">
- <ownedComment xmi:id="_9u2OQH7dEd-FNNgSS03RxQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_9u2OQH7dEd-FNNgSS03RxQ">
<body>Use for debugging in general</body>
</ownedComment>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_7JeHcH7dEd-FNNgSS03RxQ" name="Trace">
- <ownedComment xmi:id="_MzHesH7eEd-FNNgSS03RxQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_MzHesH7eEd-FNNgSS03RxQ">
<body>Use for tracing.</body>
</ownedComment>
</packagedElement>
@@ -1283,35 +1283,35 @@ for (;;) {
<packagedElement xmi:type="uml:Class" xmi:id="_ea234NYGEd-CgJIavLpOxQ" name="pthread"/>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_m7SIwOUYEd-P08Bciq_LqQ" name="perClass">
- <ownedTemplateSignature xmi:id="_rNm5kOUYEd-P08Bciq_LqQ" parameter="_wfwIoOUYEd-P08Bciq_LqQ">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_rNm5kOUYEd-P08Bciq_LqQ" parameter="_wfwIoOUYEd-P08Bciq_LqQ">
<ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_wfwIoOUYEd-P08Bciq_LqQ" parameteredElement="_6uRBMOuqEeCTfOY57pgE3w">
<ownedParameteredElement xmi:type="uml:Class" xmi:id="_6uRBMOuqEeCTfOY57pgE3w" name="T" templateParameter="_wfwIoOUYEd-P08Bciq_LqQ"/>
</ownedParameter>
</ownedTemplateSignature>
<packagedElement xmi:type="uml:Enumeration" xmi:id="_QQPDUCQeEeGj_4swHBbKwg" name="PortIDs">
- <ownedLiteral xmi:id="_QQPDUSQeEeGj_4swHBbKwg" name="PORTID_[name/]"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_QQPDUSQeEeGj_4swHBbKwg" name="PORTID_[name/]"/>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_RPCMoOxIEd-2rr_yAeKkjQ" name="methodCall_comp">
- <ownedComment xmi:id="_q1w5MK8qEeCXIcykFPsB8Q" annotatedElement="_RPCMoOxIEd-2rr_yAeKkjQ">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_q1w5MK8qEeCXIcykFPsB8Q" annotatedElement="_RPCMoOxIEd-2rr_yAeKkjQ">
<body>Elements in this package depend not only on the Interface I (which is a non-owned template parameter taken from the methodCall signature), but also on a class parameter T, which is bound to the component within a container binding.
Be aware that the number of instantiated template packages will be considerably larger compared to a dependency of the interface only</body>
</ownedComment>
- <ownedTemplateSignature xmi:id="_ewC6kOxIEd-2rr_yAeKkjQ" parameter="_WzWVUPfBEd2TbIfwytOyPA _QBCTAOxJEd-2rr_yAeKkjQ">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_ewC6kOxIEd-2rr_yAeKkjQ" parameter="_WzWVUPfBEd2TbIfwytOyPA _QBCTAOxJEd-2rr_yAeKkjQ">
<ownedParameter xmi:type="uml:ClassifierTemplateParameter" xmi:id="_QBCTAOxJEd-2rr_yAeKkjQ" parameteredElement="_zILRsPPlEd-BP4i7K5Y1eA">
<ownedParameteredElement xmi:type="uml:Class" xmi:id="_zILRsPPlEd-BP4i7K5Y1eA" name="T" templateParameter="_QBCTAOxJEd-2rr_yAeKkjQ"/>
</ownedParameter>
</ownedTemplateSignature>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="__lTvkPN0EeCovO8AYZymZQ" name="methodCall_size">
- <ownedTemplateSignature xmi:id="_EfH-MPN1EeCovO8AYZymZQ" parameter="_WzWVUPfBEd2TbIfwytOyPA _TbLb4PN3EeCovO8AYZymZQ">
- <ownedParameter xmi:id="_TbLb4PN3EeCovO8AYZymZQ" parameteredElement="_VGE3cPN3EeCovO8AYZymZQ">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_EfH-MPN1EeCovO8AYZymZQ" parameter="_WzWVUPfBEd2TbIfwytOyPA _TbLb4PN3EeCovO8AYZymZQ">
+ <ownedParameter xmi:type="uml:TemplateParameter" xmi:id="_TbLb4PN3EeCovO8AYZymZQ" parameteredElement="_VGE3cPN3EeCovO8AYZymZQ">
<ownedParameteredElement xmi:type="uml:LiteralInteger" xmi:id="_VGE3cPN3EeCovO8AYZymZQ" name="size" templateParameter="_TbLb4PN3EeCovO8AYZymZQ"/>
</ownedParameter>
</ownedTemplateSignature>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_gEZXADY7EeKvFqG4YPX3sg" name="methodCall_port">
- <ownedTemplateSignature xmi:id="_kCZdoDY7EeKvFqG4YPX3sg" parameter="_WzWVUPfBEd2TbIfwytOyPA _udDzwDY9EeKvFqG4YPX3sg">
+ <ownedTemplateSignature xmi:type="uml:TemplateSignature" xmi:id="_kCZdoDY7EeKvFqG4YPX3sg" parameter="_WzWVUPfBEd2TbIfwytOyPA _udDzwDY9EeKvFqG4YPX3sg">
<ownedParameter xmi:type="uml:ConnectableElementTemplateParameter" xmi:id="_udDzwDY9EeKvFqG4YPX3sg" parameteredElement="_9GMAUDY9EeKvFqG4YPX3sg">
<ownedParameteredElement xmi:type="uml:Port" xmi:id="_9GMAUDY9EeKvFqG4YPX3sg" name="P" templateParameter="_udDzwDY9EeKvFqG4YPX3sg"/>
</ownedParameter>
@@ -1325,30 +1325,31 @@ Be aware that the number of instantiated template packages will be considerably
<packagedElement xmi:type="uml:Package" xmi:id="_tkiC4HI3EeOCrdvV8oxOKA" name="bindingHelpers">
<packagedElement xmi:type="uml:Class" xmi:id="_z2tyoHI3EeOCrdvV8oxOKA" name="LoopOperations"/>
<packagedElement xmi:type="uml:Class" xmi:id="_4H-ZoHkgEeOCpqruXGWNPw" name="BindOperation"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_g8oe8LsMEeO0n5elMxN1LQ" name="BindCppIncludeToFirstActual"/>
</packagedElement>
- <profileApplication xmi:id="_O6TiIjLUEd26WNosUASSSw">
- <eAnnotations xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <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/5.0.0/UML/Profile/Standard#/"/>
</eAnnotations>
- <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
</profileApplication>
- <profileApplication xmi:id="_ugrx4AHIEd6pm-KfUZMnnQ">
- <eAnnotations xmi:id="_ugztsAHIEd6pm-KfUZMnnQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_ugrx4AHIEd6pm-KfUZMnnQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ugztsAHIEd6pm-KfUZMnnQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
</eAnnotations>
- <appliedProfile href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
</profileApplication>
- <profileApplication xmi:id="_u03PkFRxEd6GqrP6fkWBoQ">
- <eAnnotations xmi:id="_u1sWAFRxEd6GqrP6fkWBoQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_u03PkFRxEd6GqrP6fkWBoQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_u1sWAFRxEd6GqrP6fkWBoQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
</eAnnotations>
- <appliedProfile href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
</profileApplication>
- <profileApplication xmi:id="_0x8woBn3EeONpa5JgejICQ">
- <eAnnotations xmi:id="_01dXoBn3EeONpa5JgejICQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_0x8woBn3EeONpa5JgejICQ">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_01dXoBn3EeONpa5JgejICQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//SRM/SW_Concurrency"/>
</eAnnotations>
- <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_A_vtYBJeEdy3Td9UhuLFPg"/>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_A_vtYBJeEdy3Td9UhuLFPg"/>
</profileApplication>
</uml:Model>
<FCM:Port xmi:id="_u1uLMFRxEd6GqrP6fkWBoQ" base_Port="_P4xVsNtuEd2eM5kqcby5ZA" kind="_9Fif4FRxEd6GqrP6fkWBoQ"/>
@@ -1548,4 +1549,5 @@ Be aware that the number of instantiated template packages will be considerably
</FCM:DerivedElement>
<FCM:BindingHelper xmi:id="_nLe_sHJDEeOMF7YEvnQt5g" base_Class="_z2tyoHI3EeOCrdvV8oxOKA"/>
<FCM:BindingHelper xmi:id="_7qhTUHkgEeOCpqruXGWNPw" base_Class="_4H-ZoHkgEeOCpqruXGWNPw"/>
+ <FCM:BindingHelper xmi:id="_mFUQALsMEeO0n5elMxN1LQ" base_Class="_g8oe8LsMEeO0n5elMxN1LQ"/>
</xmi:XMI>
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/plugin.xml b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/plugin.xml
index f1319fa6607..16db2ded696 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/plugin.xml
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/plugin.xml
@@ -141,8 +141,16 @@
class="org.eclipse.papyrus.qompass.modellibs.core.bindinghelpers.BindOperation">
</client>
</extension>
+ <extension
+ id="BindCppIncludeToFirstActual"
+ point="org.eclipse.papyrus.fcm.profile.fcmBindingHelper">
+ <client
+ bindingHelperName="BindCppIncludeToFirstActual"
+ class="org.eclipse.papyrus.qompass.modellibs.core.bindinghelpers.BindCppIncludeToFirstActual">
+ </client>
+ </extension>
<extension point="org.eclipse.help.toc">
<toc file="help/modellibs-core-examples.xml"/>
<toc file="help/modellibs-core-library.xml"/>
</extension>
-</plugin> \ No newline at end of file
+</plugin>
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/InstantiateCppInclude.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindCppIncludeToFirstActual.java
index 4fcbc12df1f..0e6f173894b 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/InstantiateCppInclude.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindCppIncludeToFirstActual.java
@@ -12,41 +12,37 @@
*
*****************************************************************************/
-package org.eclipse.papyrus.qompass.designer.core.templates;
+package org.eclipse.papyrus.qompass.modellibs.core.bindinghelpers;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.papyrus.C_Cpp.Include;
+import org.eclipse.papyrus.FCM.util.IBindingHelper;
import org.eclipse.papyrus.qompass.designer.core.acceleo.AcceleoDriverWrapper;
-import org.eclipse.papyrus.qompass.designer.core.listeners.CopyListener;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PostCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.templates.TemplateUtils;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.TemplateBinding;
import org.eclipse.uml2.uml.util.UMLUtil;
/**
- * Instantiate the text within a C++Include tag.
- * TODO: this function is C++ specific and should not be here
+ * Instantiate (bind Acceleo template) the text within a C++Include stereotype.
+ *
+ * The actual is the first actual within the template binding. This function does not check
+ * whether the classifier has the template stereotype.
+ *
+ * Note: this function is C++ specific, but many parts of the model library are C++ specific as well
*
*/
-public class InstantiateCppInclude implements CopyListener {
-
- public static InstantiateCppInclude getInstance() {
- if(instance == null) {
- instance = new InstantiateCppInclude();
- }
- return instance;
- }
+public class BindCppIncludeToFirstActual implements PostCopyListener, IBindingHelper {
- public void init(TemplateBinding binding, Object[] args) {
- this.binding = binding;
- }
-
- public EObject copyEObject(Copy copy, EObject targetEObj) {
+ public void postCopyEObject(LazyCopier copy, EObject targetEObj) {
// if (copy.get(sourceEObj) isWithinTemplate)
if(targetEObj instanceof Classifier) {
- // TODO: C++ specific code!
+
Classifier targetCl = (Classifier)targetEObj;
try {
Classifier actual = TemplateUtils.getFirstActualFromBinding(binding);
@@ -65,12 +61,12 @@ public class InstantiateCppInclude implements CopyListener {
throw new RuntimeException(e);
}
}
- return targetEObj;
}
- private static InstantiateCppInclude instance = null;
-
- private TemplateBinding binding;
+ protected TemplateBinding binding;
- // private Copy copy;
+ @Override
+ public void handleElement(TemplateBinding binding, Element object) {
+ this.binding = binding;
+ }
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindOperation.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindOperation.java
index 61fb5030c0c..c705d243fa0 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindOperation.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/BindOperation.java
@@ -2,10 +2,10 @@ package org.eclipse.papyrus.qompass.modellibs.core.bindinghelpers;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.papyrus.FCM.util.IBindingHelper;
-import org.eclipse.papyrus.qompass.designer.core.listeners.CopyListener;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
import org.eclipse.papyrus.qompass.designer.core.templates.BindingUtils;
import org.eclipse.papyrus.qompass.designer.core.templates.TemplateUtils;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
import org.eclipse.papyrus.qompass.modellibs.core.Activator;
import org.eclipse.uml2.uml.Behavior;
@@ -19,12 +19,12 @@ import org.eclipse.uml2.uml.TemplateBinding;
* Bind an operation to an actual, i.e. evaluate the Acceleo template within the opaque behavior associated with
* the operation.
*/
-public class BindOperation implements IBindingHelper, CopyListener {
+public class BindOperation implements IBindingHelper, PreCopyListener {
private TemplateBinding binding;
@Override
- public EObject copyEObject(Copy copy, EObject sourceEObj) {
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
if(sourceEObj instanceof Operation) {
Operation operation = (Operation) sourceEObj;
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/InstantiateCppIncludeWOB.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/InstantiateCppIncludeWithItSelf.java
index 85f5766d599..4d6fa72e82e 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/InstantiateCppIncludeWOB.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/InstantiateCppIncludeWithItSelf.java
@@ -12,37 +12,36 @@
*
*****************************************************************************/
-package org.eclipse.papyrus.qompass.designer.core.templates;
+package org.eclipse.papyrus.qompass.modellibs.core.bindinghelpers;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.papyrus.C_Cpp.Include;
import org.eclipse.papyrus.FCM.Template;
+import org.eclipse.papyrus.FCM.util.IBindingHelper;
import org.eclipse.papyrus.qompass.designer.core.acceleo.AcceleoDriverWrapper;
-import org.eclipse.papyrus.qompass.designer.core.listeners.CopyListener;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PostCopyListener;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationContext;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.TemplateBinding;
import org.eclipse.uml2.uml.util.UMLUtil;
/**
- * Instantiate the text within a C++Include tag.
+ * Instantiate (bind Acceleo template) the text within a C++Include stereotype.
+ *
* Difference to InstantiateCppInclude: This function does not obtain the actual from a template
- * binding.
+ * binding. Instead it takes the classifier having the Template stereotype as actual.
+ * TODO: What's the use of this function. The classifier is known at this time - unless in a template?
*
- * TODO: this function is C++ specific and should not be here
+ * Note: this function is C++ specific, but many parts of the model library are C++ specific as well
*
*/
-public class InstantiateCppIncludeWOB implements CopyListener {
+@Deprecated
+public class InstantiateCppIncludeWithItSelf implements PostCopyListener, IBindingHelper {
- public static InstantiateCppIncludeWOB getInstance() {
- if(instance == null) {
- instance = new InstantiateCppIncludeWOB();
- }
- return instance;
- }
-
- public EObject copyEObject(Copy copy, EObject targetEObj) {
+ public void postCopyEObject(LazyCopier copy, EObject targetEObj) {
// if (copy.get(sourceEObj) isWithinTemplate)
if(targetEObj instanceof Classifier) {
// TODO: C++ specific code!
@@ -65,8 +64,10 @@ public class InstantiateCppIncludeWOB implements CopyListener {
}
}
}
- return targetEObj;
}
- private static InstantiateCppIncludeWOB instance = null;
+ @Override
+ public void handleElement(TemplateBinding binding, Element object) {
+ // don't need to handle binding
+ }
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/LoopOperations.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/LoopOperations.java
index 11f066f202b..d12ffca85ee 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/LoopOperations.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/bindinghelpers/LoopOperations.java
@@ -5,10 +5,10 @@ import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.papyrus.FCM.util.IBindingHelper;
import org.eclipse.papyrus.qompass.designer.core.acceleo.AcceleoDriverWrapper;
-import org.eclipse.papyrus.qompass.designer.core.listeners.CopyListener;
+import org.eclipse.papyrus.qompass.designer.core.listeners.PreCopyListener;
import org.eclipse.papyrus.qompass.designer.core.templates.BindingUtils;
import org.eclipse.papyrus.qompass.designer.core.templates.TemplateUtils;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
import org.eclipse.papyrus.qompass.modellibs.core.Activator;
import org.eclipse.uml2.uml.Behavior;
@@ -21,11 +21,11 @@ import org.eclipse.uml2.uml.Operation;
import org.eclipse.uml2.uml.TemplateBinding;
import org.eclipse.uml2.uml.Type;
-public class LoopOperations implements IBindingHelper, CopyListener {
+public class LoopOperations implements IBindingHelper, PreCopyListener {
private TemplateBinding binding;
- public EObject copyEObject(Copy copy, EObject sourceEObj) {
+ public EObject preCopyEObject(LazyCopier copy, EObject sourceEObj) {
if(sourceEObj instanceof Operation) {
Operation operation = (Operation)sourceEObj;
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/TemplatePort.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/TemplatePort.java
index d3e20ce76c6..dfae71fc195 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/TemplatePort.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.modellibs.core/src/org/eclipse/papyrus/qompass/modellibs/core/mappingrules/TemplatePort.java
@@ -20,7 +20,7 @@ import org.eclipse.papyrus.FCM.util.ITemplateMappingRule;
import org.eclipse.papyrus.qompass.designer.core.Utils;
import org.eclipse.papyrus.qompass.designer.core.templates.TemplateInstantiation;
import org.eclipse.papyrus.qompass.designer.core.templates.TemplateUtils;
-import org.eclipse.papyrus.qompass.designer.core.transformations.Copy;
+import org.eclipse.papyrus.qompass.designer.core.transformations.LazyCopier;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
import org.eclipse.papyrus.qompass.designer.core.transformations.filters.FixTemplateSync;
import org.eclipse.uml2.uml.Class;
@@ -124,7 +124,7 @@ public class TemplatePort implements ITemplateMappingRule {
try {
TemplateBinding binding =
TemplateUtils.fixedBinding(model, extendedPort, (Classifier)type);
- Copy copy = new Copy(model, model, false);
+ LazyCopier copy = new LazyCopier(model, model, false, true);
TemplateInstantiation ti = new TemplateInstantiation(copy, binding);
// remove listener synchronizing implementation, since it would add derived
// elements for the extended port itself (e.g. provided operations)
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.uml b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.uml
index 9d6b03fb1c4..b14f69f2b81 100644
--- a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.uml
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/examples/ClientServerTraceTest.uml
@@ -1,38 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Alloc="http://www.eclipse.org/papyrus/Alloc/1" xmlns: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:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/Alloc/1 http://www.eclipse.org/papyrus/MARTE/1#//Alloc">
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Alloc="http://www.eclipse.org/papyrus/Alloc/1" 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:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/Alloc/1 http://www.eclipse.org/papyrus/MARTE/1#//Alloc">
<uml:Model xmi:id="_O6TiIDLUEd26WNosUASSSw" name="ClientServerTraceTest">
- <packageImport xmi:type="uml:PackageImport" xmi:id="_O6TiITLUEd26WNosUASSSw">
+ <packageImport xmi:id="_O6TiITLUEd26WNosUASSSw">
<importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
</packageImport>
- <packageImport xmi:type="uml:PackageImport" xmi:id="_Bc1WIFW4Ed63BrxiKsw-0Q">
+ <packageImport xmi:id="_Bc1WIFW4Ed63BrxiKsw-0Q">
<importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/core.uml#_O6TiIDLUEd26WNosUASSSw"/>
</packageImport>
- <packageImport xmi:type="uml:PackageImport" xmi:id="_rwBsMP7AEd6Zw96O-tCw7A">
+ <packageImport xmi:id="_rwBsMP7AEd6Zw96O-tCw7A">
<importedPackage xmi:type="uml:Model" href="pathmap://QML_CORE/corba.uml#_DtQEwDLdEd2_U4efLnjQIw"/>
</packageImport>
- <packageImport xmi:type="uml:PackageImport" xmi:id="_7K0UkACUEd-PD8FdFs7bpA">
+ <packageImport xmi:id="_7K0UkACUEd-PD8FdFs7bpA">
<importedPackage xmi:type="uml:Model" href="pathmap://QML_DISTRIBUTION/distribution.uml#_O6TiIDLUEd26WNosUASSSw"/>
</packageImport>
- <packageImport xmi:type="uml:PackageImport" xmi:id="__D5MwE2WEeGzNbfAXPgNLA">
+ <packageImport xmi:id="__D5MwE2WEeGzNbfAXPgNLA">
<importedPackage xmi:type="uml:Model" href="pathmap://QML_TRACE/tracing.uml#_H-ZqYDKeEd-WprEKTCaiMA"/>
</packageImport>
<packagedElement xmi:type="uml:Package" xmi:id="_LOqIEDLaEd2qeKRLMdIx_A" name="components">
<packagedElement xmi:type="uml:Package" xmi:id="_OGM88DLaEd2qeKRLMdIx_A" name="Server">
- <packagedElement xmi:type="uml:Class" xmi:id="_oqZNUDLaEd2qeKRLMdIx_A" clientDependency="_YQqH0JYlEd6G9q9hwr11bw" name="CServer_impl" classifierBehavior="_5Vd9UDclEeKAhIrFXfR8zQ">
+ <packagedElement xmi:type="uml:Class" xmi:id="_oqZNUDLaEd2qeKRLMdIx_A" name="CServer_impl" classifierBehavior="_5Vd9UDclEeKAhIrFXfR8zQ">
<ownedAttribute xmi:type="uml:Port" xmi:id="_4KiE8DLbEd2qeKRLMdIx_A" name="p" type="_cn-H0DLbEd2qeKRLMdIx_A" aggregation="composite"/>
- <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_YQqH0JYlEd6G9q9hwr11bw" name="derived realization of ICompute" client="_oqZNUDLaEd2qeKRLMdIx_A" supplier="_cn-H0DLbEd2qeKRLMdIx_A" contract="_cn-H0DLbEd2qeKRLMdIx_A"/>
+ <interfaceRealization xmi:id="_YQqH0JYlEd6G9q9hwr11bw" name="derived realization of ICompute" client="_oqZNUDLaEd2qeKRLMdIx_A" supplier="_cn-H0DLbEd2qeKRLMdIx_A" contract="_cn-H0DLbEd2qeKRLMdIx_A"/>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_ML-4AKI5Ed6FqJCjEUrkqQ" name="add" specification="_TbIjUJYlEd6G9q9hwr11bw">
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_xOQMoC7NEeOY-cM3M1mqKw" name="a">
+ <ownedParameter xmi:id="_xOQMoC7NEeOY-cM3M1mqKw" name="a">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xOzmQC7NEeOY-cM3M1mqKw" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xO_zgC7NEeOY-cM3M1mqKw" value="1"/>
</ownedParameter>
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_xPLZsC7NEeOY-cM3M1mqKw" name="b">
+ <ownedParameter xmi:id="_xPLZsC7NEeOY-cM3M1mqKw" name="b">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xPuzUC7NEeOY-cM3M1mqKw" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xP6ZgC7NEeOY-cM3M1mqKw" value="1"/>
</ownedParameter>
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_xQF_sC7NEeOY-cM3M1mqKw" name="res" direction="return">
+ <ownedParameter xmi:id="_xQF_sC7NEeOY-cM3M1mqKw" name="res" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xQvf8C7NEeOY-cM3M1mqKw" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xQ7GIC7NEeOY-cM3M1mqKw" value="1"/>
@@ -42,17 +42,17 @@
return a+b;</body>
</ownedBehavior>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_I1R3YAcDEeGnrLqQ0OQeAg" name="mult" specification="_4ZEZwHecEd6r18stFZxmFQ">
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_xRMy8C7NEeOY-cM3M1mqKw" name="a">
+ <ownedParameter xmi:id="_xRMy8C7NEeOY-cM3M1mqKw" name="a">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_qgMSAB6SEd6ITtm_FH3jRw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xRwzoC7NEeOY-cM3M1mqKw" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xR8Z0C7NEeOY-cM3M1mqKw" value="1"/>
</ownedParameter>
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_xSInEC7NEeOY-cM3M1mqKw" name="b">
+ <ownedParameter xmi:id="_xSInEC7NEeOY-cM3M1mqKw" name="b">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_wbw4kB6SEd6ITtm_FH3jRw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xStO0C7NEeOY-cM3M1mqKw" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xS41AC7NEeOY-cM3M1mqKw" value="1"/>
</ownedParameter>
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_xTFCQC7NEeOY-cM3M1mqKw" name="res" direction="return">
+ <ownedParameter xmi:id="_xTFCQC7NEeOY-cM3M1mqKw" name="res" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xTn00C7NEeOY-cM3M1mqKw" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xT0CEC7NEeOY-cM3M1mqKw" value="1"/>
@@ -62,55 +62,55 @@ return a+b;</body>
return a*b;</body>
</ownedBehavior>
<ownedBehavior xmi:type="uml:StateMachine" xmi:id="_5Vd9UDclEeKAhIrFXfR8zQ" name="ServerStateMachine">
- <region xmi:type="uml:Region" xmi:id="_57WRkDclEeKAhIrFXfR8zQ" name="Region1">
- <transition xmi:type="uml:Transition" xmi:id="_8ZB08DclEeKAhIrFXfR8zQ" name="Transition0" source="_66D8kDclEeKAhIrFXfR8zQ" target="_66D8kDclEeKAhIrFXfR8zQ"/>
- <transition xmi:type="uml:Transition" xmi:id="_-v4XkDclEeKAhIrFXfR8zQ" name="Transition1" source="_9f6kgDclEeKAhIrFXfR8zQ" target="_66D8kDclEeKAhIrFXfR8zQ"/>
+ <region xmi:id="_57WRkDclEeKAhIrFXfR8zQ" name="Region1">
+ <transition xmi:id="_8ZB08DclEeKAhIrFXfR8zQ" name="Transition0" source="_66D8kDclEeKAhIrFXfR8zQ" target="_66D8kDclEeKAhIrFXfR8zQ"/>
+ <transition xmi:id="_-v4XkDclEeKAhIrFXfR8zQ" name="Transition1" source="_9f6kgDclEeKAhIrFXfR8zQ" target="_66D8kDclEeKAhIrFXfR8zQ"/>
<subvertex xmi:type="uml:State" xmi:id="_66D8kDclEeKAhIrFXfR8zQ" name="State0"/>
<subvertex xmi:type="uml:Pseudostate" xmi:id="_9f6kgDclEeKAhIrFXfR8zQ" name="Initial0"/>
</region>
</ownedBehavior>
- <ownedOperation xmi:type="uml:Operation" xmi:id="_4ZEZwHecEd6r18stFZxmFQ" name="mult" method="_I1R3YAcDEeGnrLqQ0OQeAg">
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_nvpKUDVdEeKoYLVLZgpRiw" name="a">
+ <ownedOperation xmi:id="_4ZEZwHecEd6r18stFZxmFQ" name="mult" method="_I1R3YAcDEeGnrLqQ0OQeAg">
+ <ownedParameter xmi:id="_nvpKUDVdEeKoYLVLZgpRiw" name="a">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_qgMSAB6SEd6ITtm_FH3jRw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nvup4DVdEeKoYLVLZgpRiw" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nvvQ8DVdEeKoYLVLZgpRiw" value="1"/>
</ownedParameter>
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_nvwfEDVdEeKoYLVLZgpRiw" name="b">
+ <ownedParameter xmi:id="_nvwfEDVdEeKoYLVLZgpRiw" name="b">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_wbw4kB6SEd6ITtm_FH3jRw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nvy7UDVdEeKoYLVLZgpRiw" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nvziYDVdEeKoYLVLZgpRiw" value="1"/>
</ownedParameter>
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_nv1XkDVdEeKoYLVLZgpRiw" name="res" direction="return">
+ <ownedParameter xmi:id="_nv1XkDVdEeKoYLVLZgpRiw" name="res" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nv3z0DVdEeKoYLVLZgpRiw" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nv4a4DVdEeKoYLVLZgpRiw" value="1"/>
</ownedParameter>
</ownedOperation>
- <ownedOperation xmi:type="uml:Operation" xmi:id="_TbIjUJYlEd6G9q9hwr11bw" name="add" method="_ML-4AKI5Ed6FqJCjEUrkqQ">
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_TbZCAJYlEd6G9q9hwr11bw" name="a">
+ <ownedOperation xmi:id="_TbIjUJYlEd6G9q9hwr11bw" name="add" method="_ML-4AKI5Ed6FqJCjEUrkqQ">
+ <ownedParameter xmi:id="_TbZCAJYlEd6G9q9hwr11bw" name="a">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
</ownedParameter>
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_TbdTcJYlEd6G9q9hwr11bw" name="b">
+ <ownedParameter xmi:id="_TbdTcJYlEd6G9q9hwr11bw" name="b">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
</ownedParameter>
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_TbkoMJYlEd6G9q9hwr11bw" name="res" direction="return">
+ <ownedParameter xmi:id="_TbkoMJYlEd6G9q9hwr11bw" name="res" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
</ownedParameter>
</ownedOperation>
- <ownedOperation xmi:type="uml:Operation" xmi:id="_rrf74DVdEeKoYLVLZgpRiw" name="check">
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_4UNv4DVdEeKoYLVLZgpRiw" name="write">
+ <ownedOperation xmi:id="_rrf74DVdEeKoYLVLZgpRiw" name="check">
+ <ownedParameter xmi:id="_4UNv4DVdEeKoYLVLZgpRiw" name="write">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4UO-ADVdEeKoYLVLZgpRiw" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4UPlEDVdEeKoYLVLZgpRiw" value="1"/>
</ownedParameter>
</ownedOperation>
- <ownedOperation xmi:type="uml:Operation" xmi:id="_9OJPEDVkEeKoYLVLZgpRiw" name="testOp">
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_Br-FQDVlEeKoYLVLZgpRiw" name="testPar">
+ <ownedOperation xmi:id="_9OJPEDVkEeKoYLVLZgpRiw" name="testOp">
+ <ownedParameter xmi:id="_Br-FQDVlEeKoYLVLZgpRiw" name="testPar">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
</ownedParameter>
</ownedOperation>
- <ownedOperation xmi:type="uml:Operation" xmi:id="_6ERa0DW2EeKyT6LlKoWJIA" name="length">
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_FfLX4DW3EeKyT6LlKoWJIA" name="p1" type="_krMkcDW2EeKyT6LlKoWJIA">
+ <ownedOperation xmi:id="_6ERa0DW2EeKyT6LlKoWJIA" name="length">
+ <ownedParameter xmi:id="_FfLX4DW3EeKyT6LlKoWJIA" name="p1" type="_krMkcDW2EeKyT6LlKoWJIA">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FfN0IDW3EeKyT6LlKoWJIA" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FfObMDW3EeKyT6LlKoWJIA" value="1"/>
</ownedParameter>
@@ -118,55 +118,55 @@ return a*b;</body>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_Tp4n8DLaEd2qeKRLMdIx_A" name="Interfaces">
- <ownedComment xmi:type="uml:Comment" xmi:id="_TDDBoDeEEeGPyrZ5I3hMlA" annotatedElement="_cn-H0DLbEd2qeKRLMdIx_A">
+ <ownedComment xmi:id="_TDDBoDeEEeGPyrZ5I3hMlA" annotatedElement="_cn-H0DLbEd2qeKRLMdIx_A">
<body>This interface contains services that are used by the client and provided by the server component</body>
</ownedComment>
<packagedElement xmi:type="uml:Interface" xmi:id="_cn-H0DLbEd2qeKRLMdIx_A" name="ICompute">
- <ownedOperation xmi:type="uml:Operation" xmi:id="_DGs6wDLgEd28fJKJJnUaeQ" name="add">
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_DGs6wTLgEd28fJKJJnUaeQ" name="a">
+ <ownedOperation xmi:id="_DGs6wDLgEd28fJKJJnUaeQ" name="add">
+ <ownedParameter xmi:id="_DGs6wTLgEd28fJKJJnUaeQ" name="a">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGs6wzLgEd28fJKJJnUaeQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGs6wjLgEd28fJKJJnUaeQ" value="1"/>
</ownedParameter>
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_DGs6xTLgEd28fJKJJnUaeQ" name="b">
+ <ownedParameter xmi:id="_DGs6xTLgEd28fJKJJnUaeQ" name="b">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGs6xzLgEd28fJKJJnUaeQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGs6xjLgEd28fJKJJnUaeQ" value="1"/>
</ownedParameter>
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_DGs6yTLgEd28fJKJJnUaeQ" name="res" direction="return">
+ <ownedParameter xmi:id="_DGs6yTLgEd28fJKJJnUaeQ" name="res" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DGs6yzLgEd28fJKJJnUaeQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DGs6yjLgEd28fJKJJnUaeQ" value="1"/>
</ownedParameter>
</ownedOperation>
- <ownedOperation xmi:type="uml:Operation" xmi:id="_L8EY8DLgEd28fJKJJnUaeQ" name="mult" isAbstract="true">
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_L8EY8TLgEd28fJKJJnUaeQ" name="a">
+ <ownedOperation xmi:id="_L8EY8DLgEd28fJKJJnUaeQ" name="mult" isAbstract="true">
+ <ownedParameter xmi:id="_L8EY8TLgEd28fJKJJnUaeQ" name="a">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_qgMSAB6SEd6ITtm_FH3jRw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L8EY8zLgEd28fJKJJnUaeQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L8EY8jLgEd28fJKJJnUaeQ" value="1"/>
</ownedParameter>
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_L8EY9TLgEd28fJKJJnUaeQ" name="b">
+ <ownedParameter xmi:id="_L8EY9TLgEd28fJKJJnUaeQ" name="b">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_wbw4kB6SEd6ITtm_FH3jRw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L8EY9zLgEd28fJKJJnUaeQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L8EY9jLgEd28fJKJJnUaeQ" value="1"/>
</ownedParameter>
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_L8EY-TLgEd28fJKJJnUaeQ" name="res" direction="return">
+ <ownedParameter xmi:id="_L8EY-TLgEd28fJKJJnUaeQ" name="res" direction="return">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_FxVBkB6LEd6Nj_33Eb_pxw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_L8EY-zLgEd28fJKJJnUaeQ" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_L8EY-jLgEd28fJKJJnUaeQ" value="1"/>
</ownedParameter>
</ownedOperation>
- <ownedOperation xmi:type="uml:Operation" xmi:id="_rrbqcDVdEeKoYLVLZgpRiw" name="check" isAbstract="true">
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_0xTp0DVdEeKoYLVLZgpRiw" name="write">
+ <ownedOperation xmi:id="_rrbqcDVdEeKoYLVLZgpRiw" name="check" isAbstract="true">
+ <ownedParameter xmi:id="_0xTp0DVdEeKoYLVLZgpRiw" name="write">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
</ownedParameter>
</ownedOperation>
- <ownedOperation xmi:type="uml:Operation" xmi:id="_6DewoDW2EeKyT6LlKoWJIA" name="length">
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_AP4BcDW3EeKyT6LlKoWJIA" name="p1" type="_krMkcDW2EeKyT6LlKoWJIA"/>
+ <ownedOperation xmi:id="_6DewoDW2EeKyT6LlKoWJIA" name="length">
+ <ownedParameter xmi:id="_AP4BcDW3EeKyT6LlKoWJIA" name="p1" type="_krMkcDW2EeKyT6LlKoWJIA"/>
</ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:DataType" xmi:id="_krMkcDW2EeKyT6LlKoWJIA" name="Point">
- <ownedAttribute xmi:type="uml:Property" xmi:id="_m0WCQDW2EeKyT6LlKoWJIA" name="x" visibility="public">
+ <ownedAttribute xmi:id="_m0WCQDW2EeKyT6LlKoWJIA" name="x" visibility="public">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pOAoUDW2EeKyT6LlKoWJIA" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_pOB2cDW2EeKyT6LlKoWJIA" value="1"/>
@@ -174,7 +174,7 @@ return a*b;</body>
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_yJIJMDW2EeKyT6LlKoWJIA" name="y" visibility="public">
+ <ownedAttribute xmi:id="_yJIJMDW2EeKyT6LlKoWJIA" name="y" visibility="public">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_-5FTMB6REd6ITtm_FH3jRw"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yd44QDW2EeKyT6LlKoWJIA" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yd6GYDW2EeKyT6LlKoWJIA" value="1"/>
@@ -185,28 +185,28 @@ return a*b;</body>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_etOZkDLaEd2qeKRLMdIx_A" name="Client">
- <ownedComment xmi:type="uml:Comment" xmi:id="_b5cakDeEEeGPyrZ5I3hMlA" annotatedElement="_34FjAPx3Ed6O2oOTPfeAMA">
+ <ownedComment xmi:id="_b5cakDeEEeGPyrZ5I3hMlA" annotatedElement="_34FjAPx3Ed6O2oOTPfeAMA">
<body>The client component inherits a specific port from the Cstart componen type: the port &quot;start&quot; which provides interface IRunnable containing a single operation &quot;run&quot;. By implementing this operation, the client gets initial control, comparable to a function &quot;main&quot; in classificla programming languages. </body>
</ownedComment>
- <ownedComment xmi:type="uml:Comment" xmi:id="_H2U_oDeGEeGPyrZ5I3hMlA">
+ <ownedComment xmi:id="_H2U_oDeGEeGPyrZ5I3hMlA">
<body>This realization relationship has been added automatically by Qompass, it is derived from the fact that class CClient_impl implements the port &quot;start&quot; which provides the interface &quot;IStart&quot;</body>
</ownedComment>
- <ownedComment xmi:type="uml:Comment" xmi:id="_fBRcQDeGEeGPyrZ5I3hMlA" annotatedElement="_IfjoETLbEd2qeKRLMdIx_A">
+ <ownedComment xmi:id="_fBRcQDeGEeGPyrZ5I3hMlA" annotatedElement="_IfjoETLbEd2qeKRLMdIx_A">
<body>The operation &quot;run&quot; (not the associated behavior) has been added automatically by Qompass in order to implement the operations of interfaces provided by ports, in this case of the operations of the &quot;IStart&quot; interface. It would be tedious to manually copy operations from an interface, as it would imply copying the complete signature with all parameters. The component developper has to provide a suitable behavior. A validation rule verifies if operations without behavior exist.</body>
</ownedComment>
- <ownedComment xmi:type="uml:Comment" xmi:id="_kStEMDeHEeGPyrZ5I3hMlA">
+ <ownedComment xmi:id="_kStEMDeHEeGPyrZ5I3hMlA">
<annotatedElement xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
<annotatedElement xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_BHFPQJsqEd61Eo3nmu3JhQ"/>
<body>These two interface are part of the &quot;BasicCalls&quot; Qompass model library. The IStart interface is &quot;special&quot;, since the Qompass model transformations check for it existance in order to pass the &quot;main&quot; control to this component. A validation rule checks, if exactly one component instance provides this interface via the &quot;start&quot; port.</body>
</ownedComment>
- <packagedElement xmi:type="uml:Class" xmi:id="_IfjoETLbEd2qeKRLMdIx_A" clientDependency="_ZmdDkEdDEeGxo4rn9hBAOQ" name="CClient_impl">
- <generalization xmi:type="uml:Generalization" xmi:id="_34FjAPx3Ed6O2oOTPfeAMA">
+ <packagedElement xmi:type="uml:Class" xmi:id="_IfjoETLbEd2qeKRLMdIx_A" name="CClient_impl">
+ <generalization xmi:id="_34FjAPx3Ed6O2oOTPfeAMA">
<general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_N6fa4JsrEd61Eo3nmu3JhQ"/>
</generalization>
<ownedAttribute xmi:type="uml:Port" xmi:id="_DtWn4DLcEd2qeKRLMdIx_A" name="q" type="_cn-H0DLbEd2qeKRLMdIx_A" aggregation="composite"/>
- <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_ZmdDkEdDEeGxo4rn9hBAOQ" name="derived realization of IStart" client="_IfjoETLbEd2qeKRLMdIx_A">
+ <interfaceRealization xmi:id="_ZmdDkEdDEeGxo4rn9hBAOQ" name="derived realization of IStart" client="_IfjoETLbEd2qeKRLMdIx_A">
<supplier xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
- <contract xmi:type="uml:Interface" href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
+ <contract href="pathmap://QML_CORE/sysinterfaces.uml#_PTWzwCS-Ed-A_I32T0fkaA"/>
</interfaceRealization>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_yXNVoKF4Ed6FqJCjEUrkqQ" name="run" specification="_ZnGj0EdDEeGxo4rn9hBAOQ">
<language>C/C++</language>
@@ -224,31 +224,31 @@ for (int i=0; i&lt;20; i++) {
<language>C/C++</language>
<body>cout &lt;&lt; &quot;This is a test operation&quot; &lt;&lt; endl;</body>
</ownedBehavior>
- <ownedOperation xmi:type="uml:Operation" xmi:id="_ZnGj0EdDEeGxo4rn9hBAOQ" name="run" method="_yXNVoKF4Ed6FqJCjEUrkqQ"/>
- <ownedOperation xmi:type="uml:Operation" xmi:id="_Qzp7gDclEeKAhIrFXfR8zQ" name="testOp" method="_yVALQDclEeKAhIrFXfR8zQ">
- <ownedParameter xmi:type="uml:Parameter" xmi:id="_rXu4UDc_EeKPle9CbXIcpQ" name="j">
+ <ownedOperation xmi:id="_ZnGj0EdDEeGxo4rn9hBAOQ" name="run" method="_yXNVoKF4Ed6FqJCjEUrkqQ"/>
+ <ownedOperation xmi:id="_Qzp7gDclEeKAhIrFXfR8zQ" name="testOp" method="_yVALQDclEeKAhIrFXfR8zQ">
+ <ownedParameter xmi:id="_rXu4UDc_EeKPle9CbXIcpQ" name="j">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_9XvcQB6REd6ITtm_FH3jRw"/>
</ownedParameter>
</ownedOperation>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_XLQjUDLiEd2RVeNawwNNzg" name="System">
- <ownedComment xmi:type="uml:Comment" xmi:id="_s5iFMDeJEeGPyrZ5I3hMlA" annotatedElement="_bYJagDLiEd2RVeNawwNNzg">
+ <ownedComment xmi:id="_s5iFMDeJEeGPyrZ5I3hMlA" annotatedElement="_bYJagDLiEd2RVeNawwNNzg">
<body>A composite class in which two attributes represent the component instances client and server, respectively. The assembly between ports is done on this level.
A single class represents the complete application, typically called &quot;System&quot; or &quot;System_impl&quot;. Such a class provides the information to calculate a tree of instance specifications, a so-called deployment plan. Check out the context menu. can be generated from the </body>
</ownedComment>
- <ownedComment xmi:type="uml:Comment" xmi:id="_Vcf9kDeKEeGPyrZ5I3hMlA" annotatedElement="_QO2s0E2rEeGl8qrc8BM7vA">
+ <ownedComment xmi:id="_Vcf9kDeKEeGPyrZ5I3hMlA" annotatedElement="_QO2s0E2rEeGl8qrc8BM7vA">
<body>This connection between ports is stereotyped. The &quot;connector&quot; provides information which specific interaction component is responsible for realising this connection. The interaction component is part of an Qompass model library. Select the connection and check out the Qompass pop &quot;Show/choose connector type or implementation&quot;. In this case an group of implementations has been chosen, which contains a socket connection in case of distribution and a direct connection, if co-localized</body>
</ownedComment>
<packagedElement xmi:type="uml:Class" xmi:id="_bYJagDLiEd2RVeNawwNNzg" name="System_impl">
- <ownedAttribute xmi:type="uml:Property" xmi:id="_gV1cgDLiEd2RVeNawwNNzg" name="server" type="_oqZNUDLaEd2qeKRLMdIx_A" isUnique="false" aggregation="composite"/>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_i-I7gDLiEd2RVeNawwNNzg" name="client" type="_IfjoETLbEd2qeKRLMdIx_A" isUnique="false" aggregation="composite"/>
- <ownedConnector xmi:type="uml:Connector" xmi:id="_QO2s0E2rEeGl8qrc8BM7vA" name="qp_connector">
- <end xmi:type="uml:ConnectorEnd" xmi:id="_QO3T4E2rEeGl8qrc8BM7vA" partWithPort="_i-I7gDLiEd2RVeNawwNNzg" role="_DtWn4DLcEd2qeKRLMdIx_A">
+ <ownedAttribute xmi:id="_gV1cgDLiEd2RVeNawwNNzg" name="server" type="_oqZNUDLaEd2qeKRLMdIx_A" isUnique="false" aggregation="composite"/>
+ <ownedAttribute xmi:id="_i-I7gDLiEd2RVeNawwNNzg" name="client" type="_IfjoETLbEd2qeKRLMdIx_A" isUnique="false" aggregation="composite"/>
+ <ownedConnector xmi:id="_QO2s0E2rEeGl8qrc8BM7vA" name="qp_connector">
+ <end xmi:id="_QO3T4E2rEeGl8qrc8BM7vA" partWithPort="_i-I7gDLiEd2RVeNawwNNzg" role="_DtWn4DLcEd2qeKRLMdIx_A">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QO3T4k2rEeGl8qrc8BM7vA" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QO3T4U2rEeGl8qrc8BM7vA" value="1"/>
</end>
- <end xmi:type="uml:ConnectorEnd" xmi:id="_QO5wIE2rEeGl8qrc8BM7vA" partWithPort="_gV1cgDLiEd2RVeNawwNNzg" role="_4KiE8DLbEd2qeKRLMdIx_A">
+ <end xmi:id="_QO5wIE2rEeGl8qrc8BM7vA" partWithPort="_gV1cgDLiEd2RVeNawwNNzg" role="_4KiE8DLbEd2qeKRLMdIx_A">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QO5wIk2rEeGl8qrc8BM7vA" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QO5wIU2rEeGl8qrc8BM7vA" value="1"/>
</end>
@@ -257,37 +257,37 @@ A single class represents the complete application, typically called &quot;Syste
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_v3fMgDLiEd2RVeNawwNNzg" name="platform">
- <ownedComment xmi:type="uml:Comment" xmi:id="_ZWJ6QDeLEeGPyrZ5I3hMlA" annotatedElement="__1PHIMnhEeCMCo5Ox2CNmg">
+ <ownedComment xmi:id="_ZWJ6QDeLEeGPyrZ5I3hMlA" annotatedElement="__1PHIMnhEeCMCo5Ox2CNmg">
<body>The hardware architecture is also defined by means of a composite class (comparable to the software architecture). The types (NodeA and NodeB) can be stereotyped with information about the used target platform (FCM stereotype target). As for software architecture, instances specification for nodes are derived from this class. Use &quot;Qompass: create platform definition&quot; in the context menu.</body>
</ownedComment>
- <ownedComment xmi:type="uml:Comment" xmi:id="_2vkEQDeLEeGPyrZ5I3hMlA" annotatedElement="_eFh10MniEeCMCo5Ox2CNmg">
+ <ownedComment xmi:id="_2vkEQDeLEeGPyrZ5I3hMlA" annotatedElement="_eFh10MniEeCMCo5Ox2CNmg">
<body>The physical connection between two nodes is represented by a UML connector. Currently, this information is not evaluated by Qompass, but it is planned to analyze for instance whether the throughput (specified by means of MARTE) is sufficient with requirements of the software</body>
</ownedComment>
<packagedElement xmi:type="uml:Node" xmi:id="_zY9vMDLiEd2RVeNawwNNzg" name="MonoNode"/>
<packagedElement xmi:type="uml:Node" xmi:id="_MxayMP_BEd6628OhKk_dpg" name="NodeA"/>
<packagedElement xmi:type="uml:Node" xmi:id="_NF3YMP_BEd6628OhKk_dpg" name="NodeB"/>
<packagedElement xmi:type="uml:Class" xmi:id="__1PHIMnhEeCMCo5Ox2CNmg" name="HWArchitectureDist">
- <ownedAttribute xmi:type="uml:Property" xmi:id="_RbUNAMniEeCMCo5Ox2CNmg" name="nodeA" visibility="public" type="_MxayMP_BEd6628OhKk_dpg" aggregation="composite">
+ <ownedAttribute xmi:id="_RbUNAMniEeCMCo5Ox2CNmg" name="nodeA" visibility="public" type="_MxayMP_BEd6628OhKk_dpg" aggregation="composite">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UjRccMniEeCMCo5Ox2CNmg" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_UkfkcMniEeCMCo5Ox2CNmg" value="1"/>
<defaultValue xmi:type="uml:LiteralString" xmi:id="_Ul-LIMniEeCMCo5Ox2CNmg">
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <ownedAttribute xmi:type="uml:Property" xmi:id="_R5FuIMniEeCMCo5Ox2CNmg" name="nodeB" visibility="public" type="_NF3YMP_BEd6628OhKk_dpg" aggregation="composite">
+ <ownedAttribute xmi:id="_R5FuIMniEeCMCo5Ox2CNmg" name="nodeB" visibility="public" type="_NF3YMP_BEd6628OhKk_dpg" aggregation="composite">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VzfHIMniEeCMCo5Ox2CNmg" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_V1Is8MniEeCMCo5Ox2CNmg" value="1"/>
<defaultValue xmi:type="uml:LiteralString" xmi:id="_V3LUUMniEeCMCo5Ox2CNmg">
<value xsi:nil="true"/>
</defaultValue>
</ownedAttribute>
- <ownedConnector xmi:type="uml:Connector" xmi:id="_eFh10MniEeCMCo5Ox2CNmg" name="Connector0">
- <end xmi:type="uml:ConnectorEnd" xmi:id="_eFic4MniEeCMCo5Ox2CNmg" role="_RbUNAMniEeCMCo5Ox2CNmg"/>
- <end xmi:type="uml:ConnectorEnd" xmi:id="_eFjD8MniEeCMCo5Ox2CNmg" role="_R5FuIMniEeCMCo5Ox2CNmg"/>
+ <ownedConnector xmi:id="_eFh10MniEeCMCo5Ox2CNmg" name="Connector0">
+ <end xmi:id="_eFic4MniEeCMCo5Ox2CNmg" role="_RbUNAMniEeCMCo5Ox2CNmg"/>
+ <end xmi:id="_eFjD8MniEeCMCo5Ox2CNmg" role="_R5FuIMniEeCMCo5Ox2CNmg"/>
</ownedConnector>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_M1a_8MniEeCMCo5Ox2CNmg" name="HWArchitectureMonolithic">
- <ownedAttribute xmi:type="uml:Property" xmi:id="_QgKzYMniEeCMCo5Ox2CNmg" name="monoNode" visibility="public" type="_zY9vMDLiEd2RVeNawwNNzg" aggregation="composite">
+ <ownedAttribute xmi:id="_QgKzYMniEeCMCo5Ox2CNmg" name="monoNode" visibility="public" type="_zY9vMDLiEd2RVeNawwNNzg" aggregation="composite">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XijRAMniEeCMCo5Ox2CNmg" value="1"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XkfxwMniEeCMCo5Ox2CNmg" value="1"/>
<defaultValue xmi:type="uml:LiteralString" xmi:id="_XlIq8MniEeCMCo5Ox2CNmg">
@@ -304,22 +304,22 @@ A single class represents the complete application, typically called &quot;Syste
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_234GEDLiEd2RVeNawwNNzg" name="deployment">
- <ownedComment xmi:type="uml:Comment" xmi:id="_ToVjMDeIEeGPyrZ5I3hMlA" annotatedElement="_QT6okKDjEd-rLNbSWf1QuA">
+ <ownedComment xmi:id="_ToVjMDeIEeGPyrZ5I3hMlA" annotatedElement="_QT6okKDjEd-rLNbSWf1QuA">
<body>A deployment configuration that activates the tracing container rule which will provide OTF tracing. The deployment configuration is linked with the &quot;monolithic&quot; deployment plan</body>
</ownedComment>
- <ownedComment xmi:type="uml:Comment" xmi:id="_f3lHQDeIEeGPyrZ5I3hMlA" annotatedElement="_5Z7MEDLiEd2RVeNawwNNzg">
+ <ownedComment xmi:id="_f3lHQDeIEeGPyrZ5I3hMlA" annotatedElement="_5Z7MEDLiEd2RVeNawwNNzg">
<body> deployment plan (= set of instances along with their configuration and allocation) &quot;monolithic&quot;. All instances are allocated to node instance &quot;monoNode&quot;. Check out the node allocation with the pop-up &quot;Qompass: allocate to node&quot;.
Initiate the deployment and code generation with the pop-up &quot;Qompass: generate deployment model and code from plan&quot;.</body>
</ownedComment>
- <ownedComment xmi:type="uml:Comment" xmi:id="_L01VMDeJEeGPyrZ5I3hMlA" annotatedElement="_bBSxQP_BEd6628OhKk_dpg">
+ <ownedComment xmi:id="_L01VMDeJEeGPyrZ5I3hMlA" annotatedElement="_bBSxQP_BEd6628OhKk_dpg">
<body> In this case, the deployment plan forsees allocating the client to nodeA and the server to nodeB. Note that the deployment transformations will automatically detect that a distributed connector is required, in this case a socket (see composite diagram System)</body>
</ownedComment>
<packagedElement xmi:type="uml:Package" xmi:id="_5Z7MEDLiEd2RVeNawwNNzg" name="monolithic">
- <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_L9xhwDLjEd2RVeNawwNNzg" clientDependency="_1Lv7AE0qEeGl_syZE5iOXA" name="mySystem" classifier="_bYJagDLiEd2RVeNawwNNzg">
- <slot xmi:type="uml:Slot" xmi:id="_TdCvsDLjEd2RVeNawwNNzg" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_L9xhwDLjEd2RVeNawwNNzg" name="mySystem" classifier="_bYJagDLiEd2RVeNawwNNzg">
+ <slot xmi:id="_TdCvsDLjEd2RVeNawwNNzg" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
<value xmi:type="uml:InstanceValue" xmi:id="_fw8xUDLjEd2RVeNawwNNzg" name="" instance="_MyQ5wDLjEd2RVeNawwNNzg"/>
</slot>
- <slot xmi:type="uml:Slot" xmi:id="_YhikUDLjEd2RVeNawwNNzg" definingFeature="_i-I7gDLiEd2RVeNawwNNzg">
+ <slot xmi:id="_YhikUDLjEd2RVeNawwNNzg" definingFeature="_i-I7gDLiEd2RVeNawwNNzg">
<value xmi:type="uml:InstanceValue" xmi:id="_lAoiQDLjEd2RVeNawwNNzg" instance="_P3ovQDLjEd2RVeNawwNNzg"/>
</slot>
</packagedElement>
@@ -329,43 +329,43 @@ Initiate the deployment and code generation with the pop-up &quot;Qompass: gener
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_bBSxQP_BEd6628OhKk_dpg" name="distributed">
<packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_bBdwYP_BEd6628OhKk_dpg" name="mainInstance" classifier="_bYJagDLiEd2RVeNawwNNzg">
- <slot xmi:type="uml:Slot" xmi:id="_bBpWkP_BEd6628OhKk_dpg" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
+ <slot xmi:id="_bBpWkP_BEd6628OhKk_dpg" definingFeature="_gV1cgDLiEd2RVeNawwNNzg">
<value xmi:type="uml:InstanceValue" xmi:id="_bBqksP_BEd6628OhKk_dpg" instance="_bBnhYP_BEd6628OhKk_dpg"/>
</slot>
- <slot xmi:type="uml:Slot" xmi:id="_bBuPEP_BEd6628OhKk_dpg" definingFeature="_i-I7gDLiEd2RVeNawwNNzg">
+ <slot xmi:id="_bBuPEP_BEd6628OhKk_dpg" definingFeature="_i-I7gDLiEd2RVeNawwNNzg">
<value xmi:type="uml:InstanceValue" xmi:id="_bBxSYP_BEd6628OhKk_dpg" instance="_bBry0P_BEd6628OhKk_dpg"/>
</slot>
</packagedElement>
- <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_bBnhYP_BEd6628OhKk_dpg" clientDependency="_zjuk8DeMEeGPyrZ5I3hMlA" name="mainInstance.server" classifier="_oqZNUDLaEd2qeKRLMdIx_A"/>
- <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_bBry0P_BEd6628OhKk_dpg" clientDependency="_zMKZgDeMEeGPyrZ5I3hMlA" name="mainInstance.client" classifier="_IfjoETLbEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_bBnhYP_BEd6628OhKk_dpg" name="mainInstance.server" classifier="_oqZNUDLaEd2qeKRLMdIx_A"/>
+ <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_bBry0P_BEd6628OhKk_dpg" name="mainInstance.client" classifier="_IfjoETLbEd2qeKRLMdIx_A"/>
<packagedElement xmi:type="uml:Abstraction" xmi:id="_zMKZgDeMEeGPyrZ5I3hMlA" name="allocate to nodeA" client="_bBry0P_BEd6628OhKk_dpg" supplier="_fKEkMDeMEeGPyrZ5I3hMlA"/>
<packagedElement xmi:type="uml:Abstraction" xmi:id="_zjuk8DeMEeGPyrZ5I3hMlA" name="allocate to nodeB" client="_bBnhYP_BEd6628OhKk_dpg" supplier="_fKFyUDeMEeGPyrZ5I3hMlA"/>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_QT6okKDjEd-rLNbSWf1QuA" name="ConfigTraceMono"/>
</packagedElement>
- <profileApplication xmi: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#/"/>
+ <profileApplication xmi:id="_O6TiIjLUEd26WNosUASSSw">
+ <eAnnotations xmi:id="_O6TiIzLUEd26WNosUASSSw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
</eAnnotations>
- <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/StandardL2.profile.uml#_0"/>
+ <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
</profileApplication>
- <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_GcC0cAHtEd6HSdiss9GQ0A">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Gd1kMAHtEd6HSdiss9GQ0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <profileApplication xmi:id="_GcC0cAHtEd6HSdiss9GQ0A">
+ <eAnnotations xmi:id="_Gd1kMAHtEd6HSdiss9GQ0A" source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/C_Cpp/1#/"/>
</eAnnotations>
- <appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
+ <appliedProfile href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
</profileApplication>
- <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_z1TwgFW3Ed63BrxiKsw-0Q">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_z2GasFW3Ed63BrxiKsw-0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <profileApplication xmi:id="_z1TwgFW3Ed63BrxiKsw-0Q">
+ <eAnnotations xmi:id="_z2GasFW3Ed63BrxiKsw-0Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FCM/1#/"/>
</eAnnotations>
- <appliedProfile xmi:type="uml:Profile" href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
+ <appliedProfile href="pathmap://FCM_PROFILES/FCM.profile.uml#_5mvT0MtjEd2H_o0jIC6qDQ"/>
</profileApplication>
- <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_1GtD8E0fEeG_H4ME7SR4KA">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1RA2gE0fEeG_H4ME7SR4KA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <profileApplication xmi:id="_1GtD8E0fEeG_H4ME7SR4KA">
+ <eAnnotations xmi:id="_1RA2gE0fEeG_H4ME7SR4KA" source="http://www.eclipse.org/uml2/2.0.0/UML">
<references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/MARTE/1#//Alloc"/>
</eAnnotations>
- <appliedProfile xmi:type="uml:Profile" href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
+ <appliedProfile href="pathmap://Papyrus_PROFILES/MARTE.profile.uml#_ar8OsAPMEdyuUt-4qHuVvQ"/>
</profileApplication>
</uml:Model>
<FCM:DerivedElement xmi:id="_B9o7sP6yEd6Ie_kieu_3CQ">
@@ -374,13 +374,13 @@ Initiate the deployment and code generation with the pop-up &quot;Qompass: gener
<FCM:DerivedElement xmi:id="_DWb6oP6yEd6Ie_kieu_3CQ" base_Element="_TbIjUJYlEd6G9q9hwr11bw" source="_DGs6wDLgEd28fJKJJnUaeQ"/>
<FCM:DerivedElement xmi:id="_DXK6cP6yEd6Ie_kieu_3CQ" base_Element="_4ZEZwHecEd6r18stFZxmFQ" source="_L8EY8DLgEd28fJKJJnUaeQ"/>
<FCM:RuleApplication xmi:id="_DWIYoP6yEd6Ie_kieu_3CQ" base_Class="_oqZNUDLaEd2qeKRLMdIx_A">
- <containerRule xmi:type="FCM:ContainerRule" href="pathmap://QML_TRACE/tracing.uml#_RWQC8PwkEeGWn-a9PUOYcA"/>
- <containerRule xmi:type="FCM:ContainerRule" href="pathmap://QML_TRACE/tracing.uml#_NtAukCqLEeKGrchWittz_g"/>
+ <containerRule href="pathmap://QML_TRACE/tracing.uml#_RWQC8PwkEeGWn-a9PUOYcA"/>
+ <containerRule href="pathmap://QML_TRACE/tracing.uml#_NtAukCqLEeKGrchWittz_g"/>
<propagateRule>false</propagateRule>
<interceptor href="pathmap://QML_TRACE/tracing.uml#_35od4DKrEd-z5o2wSoJ16A"/>
</FCM:RuleApplication>
<FCM:Port xmi:id="_GofhQP6yEd6Ie_kieu_3CQ" base_Port="_4KiE8DLbEd2qeKRLMdIx_A">
- <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_wySlkFRxEd6GqrP6fkWBoQ"/>
+ <kind href="pathmap://QML_CORE/core.uml#_wySlkFRxEd6GqrP6fkWBoQ"/>
</FCM:Port>
<FCM:Connector xmi:id="_K2_iAP6yEd6Ie_kieu_3CQ"/>
<FCM:DeploymentPlan xmi:id="_6dGQgP6zEd6Ie_kieu_3CQ" mainInstance="_L9xhwDLjEd2RVeNawwNNzg" base_Package="_5Z7MEDLiEd2RVeNawwNNzg"/>
@@ -394,27 +394,27 @@ Initiate the deployment and code generation with the pop-up &quot;Qompass: gener
<FCM:DeploymentPlan xmi:id="_u_ACgGSuEd-dQdK1-7wIFg"/>
<FCM:DeploymentPlan xmi:id="_YK67AGTgEd-rCOWJcspHOA"/>
<FCM:Port xmi:id="_IWQqoP6yEd6Ie_kieu_3CQ" base_Port="_DtWn4DLcEd2qeKRLMdIx_A">
- <kind xmi:type="FCM:PortKind" href="pathmap://QML_CORE/core.uml#_9Fif4FRxEd6GqrP6fkWBoQ"/>
+ <kind href="pathmap://QML_CORE/core.uml#_9Fif4FRxEd6GqrP6fkWBoQ"/>
</FCM:Port>
<FCM:ContainerRule xmi:id="_lNrDwH4HEd-rD-b0gnx-AQ"/>
<FCM:Configuration xmi:id="_RM9kQH8UEd-7Bsdl4VhuEw" deploymentPlan="_6dGQgP6zEd6Ie_kieu_3CQ" base_Package="_BJc50H8TEd-7Bsdl4VhuEw">
- <configOptions xmi:type="FCM:ConfigOption" href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ <configOptions href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
</FCM:Configuration>
<FCM:Configuration xmi:id="_Y10_QKDjEd-rLNbSWf1QuA" base_Class="_QT6okKDjEd-rLNbSWf1QuA" deploymentPlan="_6dGQgP6zEd6Ie_kieu_3CQ">
- <configOptions xmi:type="FCM:ConfigOption" href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
+ <configOptions href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
</FCM:Configuration>
<FCM:DerivedElement xmi:id="_1E0nUKFhEd-AoOVE_odazw"/>
<FCM:Target xmi:id="_Et5N4LqQEd-BObGGoBbehA" base_Node="_MxayMP_BEd6628OhKk_dpg">
- <targetArch xmi:type="FCM:TargetArchitecture" href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
- <usedOS xmi:type="FCM:OperatingSystem" href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ <targetArch href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
</FCM:Target>
<FCM:Target xmi:id="_HvbFMLqQEd-BObGGoBbehA" base_Node="_zY9vMDLiEd2RVeNawwNNzg">
- <targetArch xmi:type="FCM:TargetArchitecture" href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
- <usedOS xmi:type="FCM:OperatingSystem" href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ <targetArch href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
</FCM:Target>
<FCM:Target xmi:id="_J6gcsLqQEd-BObGGoBbehA" base_Node="_NF3YMP_BEd6628OhKk_dpg">
- <targetArch xmi:type="FCM:TargetArchitecture" href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
- <usedOS xmi:type="FCM:OperatingSystem" href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
+ <targetArch href="pathmap://QML_CORE/core.uml#_FYOqwF0OEd-12d_h0i1xhQ"/>
+ <usedOS href="pathmap://QML_CORE/core.uml#_1eULwF0NEd-12d_h0i1xhQ"/>
</FCM:Target>
<FCM:Connector xmi:id="_cAkqIMKnEd-LE5cHpAvxBg">
<connector xmi:type="FCM:ConnectorImplGroup" href="pathmap://QML_DISTRIBUTION/distribution.uml#_DBP7QMKmEd-hj59jYY3RZQ"/>
@@ -426,12 +426,12 @@ Initiate the deployment and code generation with the pop-up &quot;Qompass: gener
<Alloc:Allocate xmi:id="_iwbZwE0rEeGl_syZE5iOXA" base_Abstraction="_zMKZgDeMEeGPyrZ5I3hMlA"/>
<Alloc:Allocate xmi:id="_juiAwE0rEeGl_syZE5iOXA" base_Abstraction="_zjuk8DeMEeGPyrZ5I3hMlA"/>
<FCM:Connector xmi:id="_UKqbEE2rEeGl8qrc8BM7vA" base_Connector="_QO2s0E2rEeGl8qrc8BM7vA">
- <ic xmi:type="FCM:InteractionComponent" href="pathmap://QML_DISTRIBUTION/distribution.uml#_lpYxME2qEeGl8qrc8BM7vA"/>
+ <ic href="pathmap://QML_DISTRIBUTION/distribution.uml#_lpYxME2qEeGl8qrc8BM7vA"/>
</FCM:Connector>
<FCM:DerivedElement xmi:id="_rrmpkDVdEeKoYLVLZgpRiw" base_Element="_rrf74DVdEeKoYLVLZgpRiw" source="_rrbqcDVdEeKoYLVLZgpRiw"/>
<FCM:DerivedElement xmi:id="_6EbL0DW2EeKyT6LlKoWJIA" base_Element="_6ERa0DW2EeKyT6LlKoWJIA" source="_6DewoDW2EeKyT6LlKoWJIA"/>
<FCM:RuleApplication xmi:id="__bC_ADcmEeKAhIrFXfR8zQ" base_Class="_IfjoETLbEd2qeKRLMdIx_A">
- <containerRule xmi:type="FCM:ContainerRule" href="pathmap://QML_TRACE/tracing.uml#_NtAukCqLEeKGrchWittz_g"/>
+ <containerRule href="pathmap://QML_TRACE/tracing.uml#_NtAukCqLEeKGrchWittz_g"/>
<propagateRule>false</propagateRule>
</FCM:RuleApplication>
</xmi:XMI>
diff --git a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.notation b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.notation
index 4044845b3f3..554914373b7 100644
--- a/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.notation
+++ b/extraplugins/qompass-designer/tracing/org.eclipse.papyrus.qompass.modellibs.tracing/models/library/tracing.notation
@@ -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: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">
+<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/5.0.0/UML">
<notation:Diagram xmi:id="_U-SDoIKfEd-xPu-WdpUyIQ" type="CompositeStructure" name="OTF composition" measurementUnit="Pixel">
<children xmi:type="notation:Shape" xmi:id="_jKzMsIKfEd-xPu-WdpUyIQ" type="2073" fontName="Sans Serif" fontHeight="10" lineColor="0">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jKzzwIKfEd-xPu-WdpUyIQ" source="ShadowFigure">
@@ -1309,22 +1309,22 @@
<children xmi:type="notation:BasicCompartment" xmi:id="_P4g8tSmiEeKp-eCvZDLsaw" type="7018">
<children xmi:type="notation:Shape" xmi:id="_UxxxsCmiEeKp-eCvZDLsaw" type="3013" fontName="Sans Serif" lineColor="0">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_X21eICmiEeKp-eCvZDLsaw" source="Stereotype_Annotation">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X21eISmiEeKp-eCvZDLsaw" key="StereotypeWithQualifiedNameList" value=""/>
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X21eIimiEeKp-eCvZDLsaw" key="StereotypeList" value="StandardProfileL2::Create"/>
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X21eIymiEeKp-eCvZDLsaw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X21eJCmiEeKp-eCvZDLsaw" key="PropStereoDisplay" value=""/>
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_X21eJSmiEeKp-eCvZDLsaw" key="StereotypePropertyLocation" value="Compartment"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uwE6sLjdEeOmnIHZGVkncQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uwE6sbjdEeOmnIHZGVkncQ" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uwFhwLjdEeOmnIHZGVkncQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uwFhwbjdEeOmnIHZGVkncQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uwFhwrjdEeOmnIHZGVkncQ" key="StereotypePropertyLocation" value="Compartment"/>
</eAnnotations>
<element xmi:type="uml:Operation" href="tracing.uml#_UvQpMCmiEeKp-eCvZDLsaw"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_UxxxsSmiEeKp-eCvZDLsaw"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_VUiggCmiEeKp-eCvZDLsaw" type="3013" fontName="Sans Serif" lineColor="0">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZJzh4CmiEeKp-eCvZDLsaw" source="Stereotype_Annotation">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZJ0I8CmiEeKp-eCvZDLsaw" key="StereotypeWithQualifiedNameList" value=""/>
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZJ0I8SmiEeKp-eCvZDLsaw" key="StereotypeList" value="StandardProfileL2::Destroy"/>
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZJ0I8imiEeKp-eCvZDLsaw" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZJ0I8ymiEeKp-eCvZDLsaw" key="PropStereoDisplay" value=""/>
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZJ0I9CmiEeKp-eCvZDLsaw" key="StereotypePropertyLocation" value="Compartment"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uwLoYLjdEeOmnIHZGVkncQ" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uwLoYbjdEeOmnIHZGVkncQ" key="StereotypeList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uwMPcLjdEeOmnIHZGVkncQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uwMPcbjdEeOmnIHZGVkncQ" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_uwMPcrjdEeOmnIHZGVkncQ" key="StereotypePropertyLocation" value="Compartment"/>
</eAnnotations>
<element xmi:type="uml:Operation" href="tracing.uml#_VUW6UCmiEeKp-eCvZDLsaw"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_VUiggSmiEeKp-eCvZDLsaw"/>
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 2a7232c407c..e07901c928c 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
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns: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:l2="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" 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:standard="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
<uml:Model xmi:id="_H-ZqYDKeEd-WprEKTCaiMA" name="Tracing">
<packageImport xmi:type="uml:PackageImport" xmi:id="_H-ZqYTKeEd-WprEKTCaiMA">
<importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
@@ -28,7 +28,7 @@
<ownedComment xmi:type="uml:Comment" xmi:id="_bb4kQLniEeCxXoyQxQ47PQ" annotatedElement="_aF1w4DKeEd-WprEKTCaiMA">
<body>Trace implementation based on OTF trace library. Aggregates singleton TraceInit</body>
</ownedComment>
- <packagedElement xmi:type="uml:Class" xmi:id="_aF1w4DKeEd-WprEKTCaiMA" clientDependency="_BuqlQDOcEd-1k-POY2IaLg" name="OTFTrace_impl">
+ <packagedElement xmi:type="uml:Class" xmi:id="_aF1w4DKeEd-WprEKTCaiMA" name="OTFTrace_impl">
<generalization xmi:type="uml:Generalization" xmi:id="_WdRuUDaUEeKkY-29HX5sMQ" general="_MM6RwDaUEeKkY-29HX5sMQ"/>
<ownedAttribute xmi:type="uml:Property" xmi:id="_aF1w5TKeEd-WprEKTCaiMA" name="timestamp" isUnique="false">
<type xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_FuKEEDj8Edy0Rd6V_tf1-Q"/>
@@ -242,7 +242,7 @@ OTF_Writer_writeDefFunction (writer, streamNr, &lt;%enumSvcPrefix%>::id_&lt;%own
</ownedParameter>
</ownedTemplateSignature>
</packagedElement>
- <packagedElement xmi:type="uml:Class" xmi:id="_aoSDwKAdEeCF0uoVQbVQRg" clientDependency="_Mgn2cKKXEeCdIOXlyrCmKQ" name="OTFTrace_vc">
+ <packagedElement xmi:type="uml:Class" xmi:id="_aoSDwKAdEeCF0uoVQbVQRg" name="OTFTrace_vc">
<generalization xmi:type="uml:Generalization" xmi:id="_nQ6YMKAdEeCF0uoVQbVQRg" general="_aF1w4DKeEd-WprEKTCaiMA"/>
<ownedAttribute xmi:type="uml:Property" xmi:id="_EWKx4KD0EeCFDJJCA2W5wg" name="m_first">
<type xmi:type="uml:PrimitiveType" href="pathmap://QML_CORE/corba.uml#_Bv7l0B-VEd6nGq8wpI2tjg"/>
@@ -389,7 +389,7 @@ if (doTrace) {
</defaultValue>
</ownedAttribute>
</packagedElement>
- <packagedElement xmi:type="uml:Class" xmi:id="_If04ACqLEeKGrchWittz_g" clientDependency="_riv0oC5vEeKMZ5P9cEChlg" name="LTTngLWRule">
+ <packagedElement xmi:type="uml:Class" xmi:id="_If04ACqLEeKGrchWittz_g" name="LTTngLWRule">
<ownedAttribute xmi:type="uml:Property" xmi:id="_Avfe8C8PEeKVAPO2lpiVnA" name="instanceName" visibility="public">
<type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_BuA8sC8PEeKVAPO2lpiVnA" value="1"/>
@@ -423,7 +423,7 @@ if (doTrace) {
<packagedElement xmi:type="uml:Usage" xmi:id="_7uQr8D4OEeC-VMxjm_qUAg" name="TraceInit => Thread (for ThreadId)" client="_apuYoDNwEd-1k-POY2IaLg">
<supplier xmi:type="uml:Class" href="pathmap://QML_CORE/osal.uml#_-HeCsDj_Edy0Rd6V_tf1-Q"/>
</packagedElement>
- <packagedElement xmi:type="uml:Class" xmi:id="_apuYoDNwEd-1k-POY2IaLg" clientDependency="_UcPagD1nEd-Bk-AHd6yyoA _7uQr8D4OEeC-VMxjm_qUAg" name="TraceInit">
+ <packagedElement xmi:type="uml:Class" xmi:id="_apuYoDNwEd-1k-POY2IaLg" name="TraceInit">
<generalization xmi:type="uml:Generalization" xmi:id="_9zJj0DguEd-9wq2wHPy3lw">
<general xmi:type="uml:Class" href="pathmap://QML_CORE/core.uml#_-WNegNtxEd6nqsBVkgJEEA"/>
</generalization>
@@ -594,7 +594,7 @@ return processID;</body>
<body>Trace Provider
</body>
</ownedComment>
- <packagedElement xmi:type="uml:Class" xmi:id="_pwl_MPxWEeGOK9t90vpALA" clientDependency="_BV2G4PzTEeGKDvxFM1SZ_g _9ygUUDHKEeKt1a2SZnJmwg _c0nqkDWGEeKGAYOVxzQeAg" name="LTTngInterceptor">
+ <packagedElement xmi:type="uml:Class" xmi:id="_pwl_MPxWEeGOK9t90vpALA" name="LTTngInterceptor">
<generalization xmi:type="uml:Generalization" xmi:id="_1963sPxWEeGOK9t90vpALA" general="_dcP9gDaSEeKxVvAop17bHw"/>
<ownedBehavior xmi:type="uml:OpaqueBehavior" xmi:id="_qLhLMPxXEeGOK9t90vpALA" name="[name/]" specification="_YU5H4PxXEeGOK9t90vpALA">
<language>C/C++</language>
@@ -634,7 +634,7 @@ return processID;</body>
</packagedElement>
<profileApplication xmi:type="uml:ProfileApplication" xmi:id="_H_B8gDKeEd-WprEKTCaiMA">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_H_DxsDKeEd-WprEKTCaiMA" source="http://www.eclipse.org/uml2/2.0.0/UML">
- <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/4.0.0/UML/Profile/L2#/"/>
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
</eAnnotations>
<appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/StandardL2.profile.uml#_0"/>
</profileApplication>
@@ -651,7 +651,7 @@ return processID;</body>
<appliedProfile xmi:type="uml:Profile" href="pathmap://PapyrusC_Cpp_PROFILES/C_Cpp.profile.uml#_j9REUByGEduN1bTiWJ0lyw"/>
</profileApplication>
</uml:Model>
- <l2:ModelLibrary xmi:id="_ICaAoDKeEd-WprEKTCaiMA" base_Package="_H-ZqYDKeEd-WprEKTCaiMA"/>
+ <standard: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"/>
@@ -744,7 +744,9 @@ return processID;</body>
</FCM:ContainerRule>
<FCM:InterceptionRule xmi:id="_m-L0sPwkEeGWn-a9PUOYcA" interceptionKind="InterceptAll" base_Property="_d7If0PwkEeGWn-a9PUOYcA"/>
<C_Cpp:Include xmi:id="__rP4oPxWEeGOK9t90vpALA" preBody="#define TRACEPOINT_CREATE_PROBES&#xA;#define TRACEPOINT_DEFINE" header="[import org::eclipse::papyrus::qompass::modellibs::tracing::acceleo::traceLTTng/]&#xA;&#xA;[template public LTTngTP(clazz : Class)]&#xA;[clazz.declareTP()/]&#xA;[/template]" base_class="_rGPjgPxWEeGOK9t90vpALA"/>
- <FCM:Template xmi:id="_bKW5IPxXEeGOK9t90vpALA" base_Element="_YU5H4PxXEeGOK9t90vpALA" kind="LoopOperations"/>
+ <FCM:Template xmi:id="_bKW5IPxXEeGOK9t90vpALA" base_Element="_YU5H4PxXEeGOK9t90vpALA" kind="LoopOperations">
+ <helper xmi:type="FCM:BindingHelper" href="pathmap://QML_CORE/core.uml#_nLe_sHJDEeOMF7YEvnQt5g"/>
+ </FCM:Template>
<C_Cpp:ExternLibrary xmi:id="_t_sHUPzOEeGKDvxFM1SZ_g" base_Package="_nAkZEPzOEeGKDvxFM1SZ_g">
<libs>lttng-ust</libs>
<libs>dl</libs>
@@ -754,8 +756,8 @@ return processID;</body>
<FCM:InteractionComponent xmi:id="__yL98PzhEeGe5LUTfvP5hQ" base_Class="_pwl_MPxWEeGOK9t90vpALA"/>
<C_Cpp:ManualGeneration xmi:id="_KSTlgCdaEeKGdt7FoegMYA" extensionBody="c" base_Class="_rGPjgPxWEeGOK9t90vpALA"/>
<FCM:InterceptionRule xmi:id="_vt_HYSdbEeKGdt7FoegMYA" interceptionKind="InterceptAllIn" base_Property="_vt7dASdbEeKGdt7FoegMYA"/>
- <l2:Create xmi:id="_X1okQCmiEeKp-eCvZDLsaw" base_BehavioralFeature="_UvQpMCmiEeKp-eCvZDLsaw"/>
- <l2:Destroy xmi:id="_ZJYEECmiEeKp-eCvZDLsaw" base_BehavioralFeature="_VUW6UCmiEeKp-eCvZDLsaw"/>
+ <standard:Create xmi:id="_X1okQCmiEeKp-eCvZDLsaw" base_BehavioralFeature="_UvQpMCmiEeKp-eCvZDLsaw"/>
+ <standard:Destroy xmi:id="_ZJYEECmiEeKp-eCvZDLsaw" base_BehavioralFeature="_VUW6UCmiEeKp-eCvZDLsaw"/>
<FCM:ContainerRule xmi:id="_NtAukCqLEeKGrchWittz_g" base_Class="_If04ACqLEeKGrchWittz_g" kind="LightWeightOORule">
<forConfig xmi:type="FCM:ConfigOption" href="pathmap://QML_CORE/core.uml#_u6LqoH7eEd-FNNgSS03RxQ"/>
</FCM:ContainerRule>
@@ -766,7 +768,9 @@ return processID;</body>
<FCM:UseInstanceConfigurator xmi:id="_gH1RQC8DEeKwPrQVP28AQw" base_Class="_If04ACqLEeKGrchWittz_g" configurator="_nTMOYKbnEeC0_qP7CUZIiQ"/>
<FCM:InstanceConfigurator xmi:id="_nUB1YC8HEeKwPrQVP28AQw" base_Class="_nUAnQC8HEeKwPrQVP28AQw"/>
<C_Cpp:Include xmi:id="_gvf4IDHKEeKt1a2SZnJmwg" preBody="#define TRACEPOINT_CREATE_PROBES&#xA;#define TRACEPOINT_DEFINE" header="[import org::eclipse::papyrus::qompass::modellibs::tracing::acceleo::traceLTTng/]&#xA;&#xA;[template public LTTngTP(intf : Interface)]&#xA;[intf.declareTP()/]&#xA;[/template]" base_class="_gveqADHKEeKt1a2SZnJmwg"/>
- <FCM:Template xmi:id="_gvnM4DHKEeKt1a2SZnJmwg" base_Element="_gveqADHKEeKt1a2SZnJmwg"/>
+ <FCM:Template xmi:id="_gvnM4DHKEeKt1a2SZnJmwg" base_Element="_gveqADHKEeKt1a2SZnJmwg">
+ <helper xmi:type="FCM:BindingHelper" href="pathmap://QML_CORE/core.uml#_mFUQALsMEeO0n5elMxN1LQ"/>
+ </FCM:Template>
<C_Cpp:ManualGeneration xmi:id="_gvnz8DHKEeKt1a2SZnJmwg" extensionBody="c" base_Class="_gveqADHKEeKt1a2SZnJmwg"/>
<C_Cpp:ManualGeneration xmi:id="_WUbVADV7EeKGAYOVxzQeAg" extensionBody="c" base_Class="_C4FREDV7EeKGAYOVxzQeAg"/>
<C_Cpp:Include xmi:id="_ZdHkQDV7EeKGAYOVxzQeAg" header="[import org::eclipse::papyrus::qompass::designer::core::acceleo::UMLTool/]&#xA;[import org::eclipse::papyrus::qompass::designer::core::acceleo::TransformationContext/]&#xA;&#xA;[template public LTTngTP(cl : Classifier)]&#xA;#include &lt;lttng/tracepoint.h>&#xA;&#xA;TRACEPOINT_MODEL_EMF_URI(UMLmodel, starting, &quot;[getSourceRoot().getURI()/]&quot;)&#xA;[/template]&#xA;" base_class="_C4FREDV7EeKGAYOVxzQeAg"/>

Back to the top