From f673531b507aeceefddad13bae889f0aaee76a20 Mon Sep 17 00:00:00 2001 From: satoshi Date: Mon, 16 Apr 2018 12:53:28 +0900 Subject: [PATCH] Added vendorExtensions.x-isPrimitive. (#7991) * Added vendorExtensions.x-isPrimitive. Switch template for constructFromObject. * Reflect review indication. --- .../codegen/languages/JavascriptClientCodegen.java | 10 ++++++++++ .../Javascript/partial_model_generic.mustache | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java index 697c506544c..f8c7e201f11 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavascriptClientCodegen.java @@ -794,6 +794,11 @@ public CodegenModel fromModel(String name, Model model, Map allDe if (mm.getAdditionalProperties() != null) { codegenModel.vendorExtensions.put("x-isMap", true); codegenModel.vendorExtensions.put("x-itemType", getSwaggerType(mm.getAdditionalProperties())); + } else { + String type = mm.getType(); + if (isPrimitiveType(type)){ + codegenModel.vendorExtensions.put("x-isPrimitive", true); + } } } @@ -878,6 +883,11 @@ private boolean isModelledType(CodegenOperation co) { return !Boolean.TRUE.equals(co.returnTypeIsPrimitive); } + private boolean isPrimitiveType(String type) { + final String[] primitives = {"number", "integer", "string", "boolean", "null"}; + return Arrays.asList(primitives).contains(type); + } + @SuppressWarnings("unchecked") @Override public Map postProcessOperations(Map objs) { diff --git a/modules/swagger-codegen/src/main/resources/Javascript/partial_model_generic.mustache b/modules/swagger-codegen/src/main/resources/Javascript/partial_model_generic.mustache index e955fda3869..74d410ddec8 100644 --- a/modules/swagger-codegen/src/main/resources/Javascript/partial_model_generic.mustache +++ b/modules/swagger-codegen/src/main/resources/Javascript/partial_model_generic.mustache @@ -36,6 +36,12 @@ * @return {{=< >=}}{module:<#invokerPackage>/<#modelPackage>/}<={{ }}=> The populated {{classname}} instance. */ {{/emitJSDoc}} +{{#vendorExtensions.x-isPrimitive}} + exports.constructFromObject = function(data, obj) { + return data; + } +{{/vendorExtensions.x-isPrimitive}} +{{^vendorExtensions.x-isPrimitive}} exports.constructFromObject = function(data, obj) { if (data){{! TODO: support polymorphism: discriminator property on data determines class to instantiate.}} { obj = obj || new exports(); @@ -48,6 +54,7 @@ {{/vars}} } return obj; } +{{/vendorExtensions.x-isPrimitive}} {{#useInheritance}}{{#parentModel}} exports.prototype = Object.create({{classname}}.prototype); exports.prototype.constructor = exports;