Loading plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/ConverterNext.java +21 −4 Original line number Diff line number Diff line Loading @@ -15,17 +15,34 @@ import org.etsi.mts.tdl.Package; public class ConverterNext { public static void main(String[] args) throws Exception { String filename = "/Users/philip-iii/Dev/git/etsi-labs/eg-203647-restful-api-guide/OpenAPI/ExampleAPI.yaml"; // TODO Auto-generated method stub String filename = args[0]; process(filename, filename+"-generated-new.tdltx"); } public static String processToString(String inputPath, String outputPath) { return processToString(inputPath, outputPath, "SOURCE_MAPPING", "TARGET_MAPPING"); } public static String processToString(String inputPath, String outputPath, String sourceMapping, String targetMapping) { OpenAPI spec = parseSpec(inputPath); System.out.println("Exporting: "+outputPath+ " : "+ new File(outputPath).getAbsolutePath()); OpenAPI2TDLTranslatorNext translator = new OpenAPI2TDLTranslatorNext(); String content = "Package imported {}"; try { Resource tr = TDLHelper.create(outputPath); translator.setTargetResource(tr); translator.initTargetResource(translator.cleanName(new File(inputPath).getName())); translator.translate(inputPath, sourceMapping, targetMapping); content = TDLHelper.getText(tr); } catch (Exception e) { e.printStackTrace(); } return content; } public static String process(String inputPath, String outputPath) { OpenAPI spec = parseSpec(inputPath); //System.out.println(spec.getComponents()); OpenAPI2TDLTranslatorNext translator = new OpenAPI2TDLTranslatorNext(); String name = "imported"; try { Loading plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/OpenAPI2TDLTranslatorNext.java +34 −13 Original line number Diff line number Diff line Loading @@ -6,7 +6,10 @@ import org.etsi.mts.tdl.CollectionDataType; import org.etsi.mts.tdl.DataElementMapping; import org.etsi.mts.tdl.DataType; import org.etsi.mts.tdl.Member; import org.etsi.mts.tdl.Parameter; import org.etsi.mts.tdl.ParameterMapping; import org.etsi.mts.tdl.StructuredDataType; import org.etsi.mts.tdl.tdlFactory; import org.etsi.mts.tdl.tdlPackage; import org.etsi.mts.tdl.transform.AbstractTranslator; import org.openapitools.codegen.utils.ModelUtils; Loading @@ -24,6 +27,12 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator { private OpenAPI model; public void translate(String filename) throws Exception { String sourceMappingTag = "SOURCE_MAPPING"; String targetMappingTag = "TARGET_MAPPING"; translate(filename, sourceMappingTag, targetMappingTag); } public void translate(String filename, String sourceMappingTag, String targetMappingTag) throws Exception { // Converter.setTdlTokens(Arrays.asList(new String[] {"'name'", "'type'", "'size'", "'instance'"})); // Converter converter = new Converter(filename); // converter.runConversion(); Loading @@ -32,33 +41,45 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator { //TODO: separate validation into another component model = parseSpec(filename); drm = getTypeFor("SOURCE_MAPPING", tdlPackage.Literals.DATA_RESOURCE_MAPPING); drm.setResourceURI("\""+new File(filename).getName()+"\""); drmTarget = getTypeFor("TARGET_MAPPING", tdlPackage.Literals.DATA_RESOURCE_MAPPING); drm = getTypeFor(sourceMappingTag, tdlPackage.Literals.DATA_RESOURCE_MAPPING); drm.setResourceURI(new File(filename).getName()); drmTarget = getTypeFor(targetMappingTag, tdlPackage.Literals.DATA_RESOURCE_MAPPING); //TODO: make configurable drmTarget.setResourceURI("\"generated/java\""); drmTarget.setResourceURI("generated/java"); for (String schemaName: model.getComponents().getSchemas().keySet()) { Schema<?> schema = model.getComponents().getSchemas().get(schemaName); schema.setName(schemaName); DataType dataType = translate(schema, ""); addMapping(schema, dataType); addMapping(schema, dataType, sourceMappingTag, targetMappingTag); } } private void addMapping(Schema<?> schema, DataType dataType) { DataElementMapping sourceMapping = getTypeFor(schema.getName()+"_SOURCE_MAPPING", tdlPackage.Literals.DATA_ELEMENT_MAPPING); private void addMapping(Schema<?> schema, DataType dataType, String sourceMappingTag, String targetMappingTag) { DataElementMapping sourceMapping = getTypeFor(schema.getName()+"_"+sourceMappingTag, tdlPackage.Literals.DATA_ELEMENT_MAPPING); sourceMapping.setMappableDataElement(dataType); sourceMapping.setElementURI("\"#/components/schemas/"+schema.getName()+"\""); sourceMapping.setElementURI("#/components/schemas/"+schema.getName()+""); sourceMapping.setDataResourceMapping(drm); //TODO: make configurable DataElementMapping targetMapping = getTypeFor(schema.getName()+"_TARGET_MAPPING", tdlPackage.Literals.DATA_ELEMENT_MAPPING); //TODO: make configurable? DataElementMapping targetMapping = getTypeFor(schema.getName()+"_"+targetMappingTag, tdlPackage.Literals.DATA_ELEMENT_MAPPING); targetMapping.setMappableDataElement(dataType); //TODO: transform / adapt mapping based on configuration? targetMapping.setElementURI("\""+schema.getName()+"\""); targetMapping.setElementURI(""+schema.getName()+""); targetMapping.setDataResourceMapping(drmTarget); if (dataType instanceof StructuredDataType) { for (Member m : ((StructuredDataType) dataType).getMember()) { addParameterMapping(sourceMapping, m, m.getName()); addParameterMapping(targetMapping, m, m.getName()); } } } private void addParameterMapping(DataElementMapping mapping, Parameter p, String uri) { ParameterMapping pm = (ParameterMapping) tdlFactory.eINSTANCE.create(tdlPackage.Literals.PARAMETER_MAPPING); pm.setParameter(p); pm.setParameterURI(uri.replaceAll("\\^", "")); mapping.getParameterMapping().add(pm); } private DataType translate(Schema<?> schema, String prefix) { Loading Loading
plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/ConverterNext.java +21 −4 Original line number Diff line number Diff line Loading @@ -15,17 +15,34 @@ import org.etsi.mts.tdl.Package; public class ConverterNext { public static void main(String[] args) throws Exception { String filename = "/Users/philip-iii/Dev/git/etsi-labs/eg-203647-restful-api-guide/OpenAPI/ExampleAPI.yaml"; // TODO Auto-generated method stub String filename = args[0]; process(filename, filename+"-generated-new.tdltx"); } public static String processToString(String inputPath, String outputPath) { return processToString(inputPath, outputPath, "SOURCE_MAPPING", "TARGET_MAPPING"); } public static String processToString(String inputPath, String outputPath, String sourceMapping, String targetMapping) { OpenAPI spec = parseSpec(inputPath); System.out.println("Exporting: "+outputPath+ " : "+ new File(outputPath).getAbsolutePath()); OpenAPI2TDLTranslatorNext translator = new OpenAPI2TDLTranslatorNext(); String content = "Package imported {}"; try { Resource tr = TDLHelper.create(outputPath); translator.setTargetResource(tr); translator.initTargetResource(translator.cleanName(new File(inputPath).getName())); translator.translate(inputPath, sourceMapping, targetMapping); content = TDLHelper.getText(tr); } catch (Exception e) { e.printStackTrace(); } return content; } public static String process(String inputPath, String outputPath) { OpenAPI spec = parseSpec(inputPath); //System.out.println(spec.getComponents()); OpenAPI2TDLTranslatorNext translator = new OpenAPI2TDLTranslatorNext(); String name = "imported"; try { Loading
plugins/org.etsi.mts.tdl.openapi2tdl.next/src/org/etsi/mts/tdl/openapi2tdl/next/OpenAPI2TDLTranslatorNext.java +34 −13 Original line number Diff line number Diff line Loading @@ -6,7 +6,10 @@ import org.etsi.mts.tdl.CollectionDataType; import org.etsi.mts.tdl.DataElementMapping; import org.etsi.mts.tdl.DataType; import org.etsi.mts.tdl.Member; import org.etsi.mts.tdl.Parameter; import org.etsi.mts.tdl.ParameterMapping; import org.etsi.mts.tdl.StructuredDataType; import org.etsi.mts.tdl.tdlFactory; import org.etsi.mts.tdl.tdlPackage; import org.etsi.mts.tdl.transform.AbstractTranslator; import org.openapitools.codegen.utils.ModelUtils; Loading @@ -24,6 +27,12 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator { private OpenAPI model; public void translate(String filename) throws Exception { String sourceMappingTag = "SOURCE_MAPPING"; String targetMappingTag = "TARGET_MAPPING"; translate(filename, sourceMappingTag, targetMappingTag); } public void translate(String filename, String sourceMappingTag, String targetMappingTag) throws Exception { // Converter.setTdlTokens(Arrays.asList(new String[] {"'name'", "'type'", "'size'", "'instance'"})); // Converter converter = new Converter(filename); // converter.runConversion(); Loading @@ -32,33 +41,45 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator { //TODO: separate validation into another component model = parseSpec(filename); drm = getTypeFor("SOURCE_MAPPING", tdlPackage.Literals.DATA_RESOURCE_MAPPING); drm.setResourceURI("\""+new File(filename).getName()+"\""); drmTarget = getTypeFor("TARGET_MAPPING", tdlPackage.Literals.DATA_RESOURCE_MAPPING); drm = getTypeFor(sourceMappingTag, tdlPackage.Literals.DATA_RESOURCE_MAPPING); drm.setResourceURI(new File(filename).getName()); drmTarget = getTypeFor(targetMappingTag, tdlPackage.Literals.DATA_RESOURCE_MAPPING); //TODO: make configurable drmTarget.setResourceURI("\"generated/java\""); drmTarget.setResourceURI("generated/java"); for (String schemaName: model.getComponents().getSchemas().keySet()) { Schema<?> schema = model.getComponents().getSchemas().get(schemaName); schema.setName(schemaName); DataType dataType = translate(schema, ""); addMapping(schema, dataType); addMapping(schema, dataType, sourceMappingTag, targetMappingTag); } } private void addMapping(Schema<?> schema, DataType dataType) { DataElementMapping sourceMapping = getTypeFor(schema.getName()+"_SOURCE_MAPPING", tdlPackage.Literals.DATA_ELEMENT_MAPPING); private void addMapping(Schema<?> schema, DataType dataType, String sourceMappingTag, String targetMappingTag) { DataElementMapping sourceMapping = getTypeFor(schema.getName()+"_"+sourceMappingTag, tdlPackage.Literals.DATA_ELEMENT_MAPPING); sourceMapping.setMappableDataElement(dataType); sourceMapping.setElementURI("\"#/components/schemas/"+schema.getName()+"\""); sourceMapping.setElementURI("#/components/schemas/"+schema.getName()+""); sourceMapping.setDataResourceMapping(drm); //TODO: make configurable DataElementMapping targetMapping = getTypeFor(schema.getName()+"_TARGET_MAPPING", tdlPackage.Literals.DATA_ELEMENT_MAPPING); //TODO: make configurable? DataElementMapping targetMapping = getTypeFor(schema.getName()+"_"+targetMappingTag, tdlPackage.Literals.DATA_ELEMENT_MAPPING); targetMapping.setMappableDataElement(dataType); //TODO: transform / adapt mapping based on configuration? targetMapping.setElementURI("\""+schema.getName()+"\""); targetMapping.setElementURI(""+schema.getName()+""); targetMapping.setDataResourceMapping(drmTarget); if (dataType instanceof StructuredDataType) { for (Member m : ((StructuredDataType) dataType).getMember()) { addParameterMapping(sourceMapping, m, m.getName()); addParameterMapping(targetMapping, m, m.getName()); } } } private void addParameterMapping(DataElementMapping mapping, Parameter p, String uri) { ParameterMapping pm = (ParameterMapping) tdlFactory.eINSTANCE.create(tdlPackage.Literals.PARAMETER_MAPPING); pm.setParameter(p); pm.setParameterURI(uri.replaceAll("\\^", "")); mapping.getParameterMapping().add(pm); } private DataType translate(Schema<?> schema, String prefix) { Loading