From 622db0851a355ea535c10e363ca3b53b8e007826 Mon Sep 17 00:00:00 2001 From: Fares droubi Date: Wed, 22 Jun 2016 14:55:03 +0200 Subject: [PATCH] A quick fix to support 1 sub array like [[Object]] --- .../io/swagger/codegen/DefaultCodegen.java | 54 +++++++++++-------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java index 5d71a347df0..8c09ef9a104 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java @@ -1501,30 +1501,38 @@ public CodegenProperty fromProperty(String name, Property p) { } property.baseType = getSwaggerType(p); - + // A quick fix to support 1 sub array like [[Object]] if (p instanceof ArrayProperty) { - property.isContainer = true; - property.isListContainer = true; - property.containerType = "array"; - ArrayProperty ap = (ArrayProperty) p; - CodegenProperty cp = fromProperty(property.name, ap.getItems()); - if (cp == null) { - LOGGER.warn("skipping invalid property " + Json.pretty(p)); - } else { - property.baseType = getSwaggerType(p); - if (!languageSpecificPrimitives.contains(cp.baseType)) { - property.complexType = cp.baseType; - } else { - property.isPrimitiveType = true; - } - property.items = cp; - if (property.items.isEnum) { - property.datatypeWithEnum = property.datatypeWithEnum.replace(property.items.baseType, - property.items.datatypeWithEnum); - if(property.defaultValue != null) - property.defaultValue = property.defaultValue.replace(property.items.baseType, property.items.datatypeWithEnum); - } - } + if ("array".equals(((ArrayProperty) p).getItems().getType())) { + Property subArray = ((ArrayProperty)((ArrayProperty) p).getItems()).getItems(); + if(subArray instanceof RefProperty) { + RefProperty refProp = (RefProperty) subArray; + property.complexType = refProp.getSimpleRef(); + } + } + property.isContainer = true; + property.isListContainer = true; + property.containerType = "array"; + ArrayProperty ap = (ArrayProperty) p; + CodegenProperty cp = fromProperty(property.name, ap.getItems()); + if (cp == null) { + LOGGER.warn("skipping invalid property " + Json.pretty(p)); + } else { + property.baseType = getSwaggerType(p); + if (!languageSpecificPrimitives.contains(cp.baseType)) { + property.complexType = cp.baseType; + } else { + property.isPrimitiveType = true; + } + property.items = cp; + if (property.items.isEnum) { + property.datatypeWithEnum = property.datatypeWithEnum.replace(property.items.baseType, + property.items.datatypeWithEnum); + if(property.defaultValue != null) + property.defaultValue = property.defaultValue.replace(property.items.baseType, property.items.datatypeWithEnum); + } + } + } else if (p instanceof MapProperty) { property.isContainer = true; property.isMapContainer = true;