| 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; |
| + } |
| } |