From fedd7dcaeab1373c1f7b4687fdbf4667d8104cab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martti=20K=C3=A4=C3=A4rik?= Date: Mon, 21 Oct 2024 17:53:03 +0300 Subject: [PATCH] Schema may have a typ eor types. --- .../next/OpenAPI2TDLTranslatorNext.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) 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 d4cccf9e..2d7f94b7 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 @@ -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 types = schema.getTypes(); + if (types != null && !types.isEmpty()) + type = types.iterator().next(); + } + return type; + } + private void createOperationWrapper(Set 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")) { -- GitLab