From c5c17123744891fdac673ee37e05b4a310938e6c Mon Sep 17 00:00:00 2001 From: wing328 Date: Thu, 17 Dec 2015 15:44:22 +0800 Subject: [PATCH] fix array of inline model body parameter --- .../io/swagger/codegen/InlineModelResolver.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/InlineModelResolver.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/InlineModelResolver.java index f727560210a..8235797d8e7 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/InlineModelResolver.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/InlineModelResolver.java @@ -13,9 +13,13 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + public class InlineModelResolver { private Swagger swagger = null; private boolean skipMatches = false; + static Logger LOGGER = LoggerFactory.getLogger(InlineModelResolver.class); Map addedModels = new HashMap(); Map generatedSignature = new HashMap(); @@ -60,8 +64,19 @@ public class InlineModelResolver { Property inner = am.getItems(); if(inner instanceof ObjectProperty) { + String modelName = uniqueName(bp.getName()); ObjectProperty op = (ObjectProperty) inner; flattenProperties(op.getProperties(), pathname); + + Model inner_model = modelFromProperty(op, modelName); + String existing = matchGenerated(inner_model); + if (existing != null) { + am.setItems(new RefProperty(existing)); + } else { + am.setItems(new RefProperty(modelName)); + addGenerated(modelName, inner_model); + swagger.addDefinition(modelName, inner_model); + } } } } @@ -222,6 +237,7 @@ public class InlineModelResolver { addGenerated(modelName, model); swagger.addDefinition(modelName, model); } + } else { } } if (propsToUpdate.size() > 0) {