Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnsgar Radermacher2013-09-11 16:52:39 +0000
committerAnsgar Radermacher2013-09-11 16:52:39 +0000
commit379f22556e2d58fa2ef0eeca92d326ca7d7b4518 (patch)
treedf299a0b0a251fde963fd4c68e6f1da6e3c4748c /extraplugins
parent7014ef8105b6c7d743494c15c89b49d7e3916749 (diff)
downloadorg.eclipse.papyrus-379f22556e2d58fa2ef0eeca92d326ca7d7b4518.tar.gz
org.eclipse.papyrus-379f22556e2d58fa2ef0eeca92d326ca7d7b4518.tar.xz
org.eclipse.papyrus-379f22556e2d58fa2ef0eeca92d326ca7d7b4518.zip
Various fixes
Added $NON-NLS-1$ where applicable
Diffstat (limited to 'extraplugins')
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/build.acceleo2
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ConnectorUtils.java21
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/PortUtils.java7
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/StUtils.java24
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Utils.java5
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/acceleo/UMLTool.java57
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/AllocUtils.java50
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/BootLoaderGen.java153
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepCreation.java7
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepUtils.java17
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/AllocationDialog.java3
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ConfigureInstanceDialog.java4
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ConfigurePortDialog.java5
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ConnectorSelectionDialog.java5
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ContainerDialog.java11
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/InstanceConfigurator.java12
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/handlers/GenCollaborationUseHandler.java6
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/handlers/GenConnectionPatternHandler.java4
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/handlers/SelectConnectorHandler.java3
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/DepPlanListener.java4
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/CompImplSync.java6
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/DepPlanSync.java4
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/InstantiateCppInclude.java4
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/InstantiateCppIncludeWOB.java6
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateInstantiation.java4
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/TemplateInstantiationListener.java10
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AllocTransfo.java91
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/CompImplTrafos.java39
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ConnectorReification.java4
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/ContainerTrafo.java5
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/FlattenInteractionComponents.java4
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/InstantiateDepPlan.java3
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/MainModelTrafo.java7
-rw-r--r--extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/UpdateUtils.java5
34 files changed, 340 insertions, 252 deletions
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/build.acceleo b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/build.acceleo
index 677f9370be5..6fe298832a7 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/build.acceleo
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/build.acceleo
@@ -18,7 +18,7 @@
<acceleoCompiler
sourceFolder="${target.folder}"
outputFolder="${target.folder}"
- dependencies="${target.folder}/../../org.eclipse.papyrus.fcm.profile;${target.folder}/../../org.eclipse.papyrus.infra.core;${target.folder}/../../org.eclipse.papyrus.infra.core.sasheditor;${target.folder}/../../org.eclipse.papyrus.uml.diagram.common;${target.folder}/../../org.eclipse.papyrus.uml.tools;${target.folder}/../../org.eclipse.papyrus.infra.emf;${target.folder}/../../org.eclipse.papyrus.infra.services.labelprovider;${target.folder}/../../org.eclipse.papyrus.qompass.designer.vsl;${target.folder}/../../org.eclipse.papyrus.uml.modelexplorer;${target.folder}/../../org.eclipse.papyrus.views.modelexplorer;${target.folder}/../../org.eclipse.papyrus.cpp.profile;${target.folder}/../../org.eclipse.papyrus.acceleo;"
+ dependencies="${target.folder}/../../org.eclipse.papyrus.fcm.profile;${target.folder}/../../org.eclipse.papyrus.infra.core;${target.folder}/../../org.eclipse.papyrus.infra.core.sasheditor;${target.folder}/../../org.eclipse.papyrus.uml.diagram.common;${target.folder}/../../org.eclipse.papyrus.uml.tools.utils;${target.folder}/../../org.eclipse.papyrus.infra.emf;${target.folder}/../../org.eclipse.papyrus.infra.services.labelprovider;${target.folder}/../../org.eclipse.papyrus.uml.tools;${target.folder}/../../org.eclipse.papyrus.infra.services.validation;${target.folder}/../../org.eclipse.papyrus.qompass.designer.vsl;${target.folder}/../../org.eclipse.papyrus.uml.modelexplorer;${target.folder}/../../org.eclipse.papyrus.cpp.profile;${target.folder}/../../org.eclipse.papyrus.acceleo;"
binaryResource="false"
packagesToRegister="">
</acceleoCompiler>
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ConnectorUtils.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ConnectorUtils.java
index 1651a2eb7f6..10c88411a9f 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ConnectorUtils.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/ConnectorUtils.java
@@ -169,15 +169,26 @@ public class ConnectorUtils {
* @param composite A composite class
* @param partA A part within the composite
* @param partB Another part within the composite
- * @return true, if a connector between the parts A and B could be
- * found within the passed composite
+ * @return a connector, if it connects the parts A and B could within the passed composite, or null if no
+ * such connector exists
*/
- public static boolean existsConnector(Class composite, Property partA, Property partB) {
+ public static Connector getConnector(Class composite, Property partA, Property partB) {
for (Connector connector : composite.getOwnedConnectors()) {
if (ConnectorUtils.connectsPart(connector, partA) && ConnectorUtils.connectsPart(connector, partB)) {
- return true;
+ return connector;
}
}
- return false;
+ return null;
+ }
+
+ /**
+ * @param composite A composite class
+ * @param partA A part within the composite
+ * @param partB Another part within the composite
+ * @return true, if a connector between the parts A and B could be
+ * found within the passed composite
+ */
+ public static boolean existsConnector(Class composite, Property partA, Property partB) {
+ return getConnector(composite, partA, partB) != null;
}
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/PortUtils.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/PortUtils.java
index c488c01eda0..70d0440d3de 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/PortUtils.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/PortUtils.java
@@ -24,6 +24,7 @@ import org.eclipse.uml2.uml.EncapsulatedClassifier;
import org.eclipse.uml2.uml.Interface;
import org.eclipse.uml2.uml.Port;
import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.util.UMLUtil;
public class PortUtils {
@@ -72,7 +73,7 @@ public class PortUtils {
* @return
*/
public static org.eclipse.papyrus.FCM.Port getFCMport(Port port) {
- return StUtils.getApplication(port, org.eclipse.papyrus.FCM.Port.class);
+ return UMLUtil.getStereotypeApplication(port, org.eclipse.papyrus.FCM.Port.class);
}
/**
@@ -92,7 +93,7 @@ public class PortUtils {
// TODO: for the moment, don't add aggregated ports to list.
/*
- * ComponentType compType = = StUtils.getApplication (ec, ComponentType.class);
+ * ComponentType compType = = UMLUtil.getStereotypeApplication (ec, ComponentType.class);
* for (ContainerRule rule : compType.getContainerRule ())
* {
* if ((rule.getExtensionKind () == ContainerExtKind.AGGREGATION) &&
@@ -155,7 +156,7 @@ public class PortUtils {
org.eclipse.papyrus.FCM.Port fcmPort = getFCMport(port);
org.eclipse.uml2.uml.Class cl;
if (isTemplatePort(port)) {
- TemplatePort tp = StUtils.getApplication(port, TemplatePort.class);
+ TemplatePort tp = UMLUtil.getStereotypeApplication(port, TemplatePort.class);
if (tp.getBoundType() == null) {
System.err.println("Problems, problems"); //$NON-NLS-1$
cl = fcmPort.getKind().getBase_Class();
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 db25df04ea0..de27a49d5f6 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
@@ -145,26 +145,6 @@ public class StUtils {
}
/**
- * Return the stereotype application by passing an element of the static profile
- *
- * @param element
- * the UML model element
- * @param clazz
- * the class of an element of a static profile. Compatible sub-types will be returned as well
- * @return the stereotype application (first compatible with passed clazz) or null
- */
- @SuppressWarnings("unchecked")
- public static <T extends EObject> T getApplication(Element element, java.lang.Class<T> clazz) {
- for(EObject stereoApplication : element.getStereotypeApplications()) {
- // check whether the stereotype is an instance of the passed parameter clazz
- if(clazz.isInstance(stereoApplication)) {
- return (T)stereoApplication;
- }
- }
- return null;
- }
-
- /**
* Apply a stereotype. The stereotype is not applied, if already a sub-stereotype is applied.
* If you want to apply the new stereotype also in this case, use applyExact instead.
*
@@ -220,7 +200,7 @@ public class StUtils {
*/
public static <T extends EObject> T applyApp(Element element, java.lang.Class<T> clazz) {
if(apply(element, clazz) != null) {
- return getApplication(element, clazz);
+ return UMLUtil.getStereotypeApplication(element, clazz);
}
return null;
}
@@ -446,7 +426,7 @@ public class StUtils {
}
public static org.eclipse.papyrus.FCM.Connector getConnector(Connector connector) {
- return getApplication(connector, org.eclipse.papyrus.FCM.Connector.class);
+ return UMLUtil.getStereotypeApplication(connector, org.eclipse.papyrus.FCM.Connector.class);
}
public static boolean isConnector(Connector candidate) {
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Utils.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Utils.java
index 99e53bce0d8..09c9ffb5dec 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Utils.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/Utils.java
@@ -45,6 +45,7 @@ import org.eclipse.uml2.uml.Package;
import org.eclipse.uml2.uml.Port;
import org.eclipse.uml2.uml.Property;
import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.util.UMLUtil;
public class Utils {
@@ -443,7 +444,7 @@ public class Utils {
* @return
*/
public static EList<ContainerRule> getRules(Class component) {
- RuleApplication ruleApplication = StUtils.getApplication(component, RuleApplication.class);
+ RuleApplication ruleApplication = UMLUtil.getStereotypeApplication(component, RuleApplication.class);
if(ruleApplication != null) {
return ruleApplication.getContainerRule();
}
@@ -486,7 +487,7 @@ public class Utils {
}
else if(el instanceof Class) {
if(StUtils.isApplied(el, ContainerRule.class)) {
- ContainerRule rule = StUtils.getApplication((Class)el, ContainerRule.class);
+ ContainerRule rule = UMLUtil.getStereotypeApplication((Class)el, ContainerRule.class);
contRuleList.add(rule);
}
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/acceleo/UMLTool.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/acceleo/UMLTool.java
index f4dcd120a9d..71611792eac 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/acceleo/UMLTool.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/acceleo/UMLTool.java
@@ -27,25 +27,22 @@ import org.eclipse.papyrus.C_Cpp.Typedef;
import org.eclipse.papyrus.qompass.designer.core.StUtils;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Classifier;
-import org.eclipse.uml2.uml.DataType;
import org.eclipse.uml2.uml.Dependency;
import org.eclipse.uml2.uml.Element;
-import org.eclipse.uml2.uml.Enumeration;
import org.eclipse.uml2.uml.Interface;
import org.eclipse.uml2.uml.InterfaceRealization;
import org.eclipse.uml2.uml.Model;
import org.eclipse.uml2.uml.NamedElement;
import org.eclipse.uml2.uml.Namespace;
import org.eclipse.uml2.uml.Operation;
-import org.eclipse.uml2.uml.Package;
import org.eclipse.uml2.uml.Parameter;
import org.eclipse.uml2.uml.ParameterDirectionKind;
import org.eclipse.uml2.uml.PrimitiveType;
import org.eclipse.uml2.uml.Property;
import org.eclipse.uml2.uml.Relationship;
import org.eclipse.uml2.uml.Type;
-import org.eclipse.uml2.uml.UMLFactory;
import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
@@ -187,48 +184,6 @@ public class UMLTool {
}
/**
- * This method returns all parameters of an operation in a flat way,
- * i.e. for parameters typed by a data-type, multiple parameters are
- * returned.
- * TODO: support arbitrary nesting (recursive function)
- */
- public EList<Parameter> flatParameters(Operation operation) {
- EList<Parameter> parameters = new BasicEList<Parameter>();
-
- for(Parameter parameter : operation.getOwnedParameters()) {
- Type type = parameter.getType();
- if(parameter.getUpper() == -1) {
- // multiplicity = "*"
- Parameter containedParam = UMLFactory.eINSTANCE.createParameter();
- containedParam.setName(parameter.getName() + "_length");
- NamedElement basicTypes = type.getModel().getMember("CORBA");
- if(basicTypes instanceof Package) {
- NamedElement ulong = ((Package)basicTypes).getMember("ULong");
- if(ulong instanceof Type) {
- containedParam.setType((Type)ulong);
- }
- }
- parameters.add(containedParam);
- }
- if((type instanceof PrimitiveType) || (type instanceof Enumeration)) {
- // these two are sub-types of DataType and are therefore checked before
- parameters.add(parameter);
- }
- if(type instanceof DataType) {
- for(Property property : ((DataType)type).getAttributes()) {
- Parameter containedParam = UMLFactory.eINSTANCE.createParameter();
- containedParam.setName(parameter.getName() + "_" + property.getName());
- containedParam.setType(property.getType());
- parameters.add(containedParam);
- }
- } else {
- parameters.add(parameter);
- }
- }
- return parameters;
- }
-
- /**
* This method returns all types that are referenced by a classifier. This includes
* attribute types, types within operations as well as inherited types.
* This is useful to generate the #includes
@@ -290,7 +245,7 @@ public class UMLTool {
*/
public static String paramName(Parameter parameter) {
if(parameter.getDirection().getValue() == ParameterDirectionKind.RETURN) {
- return "retValue";
+ return "retValue"; //$NON-NLS-1$
} else {
return parameter.getName();
}
@@ -409,7 +364,7 @@ public class UMLTool {
*/
public static String dereferenceTypedef(Type type) {
if(type instanceof PrimitiveType) {
- Typedef cppType = StUtils.getApplication(type, Typedef.class);
+ Typedef cppType = UMLUtil.getStereotypeApplication(type, Typedef.class);
if(cppType != null) {
return cppType.getDefinition();
}
@@ -420,11 +375,13 @@ public class UMLTool {
public static String encodeID(String uri) {
// _ becomes escape character. original _ is __, '-' becomes _M
- return uri.replace("_", "__").replace("-", "_M");
+ return uri.
+ replace("_", "__"). //$NON-NLS-1$ //$NON-NLS-2$
+ replace("-", "_M"); //$NON-NLS-1$ //$NON-NLS-2$
}
public static String decodeID(String encodedURI) {
- String result = "";
+ String result = ""; //$NON-NLS-1$
for(int i = 0; i < encodedURI.length(); i++) {
char c = encodedURI.charAt(i);
if(c == '_') {
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/AllocUtils.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/AllocUtils.java
index cb28e000661..d70c8c7f8ee 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/AllocUtils.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/AllocUtils.java
@@ -25,6 +25,7 @@ import org.eclipse.papyrus.MARTE.MARTE_Foundations.Alloc.Allocate;
import org.eclipse.papyrus.qompass.designer.core.ConnectorUtils;
import org.eclipse.papyrus.qompass.designer.core.Log;
import org.eclipse.papyrus.qompass.designer.core.StUtils;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
import org.eclipse.uml2.uml.Abstraction;
import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Classifier;
@@ -40,9 +41,14 @@ import org.eclipse.uml2.uml.Port;
import org.eclipse.uml2.uml.Property;
import org.eclipse.uml2.uml.Slot;
import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.util.UMLUtil;
public class AllocUtils {
+ public static final String startPortName = "start"; //$NON-NLS-1$
+
+ public static final String startPortType = "IStart"; //$NON-NLS-1$
+
/**
* Retrieve a list of nodes to which the instance is allocated to *or*
* to which one of the contained instances is allocated to (recursively)
@@ -57,6 +63,30 @@ public class AllocUtils {
}
return nodeList;
}
+
+ /**
+ * Retrieve a list of nodes to which the instance is allocated to *or*
+ * to which one of the contained instances is allocated to (recursively)
+ *
+ * @param instanceAttribute an attribute within a composite that represents a component instance
+ * or a set thereof, if the composite itself is instantiated multiple times)
+ * @return a list of nodes
+ */
+ public static Property getThreadAlloc(Property instanceAttribute) {
+ for (DirectedRelationship relation : instanceAttribute.getSourceDirectedRelationships()) {
+ if (StUtils.isApplied(relation, Allocate.class)) {
+ if (relation.getTargets().size() != 1) continue;
+ Element targetElem = relation.getTargets().get(0);
+ if (!(targetElem instanceof Property)) continue;
+ Property target = (Property) targetElem;
+ if (StUtils.isApplied(target.getType(), SwSchedulableResource.class)) {
+ return target;
+ }
+ }
+ }
+ return null;
+ }
+
/**
* Retrieve a list of nodes to which the instance is allocated to *or*
@@ -264,7 +294,7 @@ public class AllocUtils {
for(Slot slot : slots) {
Property containedProperty = (Property)slot.getDefiningFeature();
- Fragment fragment = StUtils.getApplication(containedProperty, Fragment.class);
+ Fragment fragment = UMLUtil.getStereotypeApplication(containedProperty, Fragment.class);
if(fragment != null) {
// TODO
/*
@@ -294,4 +324,22 @@ public class AllocUtils {
}
}
}
+
+ /**
+ * Return the start Port of a component, i.e. a port that corresponds to the "magic" port name
+ * start and is typed with the interface IStart
+ *
+ * @param component a component implementation
+ * @return The start port or null
+ */
+ public static Port getStartPort(Class component) {
+ Element startPortElem = Utils.getNamedElementFromList(component.getAllAttributes(), startPortName);
+ if (startPortElem instanceof Port) {
+ Port startPort = (Port) startPortElem;
+ if(startPort.getType().getName().equals(startPortType)) {
+ return startPort;
+ }
+ }
+ return null;
+ }
}
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 f62a99a1d76..be8f2ff9bce 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
@@ -46,16 +46,26 @@ import org.eclipse.uml2.uml.Slot;
import org.eclipse.uml2.uml.StructuralFeature;
import org.eclipse.uml2.uml.UMLPackage;
import org.eclipse.uml2.uml.ValueSpecification;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* The task of the boot-loader is twofold: create the instances of all
* implementations (non-recursive).
* - create Connections: what should be done?
+ *
* TODO: factor out common code (TemplateInstantiation mechanism & createConnections below)
- * make non-static class (representing the bootLoader)
+ * Split between C++ specific and C++ independent aspects
*/
public class BootLoaderGen {
+ final public static String initOpName = "init"; //$NON-NLS-1$
+
+ final public static String NL = "\n"; //$NON-NLS-1$
+
+ final public static String EOL = ";\n"; //$NON-NLS-1$
+
+ final public static String bootloaderName = "BootLoader"; //$NON-NLS-1$
+
/**
* Create a new boot-loader in a specific package
* (which represents a node of the system).
@@ -69,7 +79,7 @@ public class BootLoaderGen {
// place in root (getModel()) to avoid the problem that the declaration of the bootLoader
// instance is within a namespace (a static attribute on the model level would not solve the
// problem as it must be accessed by function main).
- m_bootLoader = copy.target.createOwnedClass("BootLoader", false);
+ m_bootLoader = copy.target.createOwnedClass(bootloaderName, false);
outputSizeof = false;
m_copy = copy;
Class template = (Class)Utils.getQualifiedElement(copy.source, bootloaderQNAME);
@@ -98,61 +108,34 @@ public class BootLoaderGen {
*/
Include cppInclude = StUtils.applyApp(m_bootLoader, Include.class);
Object existingBody = cppInclude.getBody();
- String existingBodyStr = "";
+ String existingBodyStr = ""; //$NON-NLS-1$
if(existingBody instanceof String) {
- existingBodyStr = (String)existingBody + "\n";
+ existingBodyStr = (String)existingBody + NL;
}
String bodyStr =
- "#include <unistd.h> // for sleep\n" +
- "\n" +
- "int nodeIndex = " + nodeIndex + ";\n" +
- "int numberOfNodes = " + numberOfNodes + ";\n";
+ "#include <unistd.h> // for sleep\n" + //$NON-NLS-1$
+ "\n" + //$NON-NLS-1$
+ "int nodeIndex = " + nodeIndex + ";" + NL + //$NON-NLS-1$//$NON-NLS-2$
+ "int numberOfNodes = " + numberOfNodes + ";" + NL; //$NON-NLS-1$ //$NON-NLS-2$
+
if(outputSizeof) {
bodyStr +=
- "#include <iostream>\n" +
- "using namespace std;\n";
+ "#include <iostream>" + NL + //$NON-NLS-1$
+ "using namespace std;" + NL; //$NON-NLS-1$
}
cppInclude.setBody(existingBodyStr + bodyStr);
// bootLoader.createOwnedAttribute (mainInstance.getName (), composite);
- // factor with template instantiations, actual is composite??
- /*
- * Operation operation = template.getOwnedOperation ("createInstances", null, null);
- * Operation newOperation =
- * ModelTransformations.copyOperation (operation, bootLoader);
- * // operation.getMethod ();
- * // Method method = x;
- * // AcceleoDriver.bind (method.toString (), mainInstance);
- * Behavior behavior = operation.getMethods ().get (0);
- * if (behavior instanceof OpaqueBehavior) {
- * OpaqueBehavior newBehavior = (OpaqueBehavior)
- * bootLoader.createOwnedBehavior ("b:" + operation.getName (),
- * UMLPackage.eINSTANCE.getOpaqueBehavior ());
- * newOperation.getMethods ().add (newBehavior);
- * OpaqueBehavior opaqueBehavior = (OpaqueBehavior) behavior;
- * Iterator<String> bodies = opaqueBehavior.getBodies ().iterator ();
- * Iterator<String> languages = opaqueBehavior.getLanguages ().iterator ();
- * while (bodies.hasNext ())
- * {
- * String body = bodies.next ();
- * String language = languages.next ();
- * String newBody = AcceleoDriver.bind (body, mainInstance);
- * newBehavior.getBodies ().add (newBody);
- * newBehavior.getLanguages().add (language);
- * }
- * }
- */
- m_initCode = "";
- m_initCodeRun = "";
+ m_initCode = ""; //$NON-NLS-1$
+ m_initCodeRun = ""; //$NON-NLS-1$
m_activation = new HashMap<Class, EList<String>>();
- m_initCodeCConnections = "";
- m_initCodeCConfig = "";
+ m_initCodeCConnections = ""; //$NON-NLS-1$
+ m_initCodeCConfig = ""; //$NON-NLS-1$
if(outputSizeof) {
- m_initCode += "cout << \"sizeof bootloader: \" << sizeof (bootloader) << endl;\n";
- // m_initCode += "cout << \"sizeof bootloader: \" << sizeof (bootloader) << endl;\n";
+ m_initCode += "cout << \"sizeof bootloader: \" << sizeof (bootloader) << endl;" + EOL; //$NON-NLS-1$
}
}
@@ -184,7 +167,7 @@ public class BootLoaderGen {
// - the variable name, if done by the bootloader
path = UMLTool.varName(path); // use variable name instead.
}
- path += "." + pathElement.getDefiningFeature().getName();
+ path += "." + pathElement.getDefiningFeature().getName(); //$NON-NLS-1$
previousInstantiatedByBL = CompImplTrafos.instantiateViaBootloader(pathElement.getDefiningFeature());
}
}
@@ -220,7 +203,7 @@ public class BootLoaderGen {
String referenceVarName = getPath(referencePath, instance, false);
// add code for initialization
- m_initCode += accessName + " = &" + referenceVarName + ";\n";
+ m_initCode += accessName + " = &" + referenceVarName + EOL; //$NON-NLS-1$
// is a reference which should not be called via activation & start
// return now and skip code below
return implemPart;
@@ -229,7 +212,7 @@ public class BootLoaderGen {
// let bootloader instantiate
implemPart = m_bootLoader.createOwnedAttribute(/* "i_" + */varName, implementation);
// add code for initialization
- m_initCode += accessName + " = &" + varName + ";\n";
+ m_initCode += accessName + " = &" + varName + EOL; //$NON-NLS-1$
implemPart.setIsComposite(true);
}
}
@@ -239,7 +222,7 @@ public class BootLoaderGen {
implemPart.setIsComposite(true);
}
if(outputSizeof) {
- m_initCode += "cout << \"sizeof " + implementation.getName() + ": \" << sizeof (" + varName + ") << endl;\n";
+ m_initCode += "cout << \"sizeof " + implementation.getName() + ": \" << sizeof (" + varName + ") << endl;" + EOL; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
}
// if start thread => existing thread activation interceptor? Connection?
@@ -250,17 +233,17 @@ public class BootLoaderGen {
// implementation contains get_start operation => has start port
// which is called automatically
- String get_start = PrefixConstants.getP_Prefix + "start";
+ String get_start = PrefixConstants.getP_Prefix + "start"; //$NON-NLS-1$
// Need to check whether implementation is an executor which is encapsulated in a container. In this case, only
// the method of the container and not the method of the executor (which owns the same port) maybe called.
// Currently, this check is based on the use of "executor" as reserved part name (validation checks that the
// user does not use this name for application components)
if(hasUnconnectedStartRoutine(m_copy, implementation, containerSlot)) {
- if(m_initCodeRun.equals("")) {
+ if(m_initCodeRun.equals("")) { //$NON-NLS-1$
// call start's run method
// TODO: Need path that uses the right dereference operator ("->" or ".")
- m_initCodeRun = varName + "." + get_start + "()->run ();\n";
+ m_initCodeRun = varName + "." + get_start + "()->run()" + EOL; //$NON-NLS-1$ //$NON-NLS-2$
} else {
throw new TransformationException("There must be at most one blocking \"run\" operation per node. " +
"refuse to add \"run\" call for component instance \"" + varName + "\". Existing invocations: " + m_initCodeRun);
@@ -273,7 +256,7 @@ public class BootLoaderGen {
if(varNameList == null) {
varNameList = new BasicEList<String>();
}
- varNameList.add(varName + ".");
+ varNameList.add(varName + "."); //$NON-NLS-1$
m_activation.put(implementation, varNameList);
}
@@ -287,7 +270,7 @@ public class BootLoaderGen {
}
if(bCreateConn) {
- m_initCodeCConnections += varName + ".createConnections ();\n";
+ m_initCodeCConnections += varName + ".createConnections();\n"; //$NON-NLS-1$
}
return implemPart;
}
@@ -304,13 +287,9 @@ public class BootLoaderGen {
*/
public static boolean hasUnconnectedStartRoutine(Copy copy, Class implementation, Slot containerSlot) {
if(implementation != null) {
- Element startPortElem = Utils.getNamedElementFromList(implementation.getAllAttributes(), "start");
- if(startPortElem instanceof Port) {
- Port startPort = (Port)startPortElem;
- if(startPort.getType().getName().equals("IStart")) {
- return !isConnected(copy, containerSlot, startPort);
- }
-
+ Port startPort = AllocUtils.getStartPort(implementation);
+ if (startPort != null) {
+ return !isConnected(copy, containerSlot, startPort);
}
}
return false;
@@ -328,11 +307,11 @@ public class BootLoaderGen {
*/
public static boolean hasUnconnectedLifeCycle(Copy copy, Class implementation, Slot containerSlot) {
if(implementation != null) {
- Element lcPortElem = Utils.getNamedElementFromList(implementation.getAllAttributes(), "lc");
+ Element lcPortElem = Utils.getNamedElementFromList(implementation.getAllAttributes(), "lc"); //$NON-NLS-1$
if(lcPortElem instanceof Port) {
Port lcPort = (Port)lcPortElem;
// check, if port typed with ILifeCycle interface
- if(lcPort.getType().getName().equals("ILifeCycle")) {
+ if(lcPort.getType().getName().equals("ILifeCycle")) { //$NON-NLS-1$
return !isConnected(copy, containerSlot, lcPort);
}
}
@@ -376,15 +355,15 @@ public class BootLoaderGen {
String varName = getPath(slotPath, instance, false);
StructuralFeature sf = slot.getDefiningFeature();
if(sf == null) {
- throw new TransformationException("A slot for instance " + varName +
- " has no defining feature");
+ throw new TransformationException("A slot for instance " + varName + //$NON-NLS-1$
+ " has no defining feature"); //$NON-NLS-1$
}
for(ValueSpecification value : slot.getValues()) {
// only set value, if not null
if(value.stringValue() != null) {
- m_initCodeCConfig += varName + " = " + value.stringValue() + ";\n";
+ m_initCodeCConfig += varName + " = " + value.stringValue() + EOL; //$NON-NLS-1$
}
}
}
@@ -397,28 +376,28 @@ public class BootLoaderGen {
public void addInit() {
// TODO: use template
- Operation init = m_bootLoader.createOwnedOperation("init", null, null);
+ Operation init = m_bootLoader.createOwnedOperation(initOpName, null, null);
OpaqueBehavior initBehavior = (OpaqueBehavior)
- m_bootLoader.createOwnedBehavior("init", UMLPackage.eINSTANCE.getOpaqueBehavior());
+ m_bootLoader.createOwnedBehavior(initOpName, UMLPackage.eINSTANCE.getOpaqueBehavior());
init.getMethods().add(initBehavior);
- initBehavior.getLanguages().add("C/C++");
- String code = m_initCode + "\n";
+ initBehavior.getLanguages().add(CompImplTrafos.progLang);
+ String code = m_initCode + "\n"; //$NON-NLS-1$
if(m_initCodeCConfig.length() > 0) {
- code += "\n// instance configuration\n" +
- m_initCodeCConfig + "\n";
+ code += "\n// instance configuration\n" + //$NON-NLS-1$
+ m_initCodeCConfig + "\n"; //$NON-NLS-1$
}
if(m_initCodeCConnections.length() > 0) {
- code += "\n// create connections between instances\n" +
- m_initCodeCConnections + "\n";
+ code += "\n// create connections between instances\n" + //$NON-NLS-1$
+ m_initCodeCConnections + "\n"; //$NON-NLS-1$
}
Comparator<Class> comparator = new Comparator<Class>() {
public int compare(Class clazz1, Class clazz2) {
- InitPrecedence precedenceC1 = StUtils.getApplication(clazz1, InitPrecedence.class);
- InitPrecedence precedenceC2 = StUtils.getApplication(clazz2, InitPrecedence.class);
+ InitPrecedence precedenceC1 = UMLUtil.getStereotypeApplication(clazz1, InitPrecedence.class);
+ InitPrecedence precedenceC2 = UMLUtil.getStereotypeApplication(clazz2, InitPrecedence.class);
if(precedenceC1 != null) {
// need to use named comparison instead of precedenceC1.getInvokeAfter ().contains (clazz2)
// since class referenced by stereotype attribute still points to element in source model
@@ -453,36 +432,34 @@ public class BootLoaderGen {
}
};
Class[] activationKeys = m_activation.keySet().toArray(new Class[0]);
- String get_lc = PrefixConstants.getP_Prefix + "lc";
+ String get_lc = PrefixConstants.getP_Prefix + "lc"; //$NON-NLS-1$
if(activationKeys.length > 0) {
Arrays.sort(activationKeys, comparator);
- code += "// activation code\n";
+ code += "// activation code\n"; //$NON-NLS-1$
for(Class implementation : activationKeys) {
EList<String> varNameList = m_activation.get(implementation);
for(String varName : varNameList) {
- code += varName + get_lc + " ()->activate ();\n";
+ code += varName + get_lc + "()->activate();\n"; //$NON-NLS-1$
}
}
}
- if(!m_initCodeRun.equals("")) {
- code += "// initial user start\n" +
- m_initCodeRun;
+ if(m_initCodeRun.length() > 0) {
+ code += "// initial user start\n" + m_initCodeRun; //$NON-NLS-1$
} else {
- // no run code - assume that application should not return immediately
- // enter an endless sleep
- // TODO: issue user warning
- code += "// sleep forever (since there is no user \"start\" call)\n" +
- "for (;;) { sleep (1000); }\n";
+ // this change broke client-server example!
+ code += "// sleep forever\n";
+ code += "for (;;) { sleep(100); }\n";
+ // throw new TransformationRTException("no component implements the initial start. Assure that one component inherits from the CStart component");
}
if(activationKeys.length > 0) {
- code += "// deactivation code (reverse order)\n";
+ code += "// deactivation code (reverse order)\n"; //$NON-NLS-1$
// traverse in reverse order
for(int i = activationKeys.length - 1; i >= 0; i--) {
Class implementation = activationKeys[i];
EList<String> varNameList = m_activation.get(implementation);
for(String varName : varNameList) {
- code += varName + get_lc + " ()->deactivate ();\n";
+ code += varName + get_lc + "()->deactivate();\n"; //$NON-NLS-1$
}
}
}
@@ -496,7 +473,7 @@ public class BootLoaderGen {
private Class m_bootLoader;
- private final static String bootloaderQNAME = "core::composites::BootLoader";
+ private final static String bootloaderQNAME = "core::composites::BootLoader"; //$NON-NLS-1$
/**
* Initialization code, in particular assignment of part properties within composites
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepCreation.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepCreation.java
index e1c679a33d2..0135427f016 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepCreation.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepCreation.java
@@ -37,6 +37,7 @@ import org.eclipse.uml2.uml.StructuralFeature;
import org.eclipse.uml2.uml.Type;
import org.eclipse.uml2.uml.UMLPackage;
import org.eclipse.uml2.uml.ValueSpecification;
+import org.eclipse.uml2.uml.util.UMLUtil;
public class DepCreation {
@@ -217,7 +218,7 @@ public class DepCreation {
is.getClassifiers().add(implementation);
// add connector and container implementations
- RuleApplication ruleApplication = StUtils.getApplication(implementation, RuleApplication.class);
+ RuleApplication ruleApplication = UMLUtil.getStereotypeApplication(implementation, RuleApplication.class);
if((ruleApplication != null) && (createSlotsForConfigValues)) {
for(ContainerRule rule : ruleApplication.getContainerRule()) {
addConfigurationOfContainer(rule, is);
@@ -225,7 +226,7 @@ public class DepCreation {
}
for(Connector connector : implementation.getOwnedConnectors()) {
- org.eclipse.papyrus.FCM.Connector fcmConn = StUtils.getApplication(connector, org.eclipse.papyrus.FCM.Connector.class);
+ org.eclipse.papyrus.FCM.Connector fcmConn = UMLUtil.getStereotypeApplication(connector, org.eclipse.papyrus.FCM.Connector.class);
if(fcmConn != null) {
String partName = name + "." + connector.getName();
InteractionComponent connectorComp = fcmConn.getIc();
@@ -512,7 +513,7 @@ public class DepCreation {
throw new TransformationRTException(is.getName() + " has a slot without defining feature"); //$NON-NLS-1$
}
if(StUtils.isApplied(sf, CopyAttributeValue.class)) {
- CopyAttributeValue cav = StUtils.getApplication(sf,
+ CopyAttributeValue cav = UMLUtil.getStereotypeApplication(sf,
CopyAttributeValue.class);
Property source = cav.getSource();
ValueSpecification vs = getNearestValue(isStack, source);
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepUtils.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepUtils.java
index b2361ce8b99..cef60aca9c0 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepUtils.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/deployment/DepUtils.java
@@ -37,6 +37,7 @@ import org.eclipse.uml2.uml.Slot;
import org.eclipse.uml2.uml.StructuralFeature;
import org.eclipse.uml2.uml.Type;
import org.eclipse.uml2.uml.ValueSpecification;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* Utilities around instances (within deployment plan)
@@ -67,7 +68,7 @@ public class DepUtils {
// now check properties
if(nodes.size() > 1) {
// indicates distribution
- InteractionComponent connImpl = StUtils.getApplication(implemCandidate, InteractionComponent.class);
+ InteractionComponent connImpl = UMLUtil.getStereotypeApplication(implemCandidate, InteractionComponent.class);
// if a connector implementation, it must support distribution (in case of multiple nodes)
// TODO: criteria is not optimal, since a composite may be deployed on multiple nodes,
// but a contained connector might still only connect local parts.
@@ -79,14 +80,14 @@ public class DepUtils {
}
// must fit requirements of all nodes
for(InstanceSpecification nodeInstance : nodes) {
- Target target = StUtils.getApplication(nodeInstance, Target.class);
+ Target target = UMLUtil.getStereotypeApplication(nodeInstance, Target.class);
if(target == null) {
// no target information on instance => try to get this
// information from the node referenced by the instance
- target = StUtils.getApplication(DepUtils.getClassifier(nodeInstance), Target.class);
+ target = UMLUtil.getStereotypeApplication(DepUtils.getClassifier(nodeInstance), Target.class);
}
if(target != null) {
- ImplementationProperties implProps = StUtils.getApplication(implemCandidate, ImplementationProperties.class);
+ ImplementationProperties implProps = UMLUtil.getStereotypeApplication(implemCandidate, ImplementationProperties.class);
if(implProps != null) {
if(!implProps.getArch().contains(target.getTargetArch())) {
return false;
@@ -145,7 +146,7 @@ public class DepUtils {
for(Property groupAttribute : componentType.getAttributes()) {
Type implClass = groupAttribute.getType();
if((implClass instanceof Class) && isImplEligible((Class)implClass, nodes)) {
- InteractionComponent connImpl = StUtils.getApplication(implClass, InteractionComponent.class);
+ InteractionComponent connImpl = UMLUtil.getStereotypeApplication(implClass, InteractionComponent.class);
if((connImpl != null) && connImpl.isForDistribution()) {
// only add distributed connector, if distributed
// don't put check into
@@ -215,7 +216,7 @@ public class DepUtils {
* the deployment plan
*/
public static InstanceSpecification getMainInstance(Package cdp) {
- DeploymentPlan dp = StUtils.getApplication(cdp, DeploymentPlan.class);
+ DeploymentPlan dp = UMLUtil.getStereotypeApplication(cdp, DeploymentPlan.class);
return dp.getMainInstance();
}
@@ -229,7 +230,7 @@ public class DepUtils {
*/
public static void setMainInstance(Package cdp, InstanceSpecification mainInstance) {
StUtils.apply(cdp, DeploymentPlan.class);
- DeploymentPlan dp = StUtils.getApplication(cdp, DeploymentPlan.class);
+ DeploymentPlan dp = UMLUtil.getStereotypeApplication(cdp, DeploymentPlan.class);
dp.setMainInstance(mainInstance);
}
@@ -466,7 +467,7 @@ public class DepUtils {
* @return the programming language
*/
public static String getLanguageFromClassifier(Classifier cl) {
- CodeGenOptions codeGenOpt = StUtils.getApplication(cl, CodeGenOptions.class);
+ CodeGenOptions codeGenOpt = UMLUtil.getStereotypeApplication(cl, CodeGenOptions.class);
if ((codeGenOpt != null) && (codeGenOpt.getProgLanguage() != null)) {
return codeGenOpt.getProgLanguage().getBase_Class().getName();
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/AllocationDialog.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/AllocationDialog.java
index 20157f053ef..0047384008e 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/AllocationDialog.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/AllocationDialog.java
@@ -43,6 +43,7 @@ import org.eclipse.uml2.uml.Classifier;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.InstanceSpecification;
import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* Select a connector type and implementation (group)
@@ -79,7 +80,7 @@ public class AllocationDialog extends SelectionStatusDialog {
public AllocationDialog(Shell parent, Package cdp) {
super(parent);
// m_cdp = cdp;
- m_cdp = StUtils.getApplication(cdp, DeploymentPlan.class);
+ m_cdp = UMLUtil.getStereotypeApplication(cdp, DeploymentPlan.class);
visitedPackages = new BasicEList<Package>();
nodeOrThreadList = new BasicEList<InstanceSpecification>();
nodeOrThreadList.add(null); // dummy entry for no allocation
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ConfigureInstanceDialog.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ConfigureInstanceDialog.java
index 961ad29f437..0f3a67cbe7b 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ConfigureInstanceDialog.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ConfigureInstanceDialog.java
@@ -29,7 +29,6 @@ import org.eclipse.jface.viewers.Viewer;
import org.eclipse.papyrus.FCM.ContainerRule;
import org.eclipse.papyrus.qompass.designer.core.ConfigUtils;
import org.eclipse.papyrus.qompass.designer.core.Description;
-import org.eclipse.papyrus.qompass.designer.core.StUtils;
import org.eclipse.papyrus.qompass.designer.core.Utils;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepCreation;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepPlanUtils;
@@ -65,6 +64,7 @@ import org.eclipse.uml2.uml.Property;
import org.eclipse.uml2.uml.Slot;
import org.eclipse.uml2.uml.Type;
import org.eclipse.uml2.uml.ValueSpecification;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* Select container rules, either from a list of globally defined rules or from
@@ -140,7 +140,7 @@ public class ConfigureInstanceDialog extends SelectionStatusDialog {
m_model = Utils.getUserModel();
m_instance = null;
if(feature instanceof Connector) {
- org.eclipse.papyrus.FCM.Connector fcmConn = StUtils.getApplication(feature,
+ org.eclipse.papyrus.FCM.Connector fcmConn = UMLUtil.getStereotypeApplication(feature,
org.eclipse.papyrus.FCM.Connector.class);
if((fcmConn != null) && (fcmConn.getIc() != null)) {
m_component = fcmConn.getIc().getBase_Class();
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ConfigurePortDialog.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ConfigurePortDialog.java
index 2722d271423..4e75c9928f8 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ConfigurePortDialog.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ConfigurePortDialog.java
@@ -57,6 +57,7 @@ import org.eclipse.uml2.uml.Package;
import org.eclipse.uml2.uml.Port;
import org.eclipse.uml2.uml.Type;
import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* Select container rules, either from a list of globally defined rules or from
@@ -313,7 +314,7 @@ public class ConfigurePortDialog extends SelectionStatusDialog {
return;
}
setEnabled(true);
- org.eclipse.papyrus.FCM.Port fcmPort = StUtils.getApplication(port, org.eclipse.papyrus.FCM.Port.class);
+ org.eclipse.papyrus.FCM.Port fcmPort = UMLUtil.getStereotypeApplication(port, org.eclipse.papyrus.FCM.Port.class);
if(port.getType() != null) {
fType.setText(port.getType().getQualifiedName());
}
@@ -362,7 +363,7 @@ public class ConfigurePortDialog extends SelectionStatusDialog {
getAvailableKinds((Package)el, portKindList, visitedPackages);
}
} else if(el instanceof Class) {
- PortKind portKind = StUtils.getApplication((Class)el, PortKind.class);
+ PortKind portKind = UMLUtil.getStereotypeApplication((Class)el, PortKind.class);
if(portKind != null) {
portKindList.add(portKind);
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ConnectorSelectionDialog.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ConnectorSelectionDialog.java
index 81b2e585d46..49e815c94d6 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ConnectorSelectionDialog.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ConnectorSelectionDialog.java
@@ -50,6 +50,7 @@ import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.Feature;
import org.eclipse.uml2.uml.NamedElement;
import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* Select a connector type and implementation (group)
@@ -112,7 +113,7 @@ public class ConnectorSelectionDialog extends AbstractElementListSelectionDialog
// createLabel(contents, lowerLabel);
fLower = createFilteredList(fLowerGroup);
fFilteredList = fUpper;
- org.eclipse.papyrus.FCM.Connector fcmConnector = StUtils.getApplication(m_selectedConnector, org.eclipse.papyrus.FCM.Connector.class);
+ org.eclipse.papyrus.FCM.Connector fcmConnector = UMLUtil.getStereotypeApplication(m_selectedConnector, org.eclipse.papyrus.FCM.Connector.class);
if(fcmConnector != null) {
// getInitialElementSelections();
initialSelection = fcmConnector.getIc();
@@ -152,7 +153,7 @@ public class ConnectorSelectionDialog extends AbstractElementListSelectionDialog
if(!componentCompBase.isAbstract()) {
// get first superclass that is a component type
Class componentTypeBase = Utils.componentType(componentCompBase);
- componentComp = StUtils.getApplication(componentTypeBase, InteractionComponent.class);
+ componentComp = UMLUtil.getStereotypeApplication(componentTypeBase, InteractionComponent.class);
} else {
// fLower.setEnabled (false);
// fLowerGroup.setEnabled(false);
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ContainerDialog.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ContainerDialog.java
index c214e323d4c..91ffdd1c84a 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ContainerDialog.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/dialogs/ContainerDialog.java
@@ -41,6 +41,7 @@ import org.eclipse.uml2.uml.Class;
import org.eclipse.uml2.uml.Classifier;
import org.eclipse.uml2.uml.Package;
import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* Select container rules, either from a list of globally defined rules
@@ -82,7 +83,7 @@ public class ContainerDialog extends SelectionStatusDialog {
// visitedPackages = new BasicEList<Package> ();
m_rulePropertiesOnly = StUtils.isApplied(componentOrRule, ContainerRule.class);
if(m_rulePropertiesOnly) {
- // m_currentRule = StUtils.getApplication(componentOrRule, ContainerRule.class);
+ // m_currentRule = UMLUtil.getStereotypeApplication(componentOrRule, ContainerRule.class);
} else {
m_component = componentOrRule;
}
@@ -243,7 +244,7 @@ public class ContainerDialog extends SelectionStatusDialog {
Class ruleCl = (Class)
m_component.createNestedClassifier(name, UMLPackage.eINSTANCE.getClass_());
StUtils.apply(ruleCl, ContainerRule.class);
- return StUtils.getApplication(ruleCl, ContainerRule.class);
+ return UMLUtil.getStereotypeApplication(ruleCl, ContainerRule.class);
}
/**
@@ -268,7 +269,7 @@ public class ContainerDialog extends SelectionStatusDialog {
StUtils.apply(m_component, RuleApplication.class);
}
RuleApplication containerConfig =
- StUtils.getApplication(m_component, RuleApplication.class);
+ UMLUtil.getStereotypeApplication(m_component, RuleApplication.class);
containerConfig.getContainerRule().add(rule);
}
@@ -279,7 +280,7 @@ public class ContainerDialog extends SelectionStatusDialog {
*/
void unapplyRule(ContainerRule rule) {
RuleApplication containerConfig =
- StUtils.getApplication(m_component, RuleApplication.class);
+ UMLUtil.getStereotypeApplication(m_component, RuleApplication.class);
int index = containerConfig.getContainerRule().indexOf(rule);
if((index >= 0) && (index < containerConfig.getContainerRule().size())) {
containerConfig.getContainerRule().remove(index);
@@ -294,7 +295,7 @@ public class ContainerDialog extends SelectionStatusDialog {
*/
boolean isRuleApplied(ContainerRule rule) {
RuleApplication containerConfig =
- StUtils.getApplication(m_component, RuleApplication.class);
+ UMLUtil.getStereotypeApplication(m_component, RuleApplication.class);
if(containerConfig != null) {
return containerConfig.getContainerRule().contains(rule);
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/InstanceConfigurator.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/InstanceConfigurator.java
index d51dbb39714..2f111e1617f 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/InstanceConfigurator.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/extensions/InstanceConfigurator.java
@@ -15,15 +15,15 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
-import org.eclipse.uml2.uml.Classifier;
-import org.eclipse.uml2.uml.InstanceSpecification;
-import org.eclipse.uml2.uml.Property;
import org.eclipse.papyrus.FCM.ContainerRule;
import org.eclipse.papyrus.FCM.UseInstanceConfigurator;
import org.eclipse.papyrus.qompass.designer.core.Activator;
-import org.eclipse.papyrus.qompass.designer.core.StUtils;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
import org.eclipse.papyrus.qompass.designer.core.transformations.ContainerContext;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.InstanceSpecification;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
@@ -48,7 +48,7 @@ public class InstanceConfigurator {
*/
public static void configureInstance(InstanceSpecification instance, Property componentPart, ContainerContext containerContext) {
Classifier component = DepUtils.getClassifier(instance);
- UseInstanceConfigurator useInstanceConfigurator = StUtils.getApplication(component, UseInstanceConfigurator.class);
+ UseInstanceConfigurator useInstanceConfigurator = UMLUtil.getStereotypeApplication(component, UseInstanceConfigurator.class);
configureInstance(useInstanceConfigurator, instance, componentPart, containerContext);
}
@@ -66,7 +66,7 @@ public class InstanceConfigurator {
* a port within the context of container
*/
public static void configureInstance(ContainerRule rule, InstanceSpecification instance, Property componentPart, ContainerContext containerContext) {
- UseInstanceConfigurator useInstanceConfigurator = StUtils.getApplication(rule.getBase_Class(), UseInstanceConfigurator.class);
+ UseInstanceConfigurator useInstanceConfigurator = UMLUtil.getStereotypeApplication(rule.getBase_Class(), UseInstanceConfigurator.class);
configureInstance(useInstanceConfigurator, instance, componentPart, containerContext);
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/handlers/GenCollaborationUseHandler.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/handlers/GenCollaborationUseHandler.java
index bd6500b3098..b1f87b28be1 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/handlers/GenCollaborationUseHandler.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/handlers/GenCollaborationUseHandler.java
@@ -1,10 +1,10 @@
package org.eclipse.papyrus.qompass.designer.core.handlers;
import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.IViewPart;
import org.eclipse.papyrus.FCM.Connector;
import org.eclipse.papyrus.FCM.util.FCMUtil;
-import org.eclipse.papyrus.qompass.designer.core.StUtils;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* currently unused
@@ -30,7 +30,7 @@ public class GenCollaborationUseHandler extends CmdHandler {
updateSelectedEObject();
org.eclipse.uml2.uml.Connector selectedConnector = (org.eclipse.uml2.uml.Connector)getSelectedEObject();
- Connector fcmConn = StUtils.getApplication(selectedConnector, Connector.class);
+ Connector fcmConn = UMLUtil.getStereotypeApplication(selectedConnector, Connector.class);
FCMUtil.generateCollaborationUse(fcmConn);
}
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/handlers/GenConnectionPatternHandler.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/handlers/GenConnectionPatternHandler.java
index 816f7cae4ab..8919eec8eb8 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/handlers/GenConnectionPatternHandler.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/handlers/GenConnectionPatternHandler.java
@@ -5,9 +5,9 @@ import org.eclipse.jface.action.IAction;
import org.eclipse.papyrus.FCM.InteractionComponent;
import org.eclipse.papyrus.FCM.util.FCMUtil;
import org.eclipse.papyrus.qompass.designer.core.Log;
-import org.eclipse.papyrus.qompass.designer.core.StUtils;
import org.eclipse.ui.IViewPart;
import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.util.UMLUtil;
public class GenConnectionPatternHandler extends CmdHandler {
@@ -28,7 +28,7 @@ public class GenConnectionPatternHandler extends CmdHandler {
//only one model is selected
Class selectedClass = (Class)getSelectedEObject();
Log.log(Status.INFO, Log.DIALOGS, "GenConnectionPattern.run: " + selectedClass.getName());
- InteractionComponent connType = StUtils.getApplication(selectedClass, InteractionComponent.class);
+ InteractionComponent connType = UMLUtil.getStereotypeApplication(selectedClass, InteractionComponent.class);
FCMUtil.generateDefaultConnectionPattern(connType);
}
}
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/handlers/SelectConnectorHandler.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/handlers/SelectConnectorHandler.java
index 8d21bc92f0b..aab85e600d0 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/handlers/SelectConnectorHandler.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/handlers/SelectConnectorHandler.java
@@ -23,6 +23,7 @@ import org.eclipse.uml2.uml.Connector;
import org.eclipse.uml2.uml.Feature;
import org.eclipse.uml2.uml.Model;
import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* Implementation class for ClassAction action
@@ -74,7 +75,7 @@ public class SelectConnectorHandler extends CmdHandler {
public void run() {
org.eclipse.papyrus.FCM.Connector fcmSelectedConnector = StUtils.applyApp(selectedConnector, org.eclipse.papyrus.FCM.Connector.class);
- InteractionComponent newConnType = StUtils.getApplication((Class)result[0], InteractionComponent.class);
+ InteractionComponent newConnType = UMLUtil.getStereotypeApplication((Class)result[0], InteractionComponent.class);
fcmSelectedConnector.setIc(newConnType);
}
});
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/DepPlanListener.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/DepPlanListener.java
index 14da0452c24..b178405d924 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/DepPlanListener.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/listeners/DepPlanListener.java
@@ -17,9 +17,9 @@ package org.eclipse.papyrus.qompass.designer.core.listeners;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.papyrus.FCM.DeploymentPlan;
import org.eclipse.papyrus.infra.core.listenerservice.IPapyrusListener;
-import org.eclipse.papyrus.qompass.designer.core.StUtils;
import org.eclipse.uml2.uml.InstanceSpecification;
import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* A model listener that updates a deployment plan, e.g. add, remove or
@@ -44,7 +44,7 @@ public class DepPlanListener implements IPapyrusListener {
if(evtType == Notification.SET) {
// Object oldValue = notification.getOldValue ();
if(notifier instanceof Package) {
- DeploymentPlan de = StUtils.getApplication((Package) notifier, DeploymentPlan.class);
+ DeploymentPlan de = UMLUtil.getStereotypeApplication((Package) notifier, DeploymentPlan.class);
Object mainInstance = (de != null) ? de.getMainInstance() : null;
if(mainInstance instanceof InstanceSpecification) {
// TODO user wants to declare the system component, the instance specification should be created
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/CompImplSync.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/CompImplSync.java
index fdd1698fe0b..014ed211b30 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/CompImplSync.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/CompImplSync.java
@@ -27,7 +27,6 @@ import org.eclipse.papyrus.qompass.designer.core.Log;
import org.eclipse.papyrus.qompass.designer.core.OperationUtils;
import org.eclipse.papyrus.qompass.designer.core.PortInfo;
import org.eclipse.papyrus.qompass.designer.core.PortUtils;
-import org.eclipse.papyrus.qompass.designer.core.StUtils;
import org.eclipse.papyrus.qompass.designer.core.Utils;
import org.eclipse.papyrus.qompass.designer.core.transformations.PrefixConstants;
import org.eclipse.papyrus.qompass.designer.core.transformations.UpdateUtils;
@@ -43,6 +42,7 @@ import org.eclipse.uml2.uml.InterfaceRealization;
import org.eclipse.uml2.uml.Operation;
import org.eclipse.uml2.uml.Port;
import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* Synchronize component implementation classes.
@@ -157,7 +157,7 @@ public class CompImplSync {
*/
public static void updatePorts(Class implementation) {
for (Port port : PortUtils.getAllPorts(implementation)) {
- org.eclipse.papyrus.FCM.Port fcmPort = StUtils.getApplication(port, org.eclipse.papyrus.FCM.Port.class);
+ org.eclipse.papyrus.FCM.Port fcmPort = UMLUtil.getStereotypeApplication(port, org.eclipse.papyrus.FCM.Port.class);
if (fcmPort != null) {
fcmPort.update();
}
@@ -391,7 +391,7 @@ public class CompImplSync {
while(ownedOpsIter.hasNext()) {
Operation ownedOp = ownedOpsIter.next();
- DerivedElement de = StUtils.getApplication(ownedOp, DerivedElement.class);
+ DerivedElement de = UMLUtil.getStereotypeApplication(ownedOp, DerivedElement.class);
if(de != null) {
if(de.getSource() instanceof Operation) {
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/DepPlanSync.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/DepPlanSync.java
index 6d91d5e748a..694b393579d 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/DepPlanSync.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/sync/DepPlanSync.java
@@ -19,7 +19,6 @@ import java.util.Iterator;
import org.eclipse.core.runtime.Status;
import org.eclipse.papyrus.FCM.DeploymentPlan;
import org.eclipse.papyrus.qompass.designer.core.Log;
-import org.eclipse.papyrus.qompass.designer.core.StUtils;
import org.eclipse.papyrus.qompass.designer.core.Utils;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepCreation;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepPlanUtils;
@@ -36,6 +35,7 @@ import org.eclipse.uml2.uml.Property;
import org.eclipse.uml2.uml.Slot;
import org.eclipse.uml2.uml.Type;
import org.eclipse.uml2.uml.ValueSpecification;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* Currently unused synchronization for deployment plans.
@@ -71,7 +71,7 @@ public class DepPlanSync {
public static void syncDepPlan(Package depPlan) {
removeUnusedSlots(depPlan);
// EList<InstanceSpecification> list = new BasicEList<InstanceSpecification>();
- DeploymentPlan cdp = StUtils.getApplication(depPlan, DeploymentPlan.class);
+ DeploymentPlan cdp = UMLUtil.getStereotypeApplication(depPlan, DeploymentPlan.class);
if(cdp == null) {
return;
}
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.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/InstantiateCppInclude.java
index 0accb34a182..9c276782ae7 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.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/InstantiateCppInclude.java
@@ -16,7 +16,6 @@ package org.eclipse.papyrus.qompass.designer.core.templates;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.papyrus.C_Cpp.Include;
-import org.eclipse.papyrus.qompass.designer.core.StUtils;
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;
@@ -24,6 +23,7 @@ import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationC
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
import org.eclipse.uml2.uml.Classifier;
import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* Instantiate the text within a C++Include tag.
@@ -52,7 +52,7 @@ public class InstantiateCppInclude implements CopyListener {
try {
Classifier actual = TemplateInstantiationListener.getFirstActualFromBinding(binding, targetCl);
if(actual != null) {
- Include cppInclude = StUtils.getApplication(targetCl, Include.class);
+ Include cppInclude = UMLUtil.getStereotypeApplication(targetCl, Include.class);
TransformationContext.classifier = targetCl;
String newBody = AcceleoDriverWrapper.evaluate(cppInclude.getBody(), actual, null);
String newPreBody = AcceleoDriverWrapper.evaluate(cppInclude.getPreBody(), actual, null);
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.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/InstantiateCppIncludeWOB.java
index d30ab158ab3..9841e7d8555 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.designer.core/src/org/eclipse/papyrus/qompass/designer/core/templates/InstantiateCppIncludeWOB.java
@@ -18,13 +18,13 @@ import org.eclipse.emf.ecore.EObject;
import org.eclipse.papyrus.C_Cpp.Include;
import org.eclipse.papyrus.FCM.Template;
import org.eclipse.papyrus.FCM.TemplateKind;
-import org.eclipse.papyrus.qompass.designer.core.StUtils;
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.transformations.TransformationContext;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* Instantiate the text within a C++Include tag.
@@ -48,11 +48,11 @@ public class InstantiateCppIncludeWOB implements CopyListener {
if(targetEObj instanceof Classifier) {
// TODO: C++ specific code!
Classifier targetCl = (Classifier)targetEObj;
- Template template = StUtils.getApplication(targetCl, Template.class);
+ Template template = UMLUtil.getStereotypeApplication(targetCl, Template.class);
// apply, in case of pass-classifier
if((template != null) && (template.getKind() == TemplateKind.PASS_CLASSIFIER)) {
try {
- Include cppInclude = StUtils.getApplication(targetCl, Include.class);
+ Include cppInclude = UMLUtil.getStereotypeApplication(targetCl, Include.class);
TransformationContext.classifier = targetCl;
String newBody = AcceleoDriverWrapper.evaluate(cppInclude.getBody(), targetCl, null);
String newPreBody = AcceleoDriverWrapper.evaluate(cppInclude.getPreBody(), targetCl, null);
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 3c5315029be..4c0ff062dc4 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
@@ -17,7 +17,6 @@ package org.eclipse.papyrus.qompass.designer.core.templates;
import org.eclipse.emf.common.util.EList;
import org.eclipse.papyrus.FCM.Template;
import org.eclipse.papyrus.FCM.TemplateKind;
-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.TransformationContext;
import org.eclipse.papyrus.qompass.designer.core.transformations.TransformationException;
@@ -35,6 +34,7 @@ import org.eclipse.uml2.uml.TemplateParameter;
import org.eclipse.uml2.uml.TemplateParameterSubstitution;
import org.eclipse.uml2.uml.TemplateSignature;
import org.eclipse.uml2.uml.TemplateableElement;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* This class encapsulated functions around template instantiation.
@@ -194,7 +194,7 @@ public class TemplateInstantiation {
Package boundPackage = (Package)binding.getBoundElement();
EList<Namespace> path = TemplateUtils.relativePathWithMerge(namedElement, packageTemplate);
- Template template = StUtils.getApplication(namedElement, Template.class);
+ Template template = UMLUtil.getStereotypeApplication(namedElement, Template.class);
TemplateKind templateKind = (template != null) ?
templateKind = template.getKind() :
TemplateKind.PASS_FORMAL;
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/TemplateInstantiationListener.java
index 25201daf0dc..36bd05bd8e7 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/TemplateInstantiationListener.java
@@ -23,7 +23,6 @@ import org.eclipse.papyrus.FCM.ActualChoice;
import org.eclipse.papyrus.FCM.Template;
import org.eclipse.papyrus.FCM.TemplateKind;
import org.eclipse.papyrus.qompass.designer.core.PortUtils;
-import org.eclipse.papyrus.qompass.designer.core.StUtils;
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;
@@ -44,6 +43,7 @@ import org.eclipse.uml2.uml.Port;
import org.eclipse.uml2.uml.TemplateBinding;
import org.eclipse.uml2.uml.TemplateParameterSubstitution;
import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* Template instantiation is implemented by means of an CopyListener that
@@ -95,14 +95,14 @@ public class TemplateInstantiationListener implements CopyListener {
// in case of a behavior, examine stereotype on associated operation
BehavioralFeature bf = behavior.getSpecification();
if(bf != null) {
- Template template = StUtils.getApplication(bf, Template.class);
+ Template template = UMLUtil.getStereotypeApplication(bf, Template.class);
if(template != null) {
return null;
}
}
}
else {
- Template template = StUtils.getApplication((Element)sourceEObj, Template.class);
+ Template template = UMLUtil.getStereotypeApplication((Element)sourceEObj, Template.class);
if((template != null)) { // && (!treatTemplateElement.containsKey(sourceEObj))) {
// treatTemplateElement.put(sourceEObj, true);
if(sourceEObj instanceof Operation) {
@@ -247,7 +247,7 @@ public class TemplateInstantiationListener implements CopyListener {
* @throws TransformationException
*/
public static EList<Classifier> getActuals(TemplateBinding binding, Element element) throws TransformationException {
- Template template = StUtils.getApplication(element, Template.class);
+ Template template = UMLUtil.getStereotypeApplication(element, Template.class);
if(template != null) {
EList<Classifier> templateParams = template.getTemplateParams();
EList<Classifier> actuals = new BasicEList<Classifier>();
@@ -290,7 +290,7 @@ public class TemplateInstantiationListener implements CopyListener {
*/
public void bindOperation(Operation operation, Classifier actual) throws TransformationException {
// perform binding in case of C++ initializer
- ConstInit cppConstInit = StUtils.getApplication(operation, ConstInit.class);
+ ConstInit cppConstInit = UMLUtil.getStereotypeApplication(operation, ConstInit.class);
if(cppConstInit != null) {
// TODO: specific to C++
String init = cppConstInit.getInitialisation();
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
new file mode 100644
index 00000000000..e68cb8e2e54
--- /dev/null
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/AllocTransfo.java
@@ -0,0 +1,91 @@
+package org.eclipse.papyrus.qompass.designer.core.transformations;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EStructuralFeature.Setting;
+import org.eclipse.papyrus.qompass.designer.core.ConnectorUtils;
+import org.eclipse.papyrus.qompass.designer.core.Utils;
+import org.eclipse.papyrus.qompass.designer.core.deployment.AllocUtils;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Slot;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+/**
+ * Transform the allocations towards an execution resource (thread) into a suitable connection
+ * Current restriction: a thread needs to be defined the same composite as the component which
+ * is allocated to this thread.
+ */
+public class AllocTransfo {
+ public static final String MAIN = "main"; //$NON-NLS-1$
+
+ /**
+ *
+ * @param copy The copy class. Currently unused
+ * @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) {
+ 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) {
+ Type type = attribute.getType();
+ if (!(type instanceof Class)) {
+ continue;
+ }
+ Property thread = AllocUtils.getThreadAlloc(attribute);
+ if (thread != null) {
+ // this attribute represents a thread.
+ if (thread.getName().equals(MAIN)) {
+ // TODO: currently, no support for setting up the priority of the main thread.
+ // we need to get a cleaner solution for the main thread.
+ // destroy eventual connector and associated thread => thread as component with unconnected start thread
+ Connector conn = ConnectorUtils.getConnector(composite, attribute, thread);
+ // Connector targetConn = copy.getCopy(conn);
+ // Property targetThread = copy.getCopy(thread);
+ if (conn != null) {
+ conn.destroy();
+ }
+ // destroy not only the thread, but also the slot within the composites instance specification
+ // (that references the thread via its defining feature).
+ for (Setting setting : UMLUtil.getInverseReferences(thread)) {
+ if (setting.getEObject() instanceof Slot) {
+ ((Element) setting.getEObject()).destroy();
+ }
+ }
+ thread.destroy();
+ }
+ // check, if there is already a connector between the attribute and the thread
+ else if (!ConnectorUtils.existsConnector(composite, attribute, thread)) {
+ // no connector => create;
+ Class component = (Class) type;
+ Connector c = composite.createOwnedConnector("alloc to " + thread.getName()); //$NON-NLS-1$
+ ConnectorEnd ce1 = c.createEnd();
+ ce1.setPartWithPort(attribute);
+ // TODO: should really use start port instead...
+ // ce1.setRole(AllocUtils.getStartPort(component));
+ NamedElement ne = Utils.getNamedElementFromList(component.getAllAttributes(), "lc"); //$NON-NLS-1$
+ if (ne instanceof Property) {
+ ce1.setRole((Property) ne);
+ }
+ ConnectorEnd ce2 = c.createEnd();
+ ce2.setPartWithPort(thread);
+ Type threadT = thread.getType();
+ if (threadT instanceof Class) {
+ // TODO: nicer way to obtain port ...
+ Property rLC = ((Class) threadT).getAttribute("rLC", null); //$NON-NLS-1$
+ if (rLC instanceof Port) {
+ ce2.setRole(rLC);
+ }
+ }
+ }
+ }
+ }
+ }
+}
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 2eae92c7759..1836942c2d4 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
@@ -61,13 +61,15 @@ import org.eclipse.uml2.uml.UMLPackage;
* the call to getProvided/getRequired interface might trigger its creation resulting in
* the corruption of list iterators (ConcurrentAccess exception)
*
- * @author ansgar
- *
*/
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 {
EList<PackageableElement> peList = new BasicEList<PackageableElement>();
peList.addAll(pkg.getPackagedElements());
@@ -103,13 +105,17 @@ public class CompImplTrafos {
// port provides an interface, add "get_p" operation & implementation
String opName = PrefixConstants.getP_Prefix + portInfo.getName();
- if (implementation.getOwnedOperation(opName, null, null) != null) {
+ Operation op = implementation.getOwnedOperation(opName, null, null);
+ if (op != null) {
// operation already exists. Assume that user wants to override standard delegation
+ if (op.getType() != providedIntf) {
+ op.createOwnedParameter(retParamName, providedIntf);
+ }
continue;
}
- Operation op = implementation.createOwnedOperation(opName, null, null, providedIntf);
+ op = implementation.createOwnedOperation(opName, null, null, providedIntf);
Parameter retParam = op.getOwnedParameters().get(0);
- retParam.setName("ret");
+ retParam.setName(retParamName);
StUtils.apply(retParam, Ptr.class);
OpaqueBehavior behavior = (OpaqueBehavior)
@@ -132,8 +138,11 @@ public class CompImplTrafos {
// 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)
- body += part.getName() + refOp(part) + opName + "();"; //$NON-NLS-1$
- } else {
+ // 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
// without passing via a port
// TODO: check whether structural feature exists
@@ -158,7 +167,7 @@ public class CompImplTrafos {
}
}
// todo: defined by template
- behavior.getLanguages().add("C/C++"); //$NON-NLS-1$
+ behavior.getLanguages().add(progLang);
behavior.getBodies().add(body);
}
}
@@ -263,7 +272,7 @@ public class CompImplTrafos {
body = attributeName + (multiPort ? "[index]" : "") + " = ref;"; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
}
// TODO: defined by template
- behavior.getLanguages().add("C/C++"); //$NON-NLS-1$
+ behavior.getLanguages().add(progLang);
behavior.getBodies().add(body);
// -------------------------
@@ -279,7 +288,7 @@ public class CompImplTrafos {
if(op == null) {
op = implementation.createOwnedOperation(opName, null, null, requiredIntf);
Parameter retParam = op.getOwnedParameters().get(0);
- retParam.setName("ret"); //$NON-NLS-1$
+ retParam.setName(retParamName);
StUtils.apply(retParam, Ptr.class);
}
behavior = (OpaqueBehavior)
@@ -290,7 +299,7 @@ public class CompImplTrafos {
// no delegation
String name = PrefixConstants.attributePrefix + portInfo.getName();
body = "return " + name + ";"; //$NON-NLS-1$ //$NON-NLS-2$
- behavior.getLanguages().add("C/C++"); //$NON-NLS-1$
+ behavior.getLanguages().add(progLang); //$NON-NLS-1$
behavior.getBodies().add(body);
}
}
@@ -337,12 +346,12 @@ public class CompImplTrafos {
}
// TODO: use template, as in bootloader
if(createConnBody.length() > 0) {
- Operation operation = implementation.createOwnedOperation("createConnections", null, null);
+ Operation operation = implementation.createOwnedOperation("createConnections", null, null); //$NON-NLS-1$
OpaqueBehavior behavior = (OpaqueBehavior)
- implementation.createOwnedBehavior("b:" + operation.getName(),
+ implementation.createOwnedBehavior("b:" + operation.getName(), //$NON-NLS-1$
UMLPackage.eINSTANCE.getOpaqueBehavior());
- behavior.getLanguages().add("C/C++");
+ behavior.getLanguages().add(progLang);
behavior.getBodies().add(createConnBody);
behavior.setSpecification(operation);
}
@@ -528,6 +537,6 @@ public class CompImplTrafos {
*/
protected static String refOp(Property part) {
return instantiateViaBootloader(part) ?
- "->" : ".";
+ "->" : "."; //$NON-NLS-1$ //$NON-NLS-2$
}
}
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 055dac84363..aa01548d8fa 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
@@ -29,7 +29,6 @@ import org.eclipse.papyrus.FCM.InteractionComponent;
import org.eclipse.papyrus.qompass.designer.core.ConnectorUtils;
import org.eclipse.papyrus.qompass.designer.core.Log;
import org.eclipse.papyrus.qompass.designer.core.PortUtils;
-import org.eclipse.papyrus.qompass.designer.core.StUtils;
import org.eclipse.papyrus.qompass.designer.core.Utils;
import org.eclipse.papyrus.qompass.designer.core.deployment.AllocUtils;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
@@ -46,6 +45,7 @@ import org.eclipse.uml2.uml.Port;
import org.eclipse.uml2.uml.Property;
import org.eclipse.uml2.uml.Slot;
import org.eclipse.uml2.uml.TemplateBinding;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* This class enables the reification of connectors, i.e. the replacement of
@@ -192,7 +192,7 @@ public class ConnectorReification {
String name, Connector smConnector, InstanceSpecification tmIS, Object[] args)
throws TransformationException {
- org.eclipse.papyrus.FCM.Connector fcmConn = StUtils.getApplication(smConnector, org.eclipse.papyrus.FCM.Connector.class);
+ org.eclipse.papyrus.FCM.Connector fcmConn = UMLUtil.getStereotypeApplication(smConnector, org.eclipse.papyrus.FCM.Connector.class);
InteractionComponent connType = fcmConn.getIc();
if(connType == null) {
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 213f2bd044a..6591a5313bb 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
@@ -52,6 +52,7 @@ import org.eclipse.uml2.uml.TemplateBinding;
import org.eclipse.uml2.uml.TemplateSignature;
import org.eclipse.uml2.uml.Type;
import org.eclipse.uml2.uml.UMLPackage;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* Make the container transformation, i.e. add elements into a container
@@ -259,7 +260,7 @@ public class ContainerTrafo extends AbstractContainerTrafo {
if(StUtils.isApplied(extOrInterceptor, InteractionComponent.class)) {
- InterceptionRule interceptionRule = StUtils.getApplication(part, InterceptionRule.class);
+ InterceptionRule interceptionRule = UMLUtil.getStereotypeApplication(part, InterceptionRule.class);
InterceptionKind interceptionKind = InterceptionKind.INTERCEPT_ALL; // default: intercept all ports
EList<Feature> interceptFeatures = null;
if(interceptionRule != null) {
@@ -440,7 +441,7 @@ public class ContainerTrafo extends AbstractContainerTrafo {
interceptionConnector.setName(interceptorName + port.getName() + counter);
org.eclipse.papyrus.FCM.Connector fcmConn = StUtils.applyApp(interceptionConnector, org.eclipse.papyrus.FCM.Connector.class);
- InteractionComponent fcmConnType = StUtils.getApplication(smContainerConnImpl, InteractionComponent.class);
+ InteractionComponent fcmConnType = UMLUtil.getStereotypeApplication(smContainerConnImpl, InteractionComponent.class);
fcmConn.setIc(fcmConnType);
// pass target component and port to interceptor (not clean, define
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/FlattenInteractionComponents.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/FlattenInteractionComponents.java
index 826f4915687..536eefd7bd1 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/FlattenInteractionComponents.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/FlattenInteractionComponents.java
@@ -20,7 +20,6 @@ import java.util.Map;
import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.EList;
import org.eclipse.papyrus.FCM.InteractionComponent;
-import org.eclipse.papyrus.cpp.profile.StUtils;
import org.eclipse.papyrus.qompass.designer.core.ConnectorUtils;
import org.eclipse.papyrus.qompass.designer.core.deployment.DepUtils;
import org.eclipse.uml2.uml.Class;
@@ -32,6 +31,7 @@ import org.eclipse.uml2.uml.Port;
import org.eclipse.uml2.uml.Property;
import org.eclipse.uml2.uml.Slot;
import org.eclipse.uml2.uml.StructuralFeature;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* Deploy instances in a flat way, i.e. only deploy leaves. "Normal" composites
@@ -82,7 +82,7 @@ public class FlattenInteractionComponents {
{
Classifier cl = DepUtils.getClassifier(instance);
if ((cl instanceof Class) && (slot != null)) {
- InteractionComponent ic = StUtils.getApplication((Class) cl, InteractionComponent.class);
+ InteractionComponent ic = UMLUtil.getStereotypeApplication((Class) cl, InteractionComponent.class);
if ((ic != null) && ic.isForDistribution()) {
Slot containingSlot = DepUtils.getParentSlot(instance);
InstanceSpecification containingInstance = containingSlot.getOwningInstance();
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 4bf597c7e30..00e97ba0795 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
@@ -57,6 +57,7 @@ import org.eclipse.uml2.uml.Model;
import org.eclipse.uml2.uml.NamedElement;
import org.eclipse.uml2.uml.Package;
import org.eclipse.uml2.uml.Profile;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* This class executes all transformations during the instantiation of a
@@ -97,7 +98,7 @@ public class InstantiateDepPlan {
cdp = (Package)cdpOrConfig;
MainModelTrafo.setConfiguration(null);
} else if(StUtils.isApplied(cdpOrConfig, Configuration.class)) {
- configuration = StUtils.getApplication(cdpOrConfig, Configuration.class);
+ configuration = UMLUtil.getStereotypeApplication(cdpOrConfig, Configuration.class);
DeploymentPlan fcmCDP = configuration.getDeploymentPlan();
if(fcmCDP == null) {
final NamedElement config = (NamedElement)cdpOrConfig;
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 395b0312921..2e978b66df1 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
@@ -59,6 +59,7 @@ import org.eclipse.uml2.uml.StructuralFeature;
import org.eclipse.uml2.uml.Type;
import org.eclipse.uml2.uml.UMLPackage;
import org.eclipse.uml2.uml.ValueSpecification;
+import org.eclipse.uml2.uml.util.UMLUtil;
/**
* This class executes the main model transformation. It traverses the
@@ -284,7 +285,7 @@ public class MainModelTrafo {
}
Package smCDP = smIS.getNearestPackage();
- DeploymentPlan smFCM_CDP = StUtils.getApplication(smCDP, DeploymentPlan.class);
+ DeploymentPlan smFCM_CDP = UMLUtil.getStereotypeApplication(smCDP, DeploymentPlan.class);
for(ContainerRule rule : hwRules) {
if(isRuleActive(rule)) {
@@ -455,7 +456,9 @@ public class MainModelTrafo {
// needs to be called independently
// propagateNodeAllocation (cdp, compositeInstance);
-
+ AllocTransfo at = new AllocTransfo();
+ at.transformAllocs(copy, tmComponent);
+
if(containerTrafo != null) {
// return containerIS
containerTrafo.moveSlots();
diff --git a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/UpdateUtils.java b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/UpdateUtils.java
index a7ea85387c7..a87108be22f 100644
--- a/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/UpdateUtils.java
+++ b/extraplugins/qompass-designer/org.eclipse.papyrus.qompass.designer.core/src/org/eclipse/papyrus/qompass/designer/core/transformations/UpdateUtils.java
@@ -23,6 +23,7 @@ import org.eclipse.papyrus.qompass.designer.core.StUtils;
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;
/**
* Utility functions for the update derived elements, e.g. operations of a component
@@ -51,7 +52,7 @@ public class UpdateUtils {
while(elements.hasNext()) {
Element element = elements.next();
if(StUtils.isApplied(element, DerivedElement.class)) {
- DerivedElement de = StUtils.getApplication(element, DerivedElement.class);
+ DerivedElement de = UMLUtil.getStereotypeApplication(element, DerivedElement.class);
if((de != null) && (de.getSource() == source)) {
return element;
}
@@ -67,7 +68,7 @@ public class UpdateUtils {
public static Element getSource(Element element) {
if(StUtils.isApplied(element, DerivedElement.class)) {
- DerivedElement de = StUtils.getApplication(element, DerivedElement.class);
+ DerivedElement de = UMLUtil.getStereotypeApplication(element, DerivedElement.class);
if(de != null) {
return de.getSource();
}

Back to the top