Skip to content

Commit

Permalink
Added vendorExtensions.x-isPrimitive. (#7991)
Browse files Browse the repository at this point in the history
* Added vendorExtensions.x-isPrimitive.

Switch template for constructFromObject.

* Reflect review indication.
  • Loading branch information
satoshi authored and wing328 committed Apr 16, 2018
1 parent 006f084 commit f673531
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -794,6 +794,11 @@ public CodegenModel fromModel(String name, Model model, Map<String, Model> 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);
}
}
}

Expand Down Expand Up @@ -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<String, Object> postProcessOperations(Map<String, Object> objs) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@
* @return {{=< >=}}{module:<#invokerPackage><invokerPackage>/</invokerPackage><#modelPackage><modelPackage>/</modelPackage><classname>}<={{ }}=> The populated <code>{{classname}}</code> 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();
Expand All @@ -48,6 +54,7 @@
{{/vars}} }
return obj;
}
{{/vendorExtensions.x-isPrimitive}}
{{#useInheritance}}{{#parentModel}}
exports.prototype = Object.create({{classname}}.prototype);
exports.prototype.constructor = exports;
Expand Down

0 comments on commit f673531

Please sign in to comment.