forked from loafle/openapi-generator-original
		
	fix protobuf variable name (#13296)
This commit is contained in:
		
							parent
							
								
									62a0878bae
								
							
						
					
					
						commit
						97946e421f
					
				| @ -42,8 +42,7 @@ import java.util.*; | |||||||
| import java.util.Map.Entry; | import java.util.Map.Entry; | ||||||
| import java.util.regex.Pattern; | import java.util.regex.Pattern; | ||||||
| 
 | 
 | ||||||
| import static org.openapitools.codegen.utils.StringUtils.camelize; | import static org.openapitools.codegen.utils.StringUtils.*; | ||||||
| import static org.openapitools.codegen.utils.StringUtils.underscore; |  | ||||||
| 
 | 
 | ||||||
| public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConfig { | public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConfig { | ||||||
| 
 | 
 | ||||||
| @ -178,8 +177,7 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf | |||||||
| 
 | 
 | ||||||
|         if (additionalProperties.containsKey(CodegenConstants.PACKAGE_NAME)) { |         if (additionalProperties.containsKey(CodegenConstants.PACKAGE_NAME)) { | ||||||
|             setPackageName((String) additionalProperties.get(CodegenConstants.PACKAGE_NAME)); |             setPackageName((String) additionalProperties.get(CodegenConstants.PACKAGE_NAME)); | ||||||
|         } |         } else { | ||||||
|         else { |  | ||||||
|             additionalProperties.put(CodegenConstants.PACKAGE_NAME, packageName); |             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 |      * 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 allowableValues allowable values | ||||||
|      * @param prefix added prefix |      * @param prefix          added prefix | ||||||
|      */ |      */ | ||||||
|     public void addEnumValuesPrefix(Map<String, Object> allowableValues, String prefix){ |     public void addEnumValuesPrefix(Map<String, Object> allowableValues, String prefix) { | ||||||
|         if(allowableValues.containsKey("enumVars")) { |         if (allowableValues.containsKey("enumVars")) { | ||||||
|             List<Map<String, Object>> enumVars = (List<Map<String, Object>>)allowableValues.get("enumVars"); |             List<Map<String, Object>> enumVars = (List<Map<String, Object>>) allowableValues.get("enumVars"); | ||||||
| 
 | 
 | ||||||
|             for(Map<String, Object> value : enumVars) { |             for (Map<String, Object> value : enumVars) { | ||||||
|                 String name = (String)value.get("name"); |                 String name = (String) value.get("name"); | ||||||
|                 value.put("name", prefix + "_" + name); |                 value.put("name", prefix + "_" + name); | ||||||
|                 value.put("value", "\"" + prefix + "_" + name + "\""); |                 value.put("value", "\"" + prefix + "_" + name + "\""); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         if(allowableValues.containsKey("values")) { |         if (allowableValues.containsKey("values")) { | ||||||
|             List<String> values = (List<String>)allowableValues.get("values"); |             List<String> values = (List<String>) allowableValues.get("values"); | ||||||
|             for(String value : values) { |             for (String value : values) { | ||||||
|                 value = prefix + "_" + value; |                 value = prefix + "_" + value; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| @ -250,9 +248,9 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf | |||||||
|      * @param allowableValues allowable values |      * @param allowableValues allowable values | ||||||
|      */ |      */ | ||||||
|     public void addUnknownToAllowableValues(Map<String, Object> allowableValues) { |     public void addUnknownToAllowableValues(Map<String, Object> allowableValues) { | ||||||
|         if(startEnumsWithUnknown) { |         if (startEnumsWithUnknown) { | ||||||
|             if(allowableValues.containsKey("enumVars")) { |             if (allowableValues.containsKey("enumVars")) { | ||||||
|                 List<Map<String, Object>> enumVars = (List<Map<String, Object>>)allowableValues.get("enumVars"); |                 List<Map<String, Object>> enumVars = (List<Map<String, Object>>) allowableValues.get("enumVars"); | ||||||
| 
 | 
 | ||||||
|                 HashMap<String, Object> unknown = new HashMap<String, Object>(); |                 HashMap<String, Object> unknown = new HashMap<String, Object>(); | ||||||
|                 unknown.put("name", "UNKNOWN"); |                 unknown.put("name", "UNKNOWN"); | ||||||
| @ -262,8 +260,8 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf | |||||||
|                 enumVars.add(0, unknown); |                 enumVars.add(0, unknown); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             if(allowableValues.containsKey("values")) { |             if (allowableValues.containsKey("values")) { | ||||||
|                 List<String> values = (List<String>)allowableValues.get("values");            |                 List<String> values = (List<String>) allowableValues.get("values"); | ||||||
|                 values.add(0, "UNKNOWN"); |                 values.add(0, "UNKNOWN"); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| @ -289,12 +287,12 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf | |||||||
|         for (ModelMap mo : objs.getModels()) { |         for (ModelMap mo : objs.getModels()) { | ||||||
|             CodegenModel cm = mo.getModel(); |             CodegenModel cm = mo.getModel(); | ||||||
| 
 | 
 | ||||||
|             if(cm.isEnum) { |             if (cm.isEnum) { | ||||||
|                 Map<String, Object> allowableValues = cm.getAllowableValues(); |                 Map<String, Object> allowableValues = cm.getAllowableValues(); | ||||||
|                 addUnknownToAllowableValues(allowableValues); |                 addUnknownToAllowableValues(allowableValues); | ||||||
|                 addEnumValuesPrefix(allowableValues, cm.getClassname()); |                 addEnumValuesPrefix(allowableValues, cm.getClassname()); | ||||||
|                 if (allowableValues.containsKey("enumVars")) { |                 if (allowableValues.containsKey("enumVars")) { | ||||||
|                     List<Map<String, Object>> enumVars = (List<Map<String, Object>>)allowableValues.get("enumVars"); |                     List<Map<String, Object>> enumVars = (List<Map<String, Object>>) allowableValues.get("enumVars"); | ||||||
|                     addEnumIndexes(enumVars); |                     addEnumIndexes(enumVars); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| @ -304,8 +302,7 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf | |||||||
|                 // add x-protobuf-type: repeated if it's an array |                 // add x-protobuf-type: repeated if it's an array | ||||||
|                 if (Boolean.TRUE.equals(var.isArray)) { |                 if (Boolean.TRUE.equals(var.isArray)) { | ||||||
|                     var.vendorExtensions.put("x-protobuf-type", "repeated"); |                     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"); |                     var.vendorExtensions.put("x-protobuf-type", "optional"); | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
| @ -323,18 +320,17 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf | |||||||
|                     addUnknownToAllowableValues(var.allowableValues); |                     addUnknownToAllowableValues(var.allowableValues); | ||||||
|                     addEnumValuesPrefix(var.allowableValues, var.getEnumName()); |                     addEnumValuesPrefix(var.allowableValues, var.getEnumName()); | ||||||
| 
 | 
 | ||||||
|                     if(var.allowableValues.containsKey("enumVars")) { |                     if (var.allowableValues.containsKey("enumVars")) { | ||||||
|                         List<Map<String, Object>> enumVars = (List<Map<String, Object>>) var.allowableValues.get("enumVars"); |                         List<Map<String, Object>> enumVars = (List<Map<String, Object>>) var.allowableValues.get("enumVars"); | ||||||
|                         addEnumIndexes(enumVars); |                         addEnumIndexes(enumVars); | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
|                 // Add x-protobuf-index, unless already specified |                 // Add x-protobuf-index, unless already specified | ||||||
|                 if(this.numberedFieldNumberList) { |                 if (this.numberedFieldNumberList) { | ||||||
|                     var.vendorExtensions.putIfAbsent("x-protobuf-index", index); |                     var.vendorExtensions.putIfAbsent("x-protobuf-index", index); | ||||||
|                     index++; |                     index++; | ||||||
|                 } |                 } else { | ||||||
|                 else { |  | ||||||
|                     try { |                     try { | ||||||
|                         var.vendorExtensions.putIfAbsent("x-protobuf-index", generateFieldNumberFromString(var.getName())); |                         var.vendorExtensions.putIfAbsent("x-protobuf-index", generateFieldNumberFromString(var.getName())); | ||||||
|                     } catch (ProtoBufIndexComputationException e) { |                     } catch (ProtoBufIndexComputationException e) { | ||||||
| @ -500,6 +496,11 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf | |||||||
|         return underscore(toModelName(name)); |         return underscore(toModelName(name)); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     @Override | ||||||
|  |     public String toVarName(final String name) { | ||||||
|  |         return name; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     @Override |     @Override | ||||||
|     public String toModelName(String name) { |     public String toModelName(String name) { | ||||||
|         name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. |         name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. | ||||||
| @ -558,11 +559,9 @@ public class ProtobufSchemaCodegen extends DefaultCodegen implements CodegenConf | |||||||
| 
 | 
 | ||||||
|                 if (Boolean.TRUE.equals(p.isArray)) { |                 if (Boolean.TRUE.equals(p.isArray)) { | ||||||
|                     p.vendorExtensions.put("x-protobuf-type", "repeated"); |                     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"); |                     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); |                     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 |     @Override | ||||||
|     public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.PROTOBUF; } |     public GeneratorLanguage generatorLanguage() { | ||||||
|  |         return GeneratorLanguage.PROTOBUF; | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -15,6 +15,6 @@ package petstore; | |||||||
| 
 | 
 | ||||||
| message OtherTest { | message OtherTest { | ||||||
| 
 | 
 | ||||||
|   repeated string setUnderscoretest = 343904081; |   repeated string set_test = 341814865; | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user