Commit bade0494 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ basic target mapping generation for openAPI

parent 73d036cd
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import org.etsi.mts.tdl.tdlPackage;

public abstract class AbstractTranslator {
	protected DataResourceMapping drm;
	protected DataResourceMapping drmTarget;
	private Package generatedPackage;
	protected SimpleDataType stringType;
	private Resource targetResource;
+15 −4
Original line number Diff line number Diff line
@@ -37,6 +37,9 @@ public class OpenAPI2TDLTranslator extends AbstractTranslator {
		OpenApi3 model = loadOpenApi3(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);
		//TODO: make configurable
		drmTarget.setResourceURI("\"generated/java\"");
		for (Schema schema: model.getSchemas().values()) {
			DataType dataType = translate(schema, "");
			addMapping(schema, dataType);
@@ -45,10 +48,18 @@ public class OpenAPI2TDLTranslator extends AbstractTranslator {
	}

	private void addMapping(Schema schema, DataType dataType) {
		DataElementMapping mapping = getTypeFor(schema.getName()+"_MAPPING", tdlPackage.Literals.DATA_ELEMENT_MAPPING);
		mapping.setMappableDataElement(dataType);
		mapping.setElementURI("\"#/components/schemas/"+schema.getName()+"\"");
		mapping.setDataResourceMapping(drm);
		DataElementMapping sourceMapping = getTypeFor(schema.getName()+"_SOURCE_MAPPING", tdlPackage.Literals.DATA_ELEMENT_MAPPING);
		sourceMapping.setMappableDataElement(dataType);
		sourceMapping.setElementURI("\"#/components/schemas/"+schema.getName()+"\"");
		sourceMapping.setDataResourceMapping(drm);
		
		//TODO: make configurable 
		DataElementMapping targetMapping = getTypeFor(schema.getName()+"_TARGET_MAPPING", tdlPackage.Literals.DATA_ELEMENT_MAPPING);
		targetMapping.setMappableDataElement(dataType);
		//TODO: transform / adapt mapping based on configuration?
		targetMapping.setElementURI("\""+schema.getName()+"\"");
		targetMapping.setDataResourceMapping(drmTarget);

	}

	private DataType translate(Schema schema, String prefix) {