blob: 78fdb0311da8a7a080ff3f4ab83d00a5c57dfad5 [file] [log] [blame]
diff -u -r -w org.eclipse.uml2.uml_5.2.3.orig/src/org/eclipse/uml2/uml/util/UMLUtil.java org.eclipse.uml2.uml_5.2.3.v20170227-0935/src/org/eclipse/uml2/uml/util/UMLUtil.java
--- org.eclipse.uml2.uml_5.2.3.orig/src/org/eclipse/uml2/uml/util/UMLUtil.java 2017-02-24 10:57:24.000000000 +0100
+++ org.eclipse.uml2.uml_5.2.3.v20170227-0935/src/org/eclipse/uml2/uml/util/UMLUtil.java 2017-07-10 08:26:48.451145387 +0200
@@ -16,6 +16,7 @@
* E.D.Willink - 420338
* Christian W. Damus - 444588, 501740, 512520
*
+ * CEA: Patch that returns strings for MARTE datatypes
*/
package org.eclipse.uml2.uml.util;
@@ -4614,8 +4615,14 @@
@Override
public Boolean caseDataType(DataType dataType) {
+ // CEA modification
+ if(mapDataTypeToString(dataType)) {
+ return Boolean.FALSE;
+ }
+ else {
return Boolean.TRUE;
}
+ }
@Override
public Boolean caseEnumeration(Enumeration enumeration) {
@@ -4744,6 +4751,21 @@
.getNearestPackage();
if (package_ != null) {
+
+ // CEA modification
+ if(mapDataTypeToString(dataType)) {
+ EDataType eDataType = EcoreFactory.eINSTANCE.createEDataType();
+ elementToEModelElementMap.put(dataType, eDataType);
+
+ EPackage ePackage = (EPackage)doSwitch(package_);
+ ePackage.getEClassifiers().add(eDataType);
+
+ setName(eDataType, dataType);
+ eDataType.setInstanceClassName("java.lang.String"); //$NON-NLS-1$
+
+ return eDataType;
+ }
+ else {
EClass eClass = EcoreFactory.eINSTANCE.createEClass();
elementToEModelElementMap.put(dataType, eClass);
@@ -4757,6 +4779,7 @@
return eClass;
}
}
+ }
return super.caseDataType(dataType);
}
@@ -5157,7 +5180,13 @@
setName(eDataType, primitiveType);
+ // CEA modification
+ if(mapDataTypeToString(primitiveType)) {
+ eDataType.setInstanceClassName("java.lang.String"); //$NON-NLS-1$
+ }
+ else {
eDataType.setInstanceClassName(eDataType.getName());
+ }
defaultCase(primitiveType);
@@ -13425,4 +13454,14 @@
return allSubsetFeatures;
}
+ /**
+ * CEA: Map certain data types to string. This is useful for instance for MARTE types
+ *
+ * @param dataType
+ * @return true, if data-type should be mapped to a string
+ */
+ private static boolean mapDataTypeToString(DataType dataType) {
+ // currently: map all data types to string
+ return true;
+ }
}