Commit 47e2fc89 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ refinements for missing types of objects and referenced schemas for properties

parent f1ae9dec
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ import org.etsi.mts.tdl.tdlFactory;
import org.etsi.mts.tdl.tdlPackage;
import org.etsi.mts.tdl.transform.AbstractTranslator;

import com.reprezen.jsonoverlay.JsonOverlay;
import com.reprezen.jsonoverlay.Reference;
import com.reprezen.kaizen.oasparser.OpenApi3Parser;
import com.reprezen.kaizen.oasparser.model3.OpenApi3;
@@ -51,14 +52,18 @@ public class OpenAPI2TDLTranslator extends AbstractTranslator {
	}

	private DataType translate(Schema schema, String prefix) {
		if (schema.getType()==null) {
		if (schema.getType()==null && schema.getProperties().isEmpty()) {
			if (schema.getName() == null) {
				System.out.println("Why?");
			}
			return getSimpleDataTypeFor(schema.getName());
		} else {
			String name = prefix+schema.getName();
			if (schema.getName() == null) {
				name = prefix+"___item";
			}
			if (schema.getType().equals("object")) {
			if (!schema.getProperties().isEmpty() || 
					schema.getType().equals("object")) {
				return translateObject(schema, name);
			} else if (schema.getType().equals("array")) {
				return translateArray(schema, name);
@@ -72,7 +77,13 @@ public class OpenAPI2TDLTranslator extends AbstractTranslator {
		StructuredDataType dataType = getStructuredDataTypeFor(name);
		for (String propertyName : schema.getProperties().keySet()) {
			Schema propertySchema = schema.getProperty(propertyName);
			DataType memberType = translate(propertySchema, name+"___");
			Reference reference = ((SchemaImpl) propertySchema)._getCreatingRef();
			DataType memberType = null;
			if (reference!=null) {
				memberType = translate(propertySchema, "");
			} else {
				memberType = translate(propertySchema, name+"___");
			}
			Member m = getContentWithName(propertyName, dataType, tdlPackage.Literals.MEMBER);
			m.setDataType(memberType);
			if (m.container()==null) {