diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java
index e5fe46954bf..c3cf38349bb 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java
@@ -148,8 +148,9 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
public boolean isAnyType;
public boolean isArray;
public boolean isMap;
- public boolean isEnum;
+ public boolean isEnum; // true if the enum is defined inline
public boolean isInnerEnum; // Enums declared inline will be located inside the generic model, changing how the enum is referenced in some cases.
+ public boolean isEnumRef; // true if it's a reference to an enum
public boolean isReadOnly;
public boolean isWriteOnly;
public boolean isNullable;
@@ -225,10 +226,14 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
}
@Override
- public void setFormat(String format) { this.format = format; }
+ public void setFormat(String format) {
+ this.format = format;
+ }
@Override
- public String getFormat() { return format; }
+ public String getFormat() {
+ return format;
+ }
@Override
public boolean getIsBooleanSchemaTrue() {
@@ -500,7 +505,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
return required;
}
- public boolean compulsory(){
+ public boolean compulsory() {
return getRequired() && !isNullable;
}
@@ -963,15 +968,32 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
this.hasMultipleTypes = hasMultipleTypes;
}
- public boolean getIsUuid() { return isUuid; }
+ public boolean getIsUuid() {
+ return isUuid;
+ }
- public void setIsUuid(boolean isUuid) { this.isUuid = isUuid; }
+ public void setIsUuid(boolean isUuid) {
+ this.isUuid = isUuid;
+ }
@Override
- public Map getRequiredVarsMap() { return requiredVarsMap; }
+ public Map getRequiredVarsMap() {
+ return requiredVarsMap;
+ }
@Override
- public void setRequiredVarsMap(Map requiredVarsMap) { this.requiredVarsMap=requiredVarsMap; }
+ public void setRequiredVarsMap(Map requiredVarsMap) {
+ this.requiredVarsMap = requiredVarsMap;
+ }
+
+ /**
+ * Return true if it's an enum (inline or ref)
+ *
+ * @return true if it's an enum (inline or ref)
+ */
+ public boolean getIsEnumOrRef() {
+ return isEnum || isEnumRef;
+ }
@Override
public String toString() {
@@ -1033,6 +1055,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
sb.append(", isMap=").append(isMap);
sb.append(", isEnum=").append(isEnum);
sb.append(", isInnerEnum=").append(isInnerEnum);
+ sb.append(", isEnumRef=").append(isEnumRef);
sb.append(", isAnyType=").append(isAnyType);
sb.append(", isReadOnly=").append(isReadOnly);
sb.append(", isWriteOnly=").append(isWriteOnly);
@@ -1122,6 +1145,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
isMap == that.isMap &&
isEnum == that.isEnum &&
isInnerEnum == that.isInnerEnum &&
+ isEnumRef == that.isEnumRef &&
isAnyType == that.isAnyType &&
isReadOnly == that.isReadOnly &&
isWriteOnly == that.isWriteOnly &&
@@ -1205,7 +1229,7 @@ public class CodegenProperty implements Cloneable, IJsonSchemaValidationProperti
hasMoreNonReadOnly, isPrimitiveType, isModel, isContainer, isString, isNumeric,
isInteger, isLong, isNumber, isFloat, isDouble, isDecimal, isByteArray, isBinary, isFile,
isBoolean, isDate, isDateTime, isUuid, isUri, isEmail, isFreeFormObject,
- isArray, isMap, isEnum, isInnerEnum, isAnyType, isReadOnly, isWriteOnly, isNullable, isShort,
+ isArray, isMap, isEnum, isInnerEnum, isEnumRef, isAnyType, isReadOnly, isWriteOnly, isNullable, isShort,
isUnboundedInteger, isSelfReference, isCircularReference, isDiscriminator, _enum,
allowableValues, items, mostInnerItems, additionalProperties, vars, requiredVars,
vendorExtensions, hasValidation, isInherited, discriminatorValue, nameInCamelCase,
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
index 63efb10c2d6..e6f0dd8d22e 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java
@@ -3798,6 +3798,8 @@ public class DefaultCodegen implements CodegenConfig {
if (referencedSchema.getEnum() != null && !referencedSchema.getEnum().isEmpty()) {
List
*
* Produces: [{mediaType=application/xml}, {mediaType=application/json}]
* Returns: {@link String}
diff --git a/samples/server/petstore/jaxrs-jersey/src/gen/java/org/openapitools/model/OuterObjectWithEnumProperty.java b/samples/server/petstore/jaxrs-jersey/src/gen/java/org/openapitools/model/OuterObjectWithEnumProperty.java
index 3db01589aba..9d2f9f0e107 100644
--- a/samples/server/petstore/jaxrs-jersey/src/gen/java/org/openapitools/model/OuterObjectWithEnumProperty.java
+++ b/samples/server/petstore/jaxrs-jersey/src/gen/java/org/openapitools/model/OuterObjectWithEnumProperty.java
@@ -16,6 +16,7 @@ package org.openapitools.model;
import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.openapitools.model.OuterEnumInteger;