Commit fedd7dca authored by Martti Käärik's avatar Martti Käärik
Browse files

Schema may have a typ eor types.

parent dbeed2e0
Loading
Loading
Loading
Loading
+16 −7
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@ import org.etsi.mts.tdl.SimpleDataInstance;
import org.etsi.mts.tdl.SimpleDataType;
import org.etsi.mts.tdl.StructuredDataInstance;
import org.etsi.mts.tdl.StructuredDataType;
import org.etsi.mts.tdl.UnassignedMemberTreatment;
import org.etsi.mts.tdl.tdlFactory;
import org.etsi.mts.tdl.tdlPackage;
import org.etsi.mts.tdl.helper.TDLHelper;
@@ -57,7 +56,6 @@ import io.swagger.v3.oas.models.Paths;
import io.swagger.v3.oas.models.media.MediaType;
import io.swagger.v3.oas.models.media.Schema;
import io.swagger.v3.oas.models.parameters.Parameter;
import io.swagger.v3.oas.models.parameters.QueryParameter;
import io.swagger.v3.oas.models.parameters.RequestBody;
import io.swagger.v3.parser.core.models.ParseOptions;
import io.swagger.v3.parser.util.InlineModelResolver;
@@ -207,7 +205,7 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator {
					if (jsonContent != null) {
						Schema schema = jsonContent.getSchema();
						boolean array = false;
						if (schema.getType() != null && schema.getType().equals("array")) {
						if (getSchemaType(schema) != null && getSchemaType(schema).equals("array")) {
							schema = schema.getItems();
							array = true;
						}
@@ -269,6 +267,16 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator {
		ensureUniqueNames(getGeneratedPackage());
	}
	
	private String getSchemaType(Schema<?> schema) {
		String type = schema.getType();
		if (type == null) {
			Set<String> types = schema.getTypes();
			if (types != null && !types.isEmpty())
				type = types.iterator().next();
		}
		return type;
	}
	
	private void createOperationWrapper(Set<PathOperation> ops, StructuredDataType httpRequest,
			EnumDataType httpMethodEnum, CollectionDataType httpRequestParameters,
			EnumDataType httpParameterLocationEnum) {
@@ -416,7 +424,7 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator {
	}

	private DataType translate(Schema<?> schema, String prefix, DataType superType) {
		if (schema.getType() == null && (schema.getProperties() == null || schema.getProperties().isEmpty())) {
		if (getSchemaType(schema) == null && (schema.getProperties() == null || schema.getProperties().isEmpty())) {
			if (schema.getName() == null) {
				System.out.println("Why?");
			}
@@ -427,11 +435,11 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator {
				name = prefix + "___item";
			}
			if (schema.getProperties() != null && !schema.getProperties().isEmpty()
					|| schema.getType().equals("object")) {
					|| getSchemaType(schema).equals("object")) {
				DataType t = translateObject(schema, name);
				addSuperType(t, superType);
				return t;
			} else if (schema.getType().equals("array")) {
			} else if (getSchemaType(schema).equals("array")) {
				return translateArray(schema, name);
			} else {
				return translateSimpleType(schema, superType);
@@ -442,7 +450,8 @@ public class OpenAPI2TDLTranslatorNext extends AbstractTranslator {
	private DataType translateSimpleType(Schema<?> schema, DataType superType) {
		String name = schema.getName();
		if (name == null)
			name = schema.getType();
			name = getSchemaType(schema);
		

		if (this.theTdlPackage != null) {
			if (name.equals("string") || name.equals("integer") || name.equals("boolean")) {