From 5713dce00a8f7d13de1f9c566775901a2dee1662 Mon Sep 17 00:00:00 2001 From: Camille Chafer Date: Wed, 25 Feb 2015 15:01:07 +0100 Subject: [PATCH] add missing types on the Responses Object implementation( CodegenResponse.java) (part of #293) --- .../swagger/codegen/CodegenResponse.java | 5 +++ .../swagger/codegen/DefaultCodegen.java | 34 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenResponse.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenResponse.java index 92b908759b10..d940e4922eb1 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenResponse.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenResponse.java @@ -6,5 +6,10 @@ public class CodegenResponse { public String code, message; public Boolean hasMore; public List> examples; + public String dataType, baseType, containerType; + public Boolean simpleType; + public Boolean primitiveType; + public Boolean isMapContainer; + public Boolean isListContainer; Object schema; } \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java index 014a595ae169..e971eff343f0 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java @@ -752,6 +752,40 @@ public class DefaultCodegen { r.message = response.getDescription(); r.schema = response.getSchema(); r.examples = toExamples(response.getExamples()); + + if (r.schema != null) { + Property responseProperty = response.getSchema(); + responseProperty.setRequired(true); + CodegenProperty cm = fromProperty("response", responseProperty); + + if(responseProperty instanceof ArrayProperty) { + ArrayProperty ap = (ArrayProperty) responseProperty; + CodegenProperty innerProperty = fromProperty("response", ap.getItems()); + r.baseType = innerProperty.baseType; + } + else { + if(cm.complexType != null) + r.baseType = cm.complexType; + else + r.baseType = cm.baseType; + } + r.dataType = cm.datatype; + if(cm.isContainer != null) { + r.simpleType = false; + r.containerType = cm.containerType; + r.isMapContainer = "map".equals(cm.containerType); + r.isListContainer = "list".equals(cm.containerType); + } + else + r.simpleType = true; + r.primitiveType = (r.baseType == null ||languageSpecificPrimitives().contains(r.baseType)); + } + if (r.baseType == null) { + r.isMapContainer = false; + r.isListContainer = false; + r.primitiveType = true; + r.simpleType = true; + } return r; }