[java] Enum in array of array (#66)

This commit is contained in:
Jérémie Bresson 2018-05-18 19:01:11 +02:00 committed by GitHub
parent a1ff502411
commit 82ee8656fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
42 changed files with 122 additions and 124 deletions

View File

@ -19,8 +19,8 @@ package org.openapitools.codegen;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map;
import java.util.List; import java.util.List;
import java.util.Map;
public class CodegenParameter { public class CodegenParameter {
public boolean isFormParam, isQueryParam, isPathParam, isHeaderParam, public boolean isFormParam, isQueryParam, isPathParam, isHeaderParam,
@ -38,6 +38,7 @@ public class CodegenParameter {
public List<String> _enum; public List<String> _enum;
public Map<String, Object> allowableValues; public Map<String, Object> allowableValues;
public CodegenProperty items; public CodegenProperty items;
public CodegenProperty mostInnerItems;
public Map<String, Object> vendorExtensions = new HashMap<String, Object>(); public Map<String, Object> vendorExtensions = new HashMap<String, Object>();
public boolean hasValidation; public boolean hasValidation;
@ -142,6 +143,9 @@ public class CodegenParameter {
if (this.items != null) { if (this.items != null) {
output.items = this.items; output.items = this.items;
} }
if (this.mostInnerItems != null) {
output.mostInnerItems = this.mostInnerItems;
}
if(this.vendorExtensions != null){ if(this.vendorExtensions != null){
output.vendorExtensions = new HashMap<String, Object>(this.vendorExtensions); output.vendorExtensions = new HashMap<String, Object>(this.vendorExtensions);
} }
@ -259,6 +263,8 @@ public class CodegenParameter {
return false; return false;
if (items != null ? !items.equals(that.items) : that.items != null) if (items != null ? !items.equals(that.items) : that.items != null)
return false; return false;
if (mostInnerItems != null ? !mostInnerItems.equals(that.mostInnerItems) : that.mostInnerItems != null)
return false;
if (vendorExtensions != null ? !vendorExtensions.equals(that.vendorExtensions) : that.vendorExtensions != null) if (vendorExtensions != null ? !vendorExtensions.equals(that.vendorExtensions) : that.vendorExtensions != null)
return false; return false;
if (hasValidation != that.hasValidation) if (hasValidation != that.hasValidation)
@ -335,6 +341,7 @@ public class CodegenParameter {
result = 31 * result + (_enum != null ? _enum.hashCode() : 0); result = 31 * result + (_enum != null ? _enum.hashCode() : 0);
result = 31 * result + (allowableValues != null ? allowableValues.hashCode() : 0); result = 31 * result + (allowableValues != null ? allowableValues.hashCode() : 0);
result = 31 * result + (items != null ? items.hashCode() : 0); result = 31 * result + (items != null ? items.hashCode() : 0);
result = 31 * result + (mostInnerItems != null ? mostInnerItems.hashCode() : 0);
result = 31 * result + (vendorExtensions != null ? vendorExtensions.hashCode() : 0); result = 31 * result + (vendorExtensions != null ? vendorExtensions.hashCode() : 0);
result = 31 * result + (hasValidation ? 13:31); result = 31 * result + (hasValidation ? 13:31);
result = 31 * result + (required ? 13:31); result = 31 * result + (required ? 13:31);
@ -399,6 +406,7 @@ public class CodegenParameter {
", _enum=" + _enum + ", _enum=" + _enum +
", allowableValues=" + allowableValues + ", allowableValues=" + allowableValues +
", items=" + items + ", items=" + items +
", mostInnerItems=" + mostInnerItems +
", vendorExtensions=" + vendorExtensions + ", vendorExtensions=" + vendorExtensions +
", hasValidation=" + hasValidation + ", hasValidation=" + hasValidation +
", required=" + required + ", required=" + required +

View File

@ -63,6 +63,7 @@ public class CodegenProperty implements Cloneable {
public List<String> _enum; public List<String> _enum;
public Map<String, Object> allowableValues; public Map<String, Object> allowableValues;
public CodegenProperty items; public CodegenProperty items;
public CodegenProperty mostInnerItems;
public Map<String, Object> vendorExtensions = new HashMap<String, Object>(); public Map<String, Object> vendorExtensions = new HashMap<String, Object>();
public boolean hasValidation; // true if pattern, maximum, etc are set (only used in the mustache template) public boolean hasValidation; // true if pattern, maximum, etc are set (only used in the mustache template)
public boolean isInherited; public boolean isInherited;
@ -436,6 +437,7 @@ public class CodegenProperty implements Cloneable {
result = prime * result + ((isPrimitiveType ? 13:31)); result = prime * result + ((isPrimitiveType ? 13:31));
result = prime * result + ((isReadOnly ? 13:31)); result = prime * result + ((isReadOnly ? 13:31));
result = prime * result + ((items == null) ? 0 : items.hashCode()); result = prime * result + ((items == null) ? 0 : items.hashCode());
result = prime * result + ((mostInnerItems == null) ? 0 : mostInnerItems.hashCode());
result = prime * result + ((jsonSchema == null) ? 0 : jsonSchema.hashCode()); result = prime * result + ((jsonSchema == null) ? 0 : jsonSchema.hashCode());
result = prime * result + ((max == null) ? 0 : max.hashCode()); result = prime * result + ((max == null) ? 0 : max.hashCode());
result = prime * result + ((maxLength == null) ? 0 : maxLength.hashCode()); result = prime * result + ((maxLength == null) ? 0 : maxLength.hashCode());
@ -700,6 +702,9 @@ public class CodegenProperty implements Cloneable {
if (this.items != null) { if (this.items != null) {
cp.items = this.items; cp.items = this.items;
} }
if (this.mostInnerItems != null) {
cp.mostInnerItems = this.mostInnerItems;
}
if(this.vendorExtensions != null){ if(this.vendorExtensions != null){
cp.vendorExtensions = new HashMap<String, Object>(this.vendorExtensions); cp.vendorExtensions = new HashMap<String, Object>(this.vendorExtensions);
} }
@ -766,6 +771,7 @@ public class CodegenProperty implements Cloneable {
", _enum=" + _enum + ", _enum=" + _enum +
", allowableValues=" + allowableValues + ", allowableValues=" + allowableValues +
", items=" + items + ", items=" + items +
", mostInnerItems=" + mostInnerItems +
", vendorExtensions=" + vendorExtensions + ", vendorExtensions=" + vendorExtensions +
", hasValidation=" + hasValidation + ", hasValidation=" + hasValidation +
", isInherited=" + isInherited + ", isInherited=" + isInherited +

View File

@ -1899,6 +1899,7 @@ public class DefaultCodegen implements CodegenConfig {
property.isPrimitiveType = true; property.isPrimitiveType = true;
} }
property.items = innerProperty; property.items = innerProperty;
property.mostInnerItems = getMostInnerItems(innerProperty);
// inner item is Enum // inner item is Enum
if (isPropertyInnerMostEnum(property)) { if (isPropertyInnerMostEnum(property)) {
// isEnum is set to true when the type is an enum // isEnum is set to true when the type is an enum
@ -1930,6 +1931,7 @@ public class DefaultCodegen implements CodegenConfig {
property.isPrimitiveType = true; property.isPrimitiveType = true;
} }
property.items = innerProperty; property.items = innerProperty;
property.mostInnerItems = getMostInnerItems(innerProperty);
property.dataFormat = innerProperty.dataFormat; property.dataFormat = innerProperty.dataFormat;
// inner item is Enum // inner item is Enum
if (isPropertyInnerMostEnum(property)) { if (isPropertyInnerMostEnum(property)) {
@ -1952,21 +1954,22 @@ public class DefaultCodegen implements CodegenConfig {
* @return True if the inner most type is enum * @return True if the inner most type is enum
*/ */
protected Boolean isPropertyInnerMostEnum(CodegenProperty property) { protected Boolean isPropertyInnerMostEnum(CodegenProperty property) {
CodegenProperty currentProperty = property; CodegenProperty currentProperty = getMostInnerItems(property);
while (currentProperty != null && (Boolean.TRUE.equals(currentProperty.isMapContainer)
|| Boolean.TRUE.equals(currentProperty.isListContainer))) {
currentProperty = currentProperty.items;
}
return currentProperty == null ? false : currentProperty.isEnum; return currentProperty == null ? false : currentProperty.isEnum;
} }
protected Map<String, Object> getInnerEnumAllowableValues(CodegenProperty property) { protected CodegenProperty getMostInnerItems(CodegenProperty property) {
CodegenProperty currentProperty = property; CodegenProperty currentProperty = property;
while (currentProperty != null && (Boolean.TRUE.equals(currentProperty.isMapContainer) while (currentProperty != null && (Boolean.TRUE.equals(currentProperty.isMapContainer)
|| Boolean.TRUE.equals(currentProperty.isListContainer))) { || Boolean.TRUE.equals(currentProperty.isListContainer))) {
currentProperty = currentProperty.items; currentProperty = currentProperty.items;
} }
return currentProperty;
}
protected Map<String, Object> getInnerEnumAllowableValues(CodegenProperty property) {
CodegenProperty currentProperty = getMostInnerItems(property);
return currentProperty == null ? new HashMap<String, Object>() : currentProperty.allowableValues; return currentProperty == null ? new HashMap<String, Object>() : currentProperty.allowableValues;
} }
@ -2530,6 +2533,7 @@ public class DefaultCodegen implements CodegenConfig {
collectionFormat = StringUtils.isEmpty(collectionFormat) ? "csv" : collectionFormat; collectionFormat = StringUtils.isEmpty(collectionFormat) ? "csv" : collectionFormat;
CodegenProperty codegenProperty = fromProperty("inner", inner); CodegenProperty codegenProperty = fromProperty("inner", inner);
codegenParameter.items = codegenProperty; codegenParameter.items = codegenProperty;
codegenParameter.mostInnerItems = codegenProperty.mostInnerItems;
codegenParameter.baseType = codegenProperty.dataType; codegenParameter.baseType = codegenProperty.dataType;
codegenParameter.isContainer = true; codegenParameter.isContainer = true;
codegenParameter.isListContainer = true; codegenParameter.isListContainer = true;
@ -2544,6 +2548,7 @@ public class DefaultCodegen implements CodegenConfig {
} else if (ModelUtils.isMapSchema(parameterSchema)) { // for map parameter } else if (ModelUtils.isMapSchema(parameterSchema)) { // for map parameter
CodegenProperty codegenProperty = fromProperty("inner", (Schema) parameterSchema.getAdditionalProperties()); CodegenProperty codegenProperty = fromProperty("inner", (Schema) parameterSchema.getAdditionalProperties());
codegenParameter.items = codegenProperty; codegenParameter.items = codegenProperty;
codegenParameter.mostInnerItems = codegenProperty.mostInnerItems;
codegenParameter.baseType = codegenProperty.dataType; codegenParameter.baseType = codegenProperty.dataType;
codegenParameter.isContainer = true; codegenParameter.isContainer = true;
codegenParameter.isMapContainer = true; codegenParameter.isMapContainer = true;
@ -2598,6 +2603,7 @@ public class DefaultCodegen implements CodegenConfig {
codegenParameter.datatypeWithEnum = codegenProperty.datatypeWithEnum; codegenParameter.datatypeWithEnum = codegenProperty.datatypeWithEnum;
codegenParameter.enumName = codegenProperty.enumName; codegenParameter.enumName = codegenProperty.enumName;
codegenParameter.items = codegenProperty.items; codegenParameter.items = codegenProperty.items;
codegenParameter.mostInnerItems = codegenProperty.mostInnerItems;
} }
codegenParameter.collectionFormat = collectionFormat; codegenParameter.collectionFormat = collectionFormat;
@ -4084,6 +4090,7 @@ public class DefaultCodegen implements CodegenConfig {
codegenParameter = fromFormProperty(entry.getKey(), inner, imports); codegenParameter = fromFormProperty(entry.getKey(), inner, imports);
CodegenProperty codegenProperty = fromProperty("inner", inner); CodegenProperty codegenProperty = fromProperty("inner", inner);
codegenParameter.items = codegenProperty; codegenParameter.items = codegenProperty;
codegenParameter.mostInnerItems = codegenProperty.mostInnerItems;
codegenParameter.baseType = codegenProperty.dataType; codegenParameter.baseType = codegenProperty.dataType;
codegenParameter.isPrimitiveType = false; codegenParameter.isPrimitiveType = false;
codegenParameter.isContainer = true; codegenParameter.isContainer = true;
@ -4159,6 +4166,7 @@ public class DefaultCodegen implements CodegenConfig {
if (codegenProperty.items != null && codegenProperty.items.isEnum) { if (codegenProperty.items != null && codegenProperty.items.isEnum) {
codegenParameter.items = codegenProperty.items; codegenParameter.items = codegenProperty.items;
codegenParameter.mostInnerItems = codegenProperty.mostInnerItems;
} }
// import // import
@ -4238,6 +4246,7 @@ public class DefaultCodegen implements CodegenConfig {
} }
codegenParameter.paramName = toParamName(codegenParameter.baseName); codegenParameter.paramName = toParamName(codegenParameter.baseName);
codegenParameter.items = codegenProperty.items; codegenParameter.items = codegenProperty.items;
codegenParameter.mostInnerItems = codegenProperty.mostInnerItems;
codegenParameter.dataType = getTypeDeclaration(schema); codegenParameter.dataType = getTypeDeclaration(schema);
codegenParameter.baseType = getSchemaType(inner); codegenParameter.baseType = getSchemaType(inner);
codegenParameter.isContainer = Boolean.TRUE; codegenParameter.isContainer = Boolean.TRUE;
@ -4272,6 +4281,7 @@ public class DefaultCodegen implements CodegenConfig {
} }
codegenParameter.paramName = toArrayModelParamName(codegenParameter.baseName); codegenParameter.paramName = toArrayModelParamName(codegenParameter.baseName);
codegenParameter.items = codegenProperty.items; codegenParameter.items = codegenProperty.items;
codegenParameter.mostInnerItems = codegenProperty.mostInnerItems;
codegenParameter.dataType = getTypeDeclaration(arraySchema); codegenParameter.dataType = getTypeDeclaration(arraySchema);
codegenParameter.baseType = getSchemaType(arraySchema); codegenParameter.baseType = getSchemaType(arraySchema);
codegenParameter.isContainer = Boolean.TRUE; codegenParameter.isContainer = Boolean.TRUE;

View File

@ -13,14 +13,12 @@ public class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{{#parcela
{{^isContainer}} {{^isContainer}}
{{>modelInnerEnum}} {{>modelInnerEnum}}
{{/isContainer}} {{/isContainer}}
{{/isEnum}} {{#isContainer}}
{{#items.isEnum}} {{#mostInnerItems}}
{{#items}}
{{^isContainer}}
{{>modelInnerEnum}} {{>modelInnerEnum}}
{{/isContainer}} {{/mostInnerItems}}
{{/items}} {{/isContainer}}
{{/items.isEnum}} {{/isEnum}}
{{#jackson}} {{#jackson}}
@JsonProperty("{{baseName}}") @JsonProperty("{{baseName}}")
{{#withXml}} {{#withXml}}

View File

@ -6,14 +6,12 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#seriali
{{^isContainer}} {{^isContainer}}
{{>enumClass}} {{>enumClass}}
{{/isContainer}} {{/isContainer}}
{{/isEnum}} {{#isContainer}}
{{#items.isEnum}} {{#mostInnerItems}}
{{#items}}
{{^isContainer}}
{{>enumClass}} {{>enumClass}}
{{/isContainer}} {{/mostInnerItems}}
{{/items}} {{/isContainer}}
{{/items.isEnum}} {{/isEnum}}
{{#jackson}} {{#jackson}}
@JsonProperty("{{baseName}}") @JsonProperty("{{baseName}}")
{{/jackson}} {{/jackson}}

View File

@ -6,11 +6,11 @@ import javax.xml.bind.annotation.*;
{{#description}}@ApiModel(description = "{{{description}}}"){{/description}} {{#description}}@ApiModel(description = "{{{description}}}"){{/description}}
public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} { public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} {
{{#vars}}{{#isEnum}} {{#vars}}{{#isEnum}}{{^isContainer}}
{{>enumClass}}{{/isEnum}}{{#items.isEnum}}{{#items}} {{>enumClass}}{{/isContainer}}{{#isContainer}}{{#mostInnerItems}}
{{>enumClass}}{{/items}}{{/items.isEnum}} {{>enumClass}}{{/mostInnerItems}}{{/isContainer}}{{/isEnum}}
{{#isContainer}} {{#isContainer}}
private {{{datatypeWithEnum}}} {{name}}{{#required}} = {{{defaultValue}}}{{/required}}{{^required}} = null{{/required}}; private {{{datatypeWithEnum}}} {{name}}{{#required}} = {{{defaultValue}}}{{/required}}{{^required}} = null{{/required}};
{{/isContainer}} {{/isContainer}}

View File

@ -24,10 +24,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
{{/description}} {{/description}}
public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} { public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {
{{#vars}}{{#isEnum}}{{^isContainer}} {{#vars}}{{#isEnum}}{{^isContainer}}
{{>enumClass}}{{/isContainer}}{{#isContainer}}{{#mostInnerItems}}
{{>enumClass}}{{/isContainer}}{{/isEnum}}{{#items.isEnum}}{{#items}} {{>enumClass}}{{/mostInnerItems}}{{/isContainer}}{{/isEnum}}
{{^isContainer}}{{>enumClass}}{{/isContainer}}{{/items}}{{/items.isEnum}}
{{#withXml}} {{#withXml}}
@XmlElement(name="{{baseName}}"{{#required}}, required = {{required}}{{/required}}) @XmlElement(name="{{baseName}}"{{#required}}, required = {{required}}{{/required}})
{{/withXml}} {{/withXml}}

View File

@ -8,15 +8,13 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#seriali
{{#isEnum}} {{#isEnum}}
{{^isContainer}} {{^isContainer}}
{{>enumClass}} {{>enumClass}}
{{/isContainer}}
{{#isContainer}}
{{#mostInnerItems}}
{{>enumClass}}
{{/mostInnerItems}}
{{/isContainer}} {{/isContainer}}
{{/isEnum}} {{/isEnum}}
{{#items.isEnum}}
{{#items}}
{{^isContainer}}
{{>enumClass}}
{{/isContainer}}
{{/items}}
{{/items.isEnum}}
{{#jackson}} {{#jackson}}
@JsonProperty("{{baseName}}") @JsonProperty("{{baseName}}")
{{/jackson}} {{/jackson}}

View File

@ -6,11 +6,12 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#seriali
{{#serializableModel}} {{#serializableModel}}
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
{{/serializableModel}} {{/serializableModel}}
{{#vars}}{{#isEnum}} {{#vars}}{{#isEnum}}{{^isContainer}}
{{>enumClass}}{{/isEnum}}{{#items.isEnum}}{{#items}} {{>enumClass}}{{/isContainer}}{{#isContainer}}{{#mostInnerItems}}
{{>enumClass}}{{/mostInnerItems}}{{/isContainer}}{{/isEnum}}
{{>enumClass}}{{/items}}{{/items.isEnum}}
private {{{datatypeWithEnum}}} {{name}} = {{{defaultValue}}};{{/vars}} private {{{datatypeWithEnum}}} {{name}} = {{{defaultValue}}};{{/vars}}
{{#vars}} {{#vars}}

View File

@ -8,9 +8,9 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#seriali
{{/serializableModel}} {{/serializableModel}}
{{#vars}}{{#isEnum}}{{^isContainer}} {{#vars}}{{#isEnum}}{{^isContainer}}
{{>enumClass}}{{/isContainer}}{{/isEnum}}{{#items.isEnum}}{{#items}} {{>enumClass}}{{/isContainer}}{{#isContainer}}{{#mostInnerItems}}
{{^isContainer}}{{>enumClass}}{{/isContainer}}{{/items}}{{/items.isEnum}} {{>enumClass}}{{/mostInnerItems}}{{/isContainer}}{{/isEnum}}
private {{{datatypeWithEnum}}} {{name}} = {{{defaultValue}}};{{/vars}} private {{{datatypeWithEnum}}} {{name}} = {{{defaultValue}}};{{/vars}}
{{#vars}} {{#vars}}

View File

@ -6,9 +6,9 @@ import com.fasterxml.jackson.annotation.JsonProperty;
public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} { public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} {
{{#vars}}{{#isEnum}}{{^isContainer}} {{#vars}}{{#isEnum}}{{^isContainer}}
{{>enumClass}}{{/isContainer}}{{/isEnum}}{{#items.isEnum}}{{#items}} {{>enumClass}}{{/isContainer}}{{#isContainer}}{{#mostInnerItems}}
{{^isContainer}}{{>enumClass}}{{/isContainer}}{{/items}}{{/items.isEnum}} {{>enumClass}}{{/mostInnerItems}}{{/isContainer}}{{/isEnum}}
private {{#useBeanValidation}}@Valid{{/useBeanValidation}} {{{datatypeWithEnum}}} {{name}} = {{{defaultValue}}};{{/vars}} private {{#useBeanValidation}}@Valid{{/useBeanValidation}} {{{datatypeWithEnum}}} {{name}} = {{{defaultValue}}};{{/vars}}
{{#vars}} {{#vars}}

View File

@ -12,15 +12,13 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#seriali
{{#isEnum}} {{#isEnum}}
{{^isContainer}} {{^isContainer}}
{{>enumClass}} {{>enumClass}}
{{/isContainer}}
{{#isContainer}}
{{#mostInnerItems}}
{{>enumClass}}
{{/mostInnerItems}}
{{/isContainer}} {{/isContainer}}
{{/isEnum}} {{/isEnum}}
{{#items.isEnum}}
{{#items}}
{{^isContainer}}
{{>enumClass}}
{{/isContainer}}
{{/items}}
{{/items.isEnum}}
{{#jackson}} {{#jackson}}
@JsonProperty("{{baseName}}") @JsonProperty("{{baseName}}")
{{/jackson}} {{/jackson}}

View File

@ -14,14 +14,12 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#seriali
{{^isContainer}} {{^isContainer}}
{{>enumClass}} {{>enumClass}}
{{/isContainer}} {{/isContainer}}
{{/isEnum}} {{#isContainer}}
{{#items.isEnum}} {{#mostInnerItems}}
{{#items}}
{{^isContainer}}
{{>enumClass}} {{>enumClass}}
{{/isContainer}} {{/mostInnerItems}}
{{/items}} {{/isContainer}}
{{/items.isEnum}} {{/isEnum}}
{{#jackson}} {{#jackson}}
@JsonProperty("{{baseName}}"){{#withXml}} @JsonProperty("{{baseName}}"){{#withXml}}
@JacksonXmlProperty({{#isXmlAttribute}}isAttribute = true, {{/isXmlAttribute}}{{#xmlNamespace}}namespace="{{xmlNamespace}}", {{/xmlNamespace}}localName = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}"){{/withXml}} @JacksonXmlProperty({{#isXmlAttribute}}isAttribute = true, {{/isXmlAttribute}}{{#xmlNamespace}}namespace="{{xmlNamespace}}", {{/xmlNamespace}}localName = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}"){{/withXml}}

View File

@ -1,10 +1,10 @@
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} { public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} {
{{#vars}}{{#isEnum}} {{#vars}}{{#isEnum}}{{^isContainer}}
{{>enumClass}}{{/isEnum}}{{#items.isEnum}}{{#items}} {{>enumClass}}{{/isContainer}}{{#isContainer}}{{#mostInnerItems}}
{{>enumClass}}{{/items}}{{/items.isEnum}} {{>enumClass}}{{/mostInnerItems}}{{/isContainer}}{{/isEnum}}
private {{{datatypeWithEnum}}} {{name}} = {{{defaultValue}}};{{/vars}} private {{{datatypeWithEnum}}} {{name}} = {{{defaultValue}}};{{/vars}}
public {{classname}} () { public {{classname}} () {

View File

@ -9,14 +9,12 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#seriali
{{^isContainer}} {{^isContainer}}
{{>enumClass}} {{>enumClass}}
{{/isContainer}} {{/isContainer}}
{{#isContainer}}
{{#mostInnerItems}}
{{>enumClass}}
{{/mostInnerItems}}
{{/isContainer}}
{{/isEnum}} {{/isEnum}}
{{#items.isEnum}}
{{#items}}
{{^isContainer}}
{{>enumClass}}
{{/isContainer}}
{{/items}}
{{/items.isEnum}}
{{#jackson}} {{#jackson}}
@JsonProperty("{{baseName}}") @JsonProperty("{{baseName}}")
{{/jackson}} {{/jackson}}

View File

@ -6,15 +6,13 @@ public class {{classname}}{{#parent}} extends {{{parent}}}{{/parent}}{{#interfac
{{#isEnum}} {{#isEnum}}
{{^isContainer}} {{^isContainer}}
{{>modelInnerEnum}} {{>modelInnerEnum}}
{{/isContainer}}
{{#isContainer}}
{{#mostInnerItems}}
{{>modelInnerEnum}}
{{/mostInnerItems}}
{{/isContainer}} {{/isContainer}}
{{/isEnum}} {{/isEnum}}
{{#items.isEnum}}
{{#items}}
{{^isContainer}}
{{>modelInnerEnum}}
{{/isContainer}}
{{/items}}
{{/items.isEnum}}
/** /**
{{#description}} {{#description}}
* {{{description}}} * {{{description}}}

View File

@ -13,15 +13,13 @@ public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#seriali
{{#isEnum}} {{#isEnum}}
{{^isContainer}} {{^isContainer}}
{{>enumClass}} {{>enumClass}}
{{/isContainer}}
{{#isContainer}}
{{#mostInnerItems}}
{{>enumClass}}
{{/mostInnerItems}}
{{/isContainer}} {{/isContainer}}
{{/isEnum}} {{/isEnum}}
{{#items.isEnum}}
{{#items}}
{{^isContainer}}
{{>enumClass}}
{{/isContainer}}
{{/items}}
{{/items.isEnum}}
{{#jackson}} {{#jackson}}
@JsonProperty("{{baseName}}"){{#withXml}} @JsonProperty("{{baseName}}"){{#withXml}}
@JacksonXmlProperty({{#isXmlAttribute}}isAttribute = true, {{/isXmlAttribute}}{{#xmlNamespace}}namespace="{{xmlNamespace}}", {{/xmlNamespace}}localName = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}"){{/withXml}} @JacksonXmlProperty({{#isXmlAttribute}}isAttribute = true, {{/isXmlAttribute}}{{#xmlNamespace}}namespace="{{xmlNamespace}}", {{/xmlNamespace}}localName = "{{#xmlName}}{{xmlName}}{{/xmlName}}{{^xmlName}}{{baseName}}{{/xmlName}}"){{/withXml}}

View File

@ -1,11 +1,11 @@
{{#description}}@ApiModel(description = "{{{description}}}"){{/description}} {{#description}}@ApiModel(description = "{{{description}}}"){{/description}}
{{>generatedAnnotation}} {{>generatedAnnotation}}
public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} { public class {{classname}} {{#parent}}extends {{{parent}}}{{/parent}} {{#serializableModel}}implements Serializable{{/serializableModel}} {
{{#vars}}{{#isEnum}} {{#vars}}{{#isEnum}}{{^isContainer}}
{{>enumClass}}{{/isEnum}}{{#items.isEnum}}{{#items}} {{>enumClass}}{{/isContainer}}{{#isContainer}}{{#mostInnerItems}}
{{>enumClass}}{{/items}}{{/items.isEnum}} {{>enumClass}}{{/mostInnerItems}}{{/isContainer}}{{/isEnum}}
private {{{datatypeWithEnum}}} {{name}} = {{{defaultValue}}};{{/vars}} private {{{datatypeWithEnum}}} {{name}} = {{{defaultValue}}};{{/vars}}
{{#vars}} {{#vars}}

View File

@ -75,12 +75,14 @@ public class JavaModelEnumTest {
Assert.assertEquals(enumVar.baseType, "List"); Assert.assertEquals(enumVar.baseType, "List");
Assert.assertTrue(enumVar.isEnum); Assert.assertTrue(enumVar.isEnum);
Assert.assertEquals(enumVar.items.baseName, "name"); Assert.assertEquals(enumVar.mostInnerItems.baseName, "name");
Assert.assertEquals(enumVar.items.dataType, "String"); Assert.assertEquals(enumVar.mostInnerItems.dataType, "String");
Assert.assertEquals(enumVar.items.datatypeWithEnum, "NameEnum"); Assert.assertEquals(enumVar.mostInnerItems.datatypeWithEnum, "NameEnum");
Assert.assertEquals(enumVar.items.name, "name"); Assert.assertEquals(enumVar.mostInnerItems.name, "name");
Assert.assertEquals(enumVar.items.defaultValue, "null"); Assert.assertEquals(enumVar.mostInnerItems.defaultValue, "null");
Assert.assertEquals(enumVar.items.baseType, "String"); Assert.assertEquals(enumVar.mostInnerItems.baseType, "String");
Assert.assertEquals(enumVar.mostInnerItems.baseType, enumVar.items.baseType);
} }
@Test(description = "convert a java model with an enum inside a list") @Test(description = "convert a java model with an enum inside a list")
@ -104,12 +106,14 @@ public class JavaModelEnumTest {
Assert.assertEquals(enumVar.baseType, "List"); Assert.assertEquals(enumVar.baseType, "List");
Assert.assertTrue(enumVar.isEnum); Assert.assertTrue(enumVar.isEnum);
Assert.assertEquals(enumVar.items.items.baseName, "name"); Assert.assertEquals(enumVar.mostInnerItems.baseName, "name");
Assert.assertEquals(enumVar.items.items.dataType, "String"); Assert.assertEquals(enumVar.mostInnerItems.dataType, "String");
Assert.assertEquals(enumVar.items.items.datatypeWithEnum, "NameEnum"); Assert.assertEquals(enumVar.mostInnerItems.datatypeWithEnum, "NameEnum");
Assert.assertEquals(enumVar.items.items.name, "name"); Assert.assertEquals(enumVar.mostInnerItems.name, "name");
Assert.assertEquals(enumVar.items.items.defaultValue, "null"); Assert.assertEquals(enumVar.mostInnerItems.defaultValue, "null");
Assert.assertEquals(enumVar.items.items.baseType, "String"); Assert.assertEquals(enumVar.mostInnerItems.baseType, "String");
Assert.assertEquals(enumVar.mostInnerItems.baseType, enumVar.items.items.baseType);
} }
@Test(description = "not override identical parent enums") @Test(description = "not override identical parent enums")

View File

@ -33,7 +33,6 @@ public class Order {
@ApiModelProperty(value = "") @ApiModelProperty(value = "")
private Date shipDate = null; private Date shipDate = null;
@XmlType(name="StatusEnum") @XmlType(name="StatusEnum")
@XmlEnum(String.class) @XmlEnum(String.class)
public enum StatusEnum { public enum StatusEnum {

View File

@ -41,7 +41,6 @@ public class Pet {
@Valid @Valid
private List<Tag> tags = null; private List<Tag> tags = null;
@XmlType(name="StatusEnum") @XmlType(name="StatusEnum")
@XmlEnum(String.class) @XmlEnum(String.class)
public enum StatusEnum { public enum StatusEnum {

View File

@ -33,7 +33,6 @@ public class Order {
@ApiModelProperty(value = "") @ApiModelProperty(value = "")
private Date shipDate = null; private Date shipDate = null;
@XmlType(name="StatusEnum") @XmlType(name="StatusEnum")
@XmlEnum(String.class) @XmlEnum(String.class)
public enum StatusEnum { public enum StatusEnum {

View File

@ -41,7 +41,6 @@ public class Pet {
@Valid @Valid
private List<Tag> tags = null; private List<Tag> tags = null;
@XmlType(name="StatusEnum") @XmlType(name="StatusEnum")
@XmlEnum(String.class) @XmlEnum(String.class)
public enum StatusEnum { public enum StatusEnum {

View File

@ -17,7 +17,6 @@ import com.fasterxml.jackson.annotation.JsonProperty;
public class EnumArrays { public class EnumArrays {
@XmlType(name="JustSymbolEnum") @XmlType(name="JustSymbolEnum")
@XmlEnum(String.class) @XmlEnum(String.class)
public enum JustSymbolEnum { public enum JustSymbolEnum {
@ -53,7 +52,6 @@ public enum JustSymbolEnum {
@ApiModelProperty(value = "") @ApiModelProperty(value = "")
private JustSymbolEnum justSymbol = null; private JustSymbolEnum justSymbol = null;
@XmlType(name="ArrayEnumEnum") @XmlType(name="ArrayEnumEnum")
@XmlEnum(String.class) @XmlEnum(String.class)
public enum ArrayEnumEnum { public enum ArrayEnumEnum {

View File

@ -16,7 +16,6 @@ import com.fasterxml.jackson.annotation.JsonProperty;
public class EnumTest { public class EnumTest {
@XmlType(name="EnumStringEnum") @XmlType(name="EnumStringEnum")
@XmlEnum(String.class) @XmlEnum(String.class)
public enum EnumStringEnum { public enum EnumStringEnum {
@ -52,7 +51,6 @@ public enum EnumStringEnum {
@ApiModelProperty(value = "") @ApiModelProperty(value = "")
private EnumStringEnum enumString = null; private EnumStringEnum enumString = null;
@XmlType(name="EnumStringRequiredEnum") @XmlType(name="EnumStringRequiredEnum")
@XmlEnum(String.class) @XmlEnum(String.class)
public enum EnumStringRequiredEnum { public enum EnumStringRequiredEnum {
@ -88,7 +86,6 @@ public enum EnumStringRequiredEnum {
@ApiModelProperty(required = true, value = "") @ApiModelProperty(required = true, value = "")
private EnumStringRequiredEnum enumStringRequired = null; private EnumStringRequiredEnum enumStringRequired = null;
@XmlType(name="EnumIntegerEnum") @XmlType(name="EnumIntegerEnum")
@XmlEnum(Integer.class) @XmlEnum(Integer.class)
public enum EnumIntegerEnum { public enum EnumIntegerEnum {
@ -124,7 +121,6 @@ public enum EnumIntegerEnum {
@ApiModelProperty(value = "") @ApiModelProperty(value = "")
private EnumIntegerEnum enumInteger = null; private EnumIntegerEnum enumInteger = null;
@XmlType(name="EnumNumberEnum") @XmlType(name="EnumNumberEnum")
@XmlEnum(Double.class) @XmlEnum(Double.class)
public enum EnumNumberEnum { public enum EnumNumberEnum {

View File

@ -22,7 +22,6 @@ public class MapTest {
@Valid @Valid
private Map<String, Map<String, String>> mapMapOfString = null; private Map<String, Map<String, String>> mapMapOfString = null;
@XmlType(name="InnerEnum") @XmlType(name="InnerEnum")
@XmlEnum(String.class) @XmlEnum(String.class)
public enum InnerEnum { public enum InnerEnum {

View File

@ -28,7 +28,6 @@ public class Order {
@ApiModelProperty(value = "") @ApiModelProperty(value = "")
private Date shipDate = null; private Date shipDate = null;
@XmlType(name="StatusEnum") @XmlType(name="StatusEnum")
@XmlEnum(String.class) @XmlEnum(String.class)
public enum StatusEnum { public enum StatusEnum {

View File

@ -36,7 +36,6 @@ public class Pet {
@Valid @Valid
private List<Tag> tags = null; private List<Tag> tags = null;
@XmlType(name="StatusEnum") @XmlType(name="StatusEnum")
@XmlEnum(String.class) @XmlEnum(String.class)
public enum StatusEnum { public enum StatusEnum {

View File

@ -93,7 +93,7 @@ public class EnumArrays implements Serializable {
return null; return null;
} }
} }
@JsonProperty("array_enum") @JsonProperty("array_enum")
private List<ArrayEnumEnum> arrayEnum = null; private List<ArrayEnumEnum> arrayEnum = null;

View File

@ -63,7 +63,7 @@ public class MapTest implements Serializable {
return null; return null;
} }
} }
@JsonProperty("map_of_enum_string") @JsonProperty("map_of_enum_string")
private Map<String, InnerEnum> mapOfEnumString = null; private Map<String, InnerEnum> mapOfEnumString = null;

View File

@ -48,7 +48,7 @@ public enum JustSymbolEnum {
} }
private @Valid JustSymbolEnum justSymbol = null; private @Valid JustSymbolEnum justSymbol = null;
public enum ArrayEnumEnum { public enum ArrayEnumEnum {
FISH(String.valueOf("fish")), CRAB(String.valueOf("crab")); FISH(String.valueOf("fish")), CRAB(String.valueOf("crab"));

View File

@ -16,7 +16,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
public class MapTest implements Serializable { public class MapTest implements Serializable {
private @Valid Map<String, Map<String, String>> mapMapOfString = new HashMap<String, Map<String, String>>(); private @Valid Map<String, Map<String, String>> mapMapOfString = new HashMap<String, Map<String, String>>();
public enum InnerEnum { public enum InnerEnum {
UPPER(String.valueOf("UPPER")), LOWER(String.valueOf("lower")); UPPER(String.valueOf("UPPER")), LOWER(String.valueOf("lower"));

View File

@ -48,7 +48,7 @@ public enum JustSymbolEnum {
} }
private @Valid JustSymbolEnum justSymbol = null; private @Valid JustSymbolEnum justSymbol = null;
public enum ArrayEnumEnum { public enum ArrayEnumEnum {
FISH(String.valueOf("fish")), CRAB(String.valueOf("crab")); FISH(String.valueOf("fish")), CRAB(String.valueOf("crab"));

View File

@ -16,7 +16,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
public class MapTest implements Serializable { public class MapTest implements Serializable {
private @Valid Map<String, Map<String, String>> mapMapOfString = new HashMap<String, Map<String, String>>(); private @Valid Map<String, Map<String, String>> mapMapOfString = new HashMap<String, Map<String, String>>();
public enum InnerEnum { public enum InnerEnum {
UPPER(String.valueOf("UPPER")), LOWER(String.valueOf("lower")); UPPER(String.valueOf("UPPER")), LOWER(String.valueOf("lower"));

View File

@ -92,7 +92,7 @@ public class EnumArrays {
return null; return null;
} }
} }
@JsonProperty("array_enum") @JsonProperty("array_enum")
private List<ArrayEnumEnum> arrayEnum = null; private List<ArrayEnumEnum> arrayEnum = null;

View File

@ -62,7 +62,7 @@ public class MapTest {
return null; return null;
} }
} }
@JsonProperty("map_of_enum_string") @JsonProperty("map_of_enum_string")
private Map<String, InnerEnum> mapOfEnumString = null; private Map<String, InnerEnum> mapOfEnumString = null;

View File

@ -92,7 +92,7 @@ public class EnumArrays {
return null; return null;
} }
} }
@JsonProperty("array_enum") @JsonProperty("array_enum")
private List<ArrayEnumEnum> arrayEnum = null; private List<ArrayEnumEnum> arrayEnum = null;

View File

@ -62,7 +62,7 @@ public class MapTest {
return null; return null;
} }
} }
@JsonProperty("map_of_enum_string") @JsonProperty("map_of_enum_string")
private Map<String, InnerEnum> mapOfEnumString = null; private Map<String, InnerEnum> mapOfEnumString = null;

View File

@ -92,7 +92,7 @@ public class EnumArrays {
return null; return null;
} }
} }
@JsonProperty("array_enum") @JsonProperty("array_enum")
private List<ArrayEnumEnum> arrayEnum = null; private List<ArrayEnumEnum> arrayEnum = null;

View File

@ -62,7 +62,7 @@ public class MapTest {
return null; return null;
} }
} }
@JsonProperty("map_of_enum_string") @JsonProperty("map_of_enum_string")
private Map<String, InnerEnum> mapOfEnumString = null; private Map<String, InnerEnum> mapOfEnumString = null;

View File

@ -92,7 +92,7 @@ public class EnumArrays {
return null; return null;
} }
} }
@JsonProperty("array_enum") @JsonProperty("array_enum")
private List<ArrayEnumEnum> arrayEnum = null; private List<ArrayEnumEnum> arrayEnum = null;

View File

@ -62,7 +62,7 @@ public class MapTest {
return null; return null;
} }
} }
@JsonProperty("map_of_enum_string") @JsonProperty("map_of_enum_string")
private Map<String, InnerEnum> mapOfEnumString = null; private Map<String, InnerEnum> mapOfEnumString = null;