mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-05-12 20:50:55 +00:00
enum zero index is UNSPECIFIED suffix (#20473)
Co-authored-by: xil <xil@uber.com>
This commit is contained in:
parent
2722fdcdc8
commit
4883de51c1
@ -16,10 +16,10 @@ title: Documentation for the protobuf-schema Generator
|
||||
## CONFIG OPTIONS
|
||||
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
|
||||
|
||||
| Option | Description | Values | Default |
|
||||
| ------ | ----------- | ------ | ------- |
|
||||
|numberedFieldNumberList|Field numbers in order.| |false|
|
||||
|startEnumsWithUnknown|Introduces "UNKNOWN" as the first element of enumerations.| |false|
|
||||
| Option | Description | Values | Default |
|
||||
|---------------------------|--------------------------------------------------------------------------| ------ | ------- |
|
||||
| numberedFieldNumberList | Field numbers in order. | |false|
|
||||
| startEnumsWithUnspecified | Introduces "UNSPECIFIED" as the first element of enumerations. | |false|
|
||||
|
||||
## IMPORT MAPPING
|
||||
|
||||
|
@ -52,7 +52,7 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf
|
||||
|
||||
public static final String NUMBERED_FIELD_NUMBER_LIST = "numberedFieldNumberList";
|
||||
|
||||
public static final String START_ENUMS_WITH_UNKNOWN = "startEnumsWithUnknown";
|
||||
public static final String START_ENUMS_WITH_UNSPECIFIED = "startEnumsWithUnspecified";
|
||||
|
||||
private final Logger LOGGER = LoggerFactory.getLogger(ProtobufSchemaCodegen.class);
|
||||
|
||||
@ -60,7 +60,7 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf
|
||||
|
||||
private boolean numberedFieldNumberList = false;
|
||||
|
||||
private boolean startEnumsWithUnknown = false;
|
||||
private boolean startEnumsWithUnspecified = false;
|
||||
|
||||
@Override
|
||||
public CodegenType getTag() {
|
||||
@ -164,7 +164,7 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf
|
||||
cliOptions.clear();
|
||||
|
||||
addSwitch(NUMBERED_FIELD_NUMBER_LIST, "Field numbers in order.", numberedFieldNumberList);
|
||||
addSwitch(START_ENUMS_WITH_UNKNOWN, "Introduces \"UNKNOWN\" as the first element of enumerations.", startEnumsWithUnknown);
|
||||
addSwitch(START_ENUMS_WITH_UNSPECIFIED, "Introduces \"UNSPECIFIED\" as the first element of enumerations.", startEnumsWithUnspecified);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -195,8 +195,8 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf
|
||||
this.numberedFieldNumberList = convertPropertyToBooleanAndWriteBack(NUMBERED_FIELD_NUMBER_LIST);
|
||||
}
|
||||
|
||||
if (additionalProperties.containsKey(this.START_ENUMS_WITH_UNKNOWN)) {
|
||||
this.startEnumsWithUnknown = convertPropertyToBooleanAndWriteBack(START_ENUMS_WITH_UNKNOWN);
|
||||
if (additionalProperties.containsKey(this.START_ENUMS_WITH_UNSPECIFIED)) {
|
||||
this.startEnumsWithUnspecified = convertPropertyToBooleanAndWriteBack(START_ENUMS_WITH_UNSPECIFIED);
|
||||
}
|
||||
|
||||
supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
|
||||
@ -233,6 +233,7 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf
|
||||
String name = (String) value.get("name");
|
||||
value.put("name", prefix + "_" + name);
|
||||
value.put("value", "\"" + prefix + "_" + name + "\"");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -249,22 +250,21 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf
|
||||
*
|
||||
* @param allowableValues allowable values
|
||||
*/
|
||||
public void addUnknownToAllowableValues(Map<String, Object> allowableValues) {
|
||||
if (startEnumsWithUnknown) {
|
||||
public void addUnspecifiedToAllowableValues(Map<String, Object> allowableValues) {
|
||||
if (startEnumsWithUnspecified) {
|
||||
if (allowableValues.containsKey("enumVars")) {
|
||||
List<Map<String, Object>> enumVars = (List<Map<String, Object>>) allowableValues.get("enumVars");
|
||||
|
||||
HashMap<String, Object> unknown = new HashMap<String, Object>();
|
||||
unknown.put("name", "UNKNOWN");
|
||||
unknown.put("isString", "false");
|
||||
unknown.put("value", "\"UNKNOWN\"");
|
||||
|
||||
enumVars.add(0, unknown);
|
||||
HashMap<String, Object> unspecified = new HashMap<String, Object>();
|
||||
unspecified.put("name", "UNSPECIFIED");
|
||||
unspecified.put("isString", "false");
|
||||
unspecified.put("value", "\"UNSPECIFIED\"");
|
||||
enumVars.add(0, unspecified);
|
||||
}
|
||||
|
||||
if (allowableValues.containsKey("values")) {
|
||||
List<String> values = (List<String>) allowableValues.get("values");
|
||||
values.add(0, "UNKNOWN");
|
||||
values.add(0, "UNSPECIFIED");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -291,7 +291,7 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf
|
||||
|
||||
if (cm.isEnum) {
|
||||
Map<String, Object> allowableValues = cm.getAllowableValues();
|
||||
addUnknownToAllowableValues(allowableValues);
|
||||
addUnspecifiedToAllowableValues(allowableValues);
|
||||
addEnumValuesPrefix(allowableValues, cm.getClassname());
|
||||
if (allowableValues.containsKey("enumVars")) {
|
||||
List<Map<String, Object>> enumVars = (List<Map<String, Object>>) allowableValues.get("enumVars");
|
||||
@ -319,7 +319,7 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf
|
||||
}
|
||||
|
||||
if (var.isEnum) {
|
||||
addUnknownToAllowableValues(var.allowableValues);
|
||||
addUnspecifiedToAllowableValues(var.allowableValues);
|
||||
addEnumValuesPrefix(var.allowableValues, var.getEnumName());
|
||||
|
||||
if (var.allowableValues.containsKey("enumVars")) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user