From 070f767d80df9b96f2a171a733f5bef0f9e1bc06 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Sun, 16 Jan 2022 17:49:26 +0800 Subject: [PATCH] [C#][netcore] fix bugs in model naming when method names start with a number (#11330) * first * fix toModelName in C# generator when handling method names starting with numbers * remove openapitools.json * remove file --- .../codegen/languages/AbstractCSharpCodegen.java | 14 +++++++------- .../languages/CSharpNetCoreClientCodegen.java | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java index a294a59fb04..2a8977310f7 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractCSharpCodegen.java @@ -1055,7 +1055,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co return importMapping.get(name); } - // memoization + // memoization and lookup in the cache String origName = name; if (schemaKeyToModelNameCache.containsKey(origName)) { return schemaKeyToModelNameCache.get(origName); @@ -1069,27 +1069,27 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co name = name + "_" + modelNameSuffix; } - name = sanitizeName(name); + name = camelize(sanitizeName(name)); // model name cannot use reserved keyword, e.g. return if (isReservedWord(name)) { LOGGER.warn("{} (reserved word) cannot be used as model name. Renamed to {}", name, camelize("model_" + name)); - name = "model_" + name; // e.g. return => ModelReturn (after camelize) + name = camelize("model_" + name); // e.g. return => ModelReturn (after camelize) } // model name starts with number if (name.matches("^\\d.*")) { LOGGER.warn("{} (model name starts with number) cannot be used as model name. Renamed to {}", name, camelize("model_" + name)); - name = "model_" + name; // e.g. 200Response => Model200Response (after camelize) + name = camelize("model_" + name); // e.g. 200Response => Model200Response (after camelize) } - String camelizedName = camelize(name); - schemaKeyToModelNameCache.put(origName, camelizedName); + // store in cache + schemaKeyToModelNameCache.put(origName, name); // camelize the model name // phone_number => PhoneNumber - return camelizedName; + return name; } @Override diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNetCoreClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNetCoreClientCodegen.java index 1d6a13603f6..e211deb48ab 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNetCoreClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpNetCoreClientCodegen.java @@ -1105,16 +1105,16 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen { Map mo = (Map) _mo; CodegenModel cm = (CodegenModel) mo.get("model"); - if (cm.oneOf != null && !cm.oneOf.isEmpty() && cm.oneOf.contains("ModelNull")) { + if (cm.oneOf != null && !cm.oneOf.isEmpty() && cm.oneOf.contains("Null")) { // if oneOf contains "null" type cm.isNullable = true; - cm.oneOf.remove("ModelNull"); + cm.oneOf.remove("Null"); } - if (cm.anyOf != null && !cm.anyOf.isEmpty() && cm.anyOf.contains("ModelNull")) { + if (cm.anyOf != null && !cm.anyOf.isEmpty() && cm.anyOf.contains("Null")) { // if anyOf contains "null" type cm.isNullable = true; - cm.anyOf.remove("ModelNull"); + cm.anyOf.remove("Null"); } }