This is a fix to support enums in query parameters. Enum-related information was not being stored on `CodegenParameter` previously; it is now. Test cases have been added to make sure that the enum information is being properly processed from the model.
This commit is contained in:
Vivin Paliath
2016-02-17 13:37:44 -07:00
parent 029912b25d
commit c3c73b8dae
4 changed files with 110 additions and 5 deletions

View File

@@ -7,9 +7,9 @@ import java.util.List;
public class CodegenParameter {
public Boolean isFormParam, isQueryParam, isPathParam, isHeaderParam,
isCookieParam, isBodyParam, hasMore, isContainer,
isCookieParam, isBodyParam, hasMore, isContainer,
secondaryParam, isCollectionFormatMulti;
public String baseName, paramName, dataType, collectionFormat, description, baseType, defaultValue;
public String baseName, paramName, dataType, datatypeWithEnum, collectionFormat, description, baseType, defaultValue;
public String jsonSchema;
public Boolean isString, isInteger, isLong, isFloat, isDouble, isByteArray, isBinary, isBoolean, isDate, isDateTime;
public Boolean isListContainer, isMapContainer;
@@ -17,6 +17,7 @@ public class CodegenParameter {
public boolean isEnum;
public List<String> _enum;
public Map<String, Object> allowableValues;
public CodegenProperty items;
public Map<String, Object> vendorExtensions;
/**
@@ -81,6 +82,7 @@ public class CodegenParameter {
output.baseName = this.baseName;
output.paramName = this.paramName;
output.dataType = this.dataType;
output.datatypeWithEnum = this.datatypeWithEnum;
output.collectionFormat = this.collectionFormat;
output.isCollectionFormatMulti = this.isCollectionFormatMulti;
output.description = this.description;
@@ -112,6 +114,9 @@ public class CodegenParameter {
if (this.allowableValues != null) {
output.allowableValues = new HashMap<String, Object>(this.allowableValues);
}
if (this.items != null) {
output.items = this.items;
}
output.vendorExtensions = this.vendorExtensions;
output.isBinary = this.isBinary;
output.isByteArray = this.isByteArray;

View File

@@ -1660,9 +1660,16 @@ public class DefaultCodegen {
setParameterBooleanFlagWithCodegenProperty(p, model);
p.dataType = model.datatype;
if(model.isEnum) {
p.datatypeWithEnum = model.datatypeWithEnum;
}
p.isEnum = model.isEnum;
p._enum = model._enum;
p.allowableValues = model.allowableValues;
if(model.items != null && model.items.isEnum) {
p.datatypeWithEnum = model.datatypeWithEnum;
p.items = model.items;
}
p.collectionFormat = collectionFormat;
if(collectionFormat != null && collectionFormat.equals("multi")) {
p.isCollectionFormatMulti = true;