From 97946e421fb13d242f1ddbe0464666ed1cc3d1f3 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Sat, 27 Aug 2022 13:31:24 +0800 Subject: [PATCH] fix protobuf variable name (#13296) --- .../languages/ProtobufSchemaCodegen.java | 67 ++++++++++--------- .../protobuf-schema/models/other_test.proto | 2 +- 2 files changed, 35 insertions(+), 34 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ProtobufSchemaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ProtobufSchemaCodegen.java index bf6525b3440..79a55ee8bab 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ProtobufSchemaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ProtobufSchemaCodegen.java @@ -42,8 +42,7 @@ import java.util.*; import java.util.Map.Entry; import java.util.regex.Pattern; -import static org.openapitools.codegen.utils.StringUtils.camelize; -import static org.openapitools.codegen.utils.StringUtils.underscore; +import static org.openapitools.codegen.utils.StringUtils.*; public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConfig { @@ -178,8 +177,7 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf if (additionalProperties.containsKey(CodegenConstants.PACKAGE_NAME)) { setPackageName((String) additionalProperties.get(CodegenConstants.PACKAGE_NAME)); - } - else { + } else { additionalProperties.put(CodegenConstants.PACKAGE_NAME, packageName); } @@ -223,22 +221,22 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf * NOTE: Enum values use C++ scoping rules, meaning that enum values are siblings of their type, not children of it. Therefore, enum value must be unique * * @param allowableValues allowable values - * @param prefix added prefix + * @param prefix added prefix */ - public void addEnumValuesPrefix(Map allowableValues, String prefix){ - if(allowableValues.containsKey("enumVars")) { - List> enumVars = (List>)allowableValues.get("enumVars"); + public void addEnumValuesPrefix(Map allowableValues, String prefix) { + if (allowableValues.containsKey("enumVars")) { + List> enumVars = (List>) allowableValues.get("enumVars"); - for(Map value : enumVars) { - String name = (String)value.get("name"); + for (Map value : enumVars) { + String name = (String) value.get("name"); value.put("name", prefix + "_" + name); value.put("value", "\"" + prefix + "_" + name + "\""); } } - if(allowableValues.containsKey("values")) { - List values = (List)allowableValues.get("values"); - for(String value : values) { + if (allowableValues.containsKey("values")) { + List values = (List) allowableValues.get("values"); + for (String value : values) { value = prefix + "_" + value; } } @@ -250,9 +248,9 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf * @param allowableValues allowable values */ public void addUnknownToAllowableValues(Map allowableValues) { - if(startEnumsWithUnknown) { - if(allowableValues.containsKey("enumVars")) { - List> enumVars = (List>)allowableValues.get("enumVars"); + if (startEnumsWithUnknown) { + if (allowableValues.containsKey("enumVars")) { + List> enumVars = (List>) allowableValues.get("enumVars"); HashMap unknown = new HashMap(); unknown.put("name", "UNKNOWN"); @@ -262,8 +260,8 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf enumVars.add(0, unknown); } - if(allowableValues.containsKey("values")) { - List values = (List)allowableValues.get("values"); + if (allowableValues.containsKey("values")) { + List values = (List) allowableValues.get("values"); values.add(0, "UNKNOWN"); } } @@ -289,12 +287,12 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf for (ModelMap mo : objs.getModels()) { CodegenModel cm = mo.getModel(); - if(cm.isEnum) { + if (cm.isEnum) { Map allowableValues = cm.getAllowableValues(); addUnknownToAllowableValues(allowableValues); addEnumValuesPrefix(allowableValues, cm.getClassname()); if (allowableValues.containsKey("enumVars")) { - List> enumVars = (List>)allowableValues.get("enumVars"); + List> enumVars = (List>) allowableValues.get("enumVars"); addEnumIndexes(enumVars); } } @@ -304,8 +302,7 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf // add x-protobuf-type: repeated if it's an array if (Boolean.TRUE.equals(var.isArray)) { var.vendorExtensions.put("x-protobuf-type", "repeated"); - } - else if (Boolean.TRUE.equals(var.isNullable && var.isPrimitiveType)) { + } else if (Boolean.TRUE.equals(var.isNullable && var.isPrimitiveType)) { var.vendorExtensions.put("x-protobuf-type", "optional"); } @@ -322,19 +319,18 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf if (var.isEnum) { addUnknownToAllowableValues(var.allowableValues); addEnumValuesPrefix(var.allowableValues, var.getEnumName()); - - if(var.allowableValues.containsKey("enumVars")) { + + if (var.allowableValues.containsKey("enumVars")) { List> enumVars = (List>) var.allowableValues.get("enumVars"); addEnumIndexes(enumVars); } } // Add x-protobuf-index, unless already specified - if(this.numberedFieldNumberList) { + if (this.numberedFieldNumberList) { var.vendorExtensions.putIfAbsent("x-protobuf-index", index); index++; - } - else { + } else { try { var.vendorExtensions.putIfAbsent("x-protobuf-index", generateFieldNumberFromString(var.getName())); } catch (ProtoBufIndexComputationException e) { @@ -500,6 +496,11 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf return underscore(toModelName(name)); } + @Override + public String toVarName(final String name) { + return name; + } + @Override public String toModelName(String name) { name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. @@ -555,14 +556,12 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf int index = 1; for (CodegenParameter p : op.allParams) { // add x-protobuf-type: repeated if it's an array - + if (Boolean.TRUE.equals(p.isArray)) { p.vendorExtensions.put("x-protobuf-type", "repeated"); - } - else if (Boolean.TRUE.equals(p.isNullable && p.isPrimitiveType)) { + } else if (Boolean.TRUE.equals(p.isNullable && p.isPrimitiveType)) { p.vendorExtensions.put("x-protobuf-type", "optional"); - } - else if (Boolean.TRUE.equals(p.isMap)) { + } else if (Boolean.TRUE.equals(p.isMap)) { LOGGER.warn("Map parameter (name: {}, operation ID: {}) not yet supported", p.paramName, op.operationId); } @@ -649,5 +648,7 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf } @Override - public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.PROTOBUF; } + public GeneratorLanguage generatorLanguage() { + return GeneratorLanguage.PROTOBUF; + } } diff --git a/samples/config/petstore/protobuf-schema/models/other_test.proto b/samples/config/petstore/protobuf-schema/models/other_test.proto index e269353cebf..2c6d6b7e5f3 100644 --- a/samples/config/petstore/protobuf-schema/models/other_test.proto +++ b/samples/config/petstore/protobuf-schema/models/other_test.proto @@ -15,6 +15,6 @@ package petstore; message OtherTest { - repeated string setUnderscoretest = 343904081; + repeated string set_test = 341814865; }