Skip to content

Commit 92193f7

Browse files
authored
Adds isInnerEnum to CodegenProperty (OpenAPITools#12860)
* added nonNullableVars * added return property to operation * added return property to operation * build samples * added inner enum * build samples * added a comment
1 parent 8d62e59 commit 92193f7

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
149149
public boolean isArray;
150150
public boolean isMap;
151151
public boolean isEnum;
152+
public boolean isInnerEnum; // Enums declared inline will be located inside the generic model, changing how the enum is referenced in some cases.
152153
public boolean isReadOnly;
153154
public boolean isWriteOnly;
154155
public boolean isNullable;
@@ -925,6 +926,7 @@ public String toString() {
925926
sb.append(", isArray=").append(isArray);
926927
sb.append(", isMap=").append(isMap);
927928
sb.append(", isEnum=").append(isEnum);
929+
sb.append(", isInnerEnum=").append(isInnerEnum);
928930
sb.append(", isAnyType=").append(isAnyType);
929931
sb.append(", isReadOnly=").append(isReadOnly);
930932
sb.append(", isWriteOnly=").append(isWriteOnly);
@@ -1004,6 +1006,7 @@ public boolean equals(Object o) {
10041006
isArray == that.isArray &&
10051007
isMap == that.isMap &&
10061008
isEnum == that.isEnum &&
1009+
isInnerEnum == that.isInnerEnum &&
10071010
isAnyType == that.isAnyType &&
10081011
isReadOnly == that.isReadOnly &&
10091012
isWriteOnly == that.isWriteOnly &&
@@ -1078,7 +1081,7 @@ public int hashCode() {
10781081
hasMoreNonReadOnly, isPrimitiveType, isModel, isContainer, isString, isNumeric,
10791082
isInteger, isLong, isNumber, isFloat, isDouble, isDecimal, isByteArray, isBinary, isFile,
10801083
isBoolean, isDate, isDateTime, isUuid, isUri, isEmail, isFreeFormObject,
1081-
isArray, isMap, isEnum, isAnyType, isReadOnly, isWriteOnly, isNullable, isShort,
1084+
isArray, isMap, isEnum, isInnerEnum, isAnyType, isReadOnly, isWriteOnly, isNullable, isShort,
10821085
isUnboundedInteger, isSelfReference, isCircularReference, isDiscriminator, _enum,
10831086
allowableValues, items, mostInnerItems, additionalProperties, vars, requiredVars,
10841087
vendorExtensions, hasValidation, isInherited, discriminatorValue, nameInCamelCase,

modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3646,6 +3646,7 @@ public CodegenProperty fromProperty(String name, Schema p, boolean required) {
36463646
property._enum.add(String.valueOf(i));
36473647
}
36483648
property.isEnum = true;
3649+
property.isInnerEnum = true;
36493650

36503651
Map<String, Object> allowableValues = new HashMap<>();
36513652
allowableValues.put("values", _enum);
@@ -3791,6 +3792,7 @@ protected void updatePropertyForArray(CodegenProperty property, CodegenProperty
37913792
// isEnum is set to true when the type is an enum
37923793
// or the inner type of an array/map is an enum
37933794
property.isEnum = true;
3795+
property.isInnerEnum = true;
37943796
// update datatypeWithEnum and default value for array
37953797
// e.g. List<string> => List<StatusEnum>
37963798
updateDataTypeWithEnumForArray(property);
@@ -3827,6 +3829,7 @@ protected void updatePropertyForMap(CodegenProperty property, CodegenProperty in
38273829
// isEnum is set to true when the type is an enum
38283830
// or the inner type of an array/map is an enum
38293831
property.isEnum = true;
3832+
property.isInnerEnum = true;
38303833
// update datatypeWithEnum and default value for map
38313834
// e.g. Dictionary<string, string> => Dictionary<string, StatusEnum>
38323835
updateDataTypeWithEnumForMap(property);

samples/server/petstore/java-undertow/src/main/java/org/openapitools/handler/PathHandlerInterface.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -539,10 +539,10 @@ public interface PathHandlerInterface {
539539
* <p><b>Response headers</b>: [CodegenProperty{openApiType='integer', baseName='X-Rate-Limit', complexType='null', getter='getxRateLimit', setter='setxRateLimit', description='calls per hour allowed by the user', dataType='Integer', datatypeWithEnum='Integer', dataFormat='int32', name='xRateLimit', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Rate-Limit;', baseType='Integer', containerType='null', title='null', unescapedDescription='calls per hour allowed by the user', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
540540
"type" : "integer",
541541
"format" : "int32"
542-
}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, hasMoreNonReadOnly=false, isPrimitiveType=true, isModel=false, isContainer=false, isString=false, isNumeric=true, isInteger=true, isShort=true, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=false, isUuid=false, isUri=false, isEmail=false, isFreeFormObject=false, isArray=false, isMap=false, isEnum=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='XRateLimit', nameInSnakeCase='X_RATE_LIMIT', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false}, CodegenProperty{openApiType='string', baseName='X-Expires-After', complexType='Date', getter='getxExpiresAfter', setter='setxExpiresAfter', description='date in UTC when token expires', dataType='Date', datatypeWithEnum='Date', dataFormat='date-time', name='xExpiresAfter', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Expires-After;', baseType='Date', containerType='null', title='null', unescapedDescription='date in UTC when token expires', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
542+
}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, hasMoreNonReadOnly=false, isPrimitiveType=true, isModel=false, isContainer=false, isString=false, isNumeric=true, isInteger=true, isShort=true, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=false, isUuid=false, isUri=false, isEmail=false, isFreeFormObject=false, isArray=false, isMap=false, isEnum=false, isInnerEnum=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='XRateLimit', nameInSnakeCase='X_RATE_LIMIT', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false}, CodegenProperty{openApiType='string', baseName='X-Expires-After', complexType='Date', getter='getxExpiresAfter', setter='setxExpiresAfter', description='date in UTC when token expires', dataType='Date', datatypeWithEnum='Date', dataFormat='date-time', name='xExpiresAfter', min='null', max='null', defaultValue='null', defaultValueWithParam=' = data.X-Expires-After;', baseType='Date', containerType='null', title='null', unescapedDescription='date in UTC when token expires', maxLength=null, minLength=null, pattern='null', example='null', jsonSchema='{
543543
"type" : "string",
544544
"format" : "date-time"
545-
}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, hasMoreNonReadOnly=false, isPrimitiveType=false, isModel=false, isContainer=false, isString=false, isNumeric=false, isInteger=false, isShort=false, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=true, isUuid=false, isUri=false, isEmail=false, isFreeFormObject=false, isArray=false, isMap=false, isEnum=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='XExpiresAfter', nameInSnakeCase='X_EXPIRES_AFTER', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false}]</p>
545+
}', minimum='null', maximum='null', exclusiveMinimum=false, exclusiveMaximum=false, required=false, deprecated=false, hasMoreNonReadOnly=false, isPrimitiveType=false, isModel=false, isContainer=false, isString=false, isNumeric=false, isInteger=false, isShort=false, isLong=false, isUnboundedInteger=false, isNumber=false, isFloat=false, isDouble=false, isDecimal=false, isByteArray=false, isBinary=false, isFile=false, isBoolean=false, isDate=false, isDateTime=true, isUuid=false, isUri=false, isEmail=false, isFreeFormObject=false, isArray=false, isMap=false, isEnum=false, isInnerEnum=false, isAnyType=false, isReadOnly=false, isWriteOnly=false, isNullable=false, isSelfReference=false, isCircularReference=false, isDiscriminator=false, _enum=null, allowableValues=null, items=null, additionalProperties=null, vars=[], requiredVars=[], mostInnerItems=null, vendorExtensions={}, hasValidation=false, isInherited=false, discriminatorValue='null', nameInCamelCase='XExpiresAfter', nameInSnakeCase='X_EXPIRES_AFTER', enumName='null', maxItems=null, minItems=null, maxProperties=null, minProperties=null, uniqueItems=false, multipleOf=null, isXmlAttribute=false, xmlPrefix='null', xmlName='null', xmlNamespace='null', isXmlWrapped=false, isNull=false, getAdditionalPropertiesIsAnyType=false, getHasVars=false, getHasRequired=false, getHasDiscriminatorWithNonEmptyMapping=false, composedSchemas=null, hasMultipleTypes=false}]</p>
546546
*
547547
* <p><b>Produces</b>: [{mediaType=application/xml}, {mediaType=application/json}]</p>
548548
* <p><b>Returns</b>: {@link String}</p>

0 commit comments

Comments
 (0)