Skip to content

Commit

Permalink
Merge pull request #713 from swagger-api/codegen-issue-5950
Browse files Browse the repository at this point in the history
added option to throw error instead return null for unknown enum values
  • Loading branch information
HugoMario committed Jun 30, 2020
2 parents 245e073 + 89da481 commit c6b8eac
Show file tree
Hide file tree
Showing 16 changed files with 21 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegenConfig {
public static final String JAVA8_MODE = "java8";
public static final String WITH_XML = "withXml";
public static final String SUPPORT_JAVA6 = "supportJava6";
public static final String ERROR_ON_UNKNOWN_ENUM = "errorOnUnknownEnum";

protected String dateLibrary = "threetenbp";
protected boolean java8Mode = false;
Expand Down Expand Up @@ -333,6 +334,11 @@ public void processOpts() {
this.setFullJavaUtil(Boolean.valueOf(additionalProperties.get(FULL_JAVA_UTIL).toString()));
}

if (additionalProperties.containsKey(ERROR_ON_UNKNOWN_ENUM)) {
boolean errorOnUnknownEnum = Boolean.parseBoolean(additionalProperties.get(ERROR_ON_UNKNOWN_ENUM).toString());
additionalProperties.put(ERROR_ON_UNKNOWN_ENUM, errorOnUnknownEnum);
}

if (this instanceof NotNullAnnotationFeatures) {
notNullOption = (NotNullAnnotationFeatures)this;
if (additionalProperties.containsKey(NOT_NULL_JACKSON_ANNOTATION)) {
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/handlebars/Java/modelEnum.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum
return b;
}
}
return null;
{{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + text + "' for '{{{classname}}}' enum.");{{/errorOnUnknownEnum}}
}
{{#if gson}}

Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/handlebars/Java/modelInnerEnum.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
return b;
}
}
return null;
{{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + text + "' for '{{{classname}}}' enum.");{{/errorOnUnknownEnum}}
}
{{#gson}}
public static class Adapter extends TypeAdapter<{{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}}> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@
return b;
}
}
return null;
{{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + text + "' for '{{{classname}}}' enum.");{{/errorOnUnknownEnum}}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,6 @@ public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum
return b;
}
}
return null;
{{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + text + "' for '{{{classname}}}' enum.");{{/errorOnUnknownEnum}}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ public enum {{datatypeWithEnum}} {
return b;
}
}
return null;
{{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + text + "' for '{{{classname}}}' enum.");{{/errorOnUnknownEnum}}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ public enum {{datatypeWithEnum}} {
return b;
}
}
return null;
{{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + text + "' for '{{{classname}}}' enum.");{{/errorOnUnknownEnum}}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum
return b;
}
}
return null;
{{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + text + "' for '{{{classname}}}' enum.");{{/errorOnUnknownEnum}}
}

}
2 changes: 1 addition & 1 deletion src/main/resources/handlebars/JavaJaxRS/enumClass.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@
return b;
}
}
return null;
{{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + text + "' for '{{{classname}}}' enum.");{{/errorOnUnknownEnum}}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum
return b;
}
}
return null;
{{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + text + "' for '{{{classname}}}' enum.");{{/errorOnUnknownEnum}}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ public enum {{datatypeWithEnum}} {
return b;
}
}
return null;
{{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + text + "' for '{{{classname}}}' enum.");{{/errorOnUnknownEnum}}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,6 @@ public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum
return b;
}
}
return null;
{{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + text + "' for '{{{classname}}}' enum.");{{/errorOnUnknownEnum}}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@
return b;
}
}
return null;
{{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + text + "' for '{{{classname}}}' enum.");{{/errorOnUnknownEnum}}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum
return b;
}
}
return null;
{{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + text + "' for '{{{classname}}}' enum.");{{/errorOnUnknownEnum}}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@
return b;
}
}
return null;
{{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + text + "' for '{{{classname}}}' enum.");{{/errorOnUnknownEnum}}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@ public enum {{#datatypeWithEnum}}{{{.}}}{{/datatypeWithEnum}}{{^datatypeWithEnum
return b;
}
}
return null;
{{^errorOnUnknownEnum}}return null;{{/errorOnUnknownEnum}}{{#errorOnUnknownEnum}}throw new IllegalArgumentException("Unexpected value '" + text + "' for '{{{classname}}}' enum.");{{/errorOnUnknownEnum}}
}
}

0 comments on commit c6b8eac

Please sign in to comment.