diff --git a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/OpenAPI2TDLTranslatorNext.java b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/OpenAPI2TDLTranslatorNext.java index 38fcec1acdbb3d7b1307dbf1aa1702254d3453e5..86e308aac15974793263be1ae80569980697a088 100644 --- a/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/OpenAPI2TDLTranslatorNext.java +++ b/plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/OpenAPI2TDLTranslatorNext.java @@ -142,6 +142,7 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator { // Java mappings Package mappingsPackage = null; Package javaPackage = null; + AnnotationType mappingNameAnnot = null; boolean generateJavaMappings = true; if (preferences != null) generateJavaMappings = preferences.getBoolean(PropertyPage.GENERATE_JAVA_MAPPING, false); @@ -180,8 +181,9 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator { for (PackageableElement e : theTdlPackage.getPackagedElement()) { if (e.eClass().equals(tdlPackage.eINSTANCE.getAnnotationType()) && e.getName().equals("MappingName")) { + mappingNameAnnot = (AnnotationType) e; Annotation annot = tdlFactory.eINSTANCE.createAnnotation(); - annot.setKey((AnnotationType) e); + annot.setKey(mappingNameAnnot); annot.setValue("Java"); // XXX disabled due to serialization problem drmTarget.getAnnotation().add(annot); @@ -276,7 +278,7 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator { } if (generateJavaMappings && mappingsPackage!=null) - addMappings(filename, mappingsPackage, drmTarget, javaPackage); + addMappings(filename, mappingsPackage, drmTarget, javaPackage, mappingNameAnnot); ensureUniqueNames(getGeneratedPackage()); } @@ -630,7 +632,7 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator { } } - public void addMappings(String filename, Package mappingsPackage, DataResourceMapping resourceMapping, Package javaPackage) { + public void addMappings(String filename, Package mappingsPackage, DataResourceMapping resourceMapping, Package javaPackage, AnnotationType mappingNameAnnot) { CodegenConfigurator configurator = new CodegenConfigurator(); // We create our own but the setting is required by the configurator @@ -682,6 +684,18 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator { if (type instanceof EnumDataType) { + DataResourceMapping eResourceMapping = tdlFactory.eINSTANCE.createDataResourceMapping(); + mappingsPackage.getPackagedElement().add(eResourceMapping); + eResourceMapping.setName(getCleanName(name) + "_ResourceMapping"); + eResourceMapping.setResourceURI(resourceMapping.getResourceURI() + "." + codeGen.getClassname()); + ca = tdlFactory.eINSTANCE.createAnnotation(); + ca.setKey(classAnnotation); + eResourceMapping.getAnnotation().add(ca); + Annotation mna = tdlFactory.eINSTANCE.createAnnotation(); + mna.setKey(mappingNameAnnot); + mna.setValue("Java"); + eResourceMapping.getAnnotation().add(mna); + List> enumVars = (List>) codeGen.getAllowableValues().get("enumVars"); for (Map enumVar : enumVars) { String javaName = enumVar.get("name"); @@ -689,6 +703,8 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator { // Wrapped in "" if (modelName.startsWith("\"")) modelName = modelName.substring(1, modelName.length() - 1); + else + modelName = name + "_" + modelName; SimpleDataInstance literal = null; for (SimpleDataInstance l: ((EnumDataType) type).getValue()) { @@ -705,7 +721,7 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator { lMapping.setName(getCleanName(name) + "_" + getCleanName(modelName) + "_Mapping"); lMapping.setMappableDataElement(literal); lMapping.setElementURI(javaName); - lMapping.setDataResourceMapping(resourceMapping); + lMapping.setDataResourceMapping(eResourceMapping); } } else if (type instanceof StructuredDataType) {