This commit is contained in:
William Cheng 2022-01-16 17:57:07 +08:00
commit d001aca6dc
2 changed files with 11 additions and 11 deletions

View File

@ -1055,7 +1055,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
return importMapping.get(name); return importMapping.get(name);
} }
// memoization // memoization and lookup in the cache
String origName = name; String origName = name;
if (schemaKeyToModelNameCache.containsKey(origName)) { if (schemaKeyToModelNameCache.containsKey(origName)) {
return schemaKeyToModelNameCache.get(origName); return schemaKeyToModelNameCache.get(origName);
@ -1069,27 +1069,27 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
name = name + "_" + modelNameSuffix; name = name + "_" + modelNameSuffix;
} }
name = sanitizeName(name); name = camelize(sanitizeName(name));
// model name cannot use reserved keyword, e.g. return // model name cannot use reserved keyword, e.g. return
if (isReservedWord(name)) { if (isReservedWord(name)) {
LOGGER.warn("{} (reserved word) cannot be used as model name. Renamed to {}", name, camelize("model_" + 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 // model name starts with number
if (name.matches("^\\d.*")) { if (name.matches("^\\d.*")) {
LOGGER.warn("{} (model name starts with number) cannot be used as model name. Renamed to {}", name, LOGGER.warn("{} (model name starts with number) cannot be used as model name. Renamed to {}", name,
camelize("model_" + 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); // store in cache
schemaKeyToModelNameCache.put(origName, camelizedName); schemaKeyToModelNameCache.put(origName, name);
// camelize the model name // camelize the model name
// phone_number => PhoneNumber // phone_number => PhoneNumber
return camelizedName; return name;
} }
@Override @Override

View File

@ -1105,16 +1105,16 @@ public class CSharpNetCoreClientCodegen extends AbstractCSharpCodegen {
Map<String, Object> mo = (Map<String, Object>) _mo; Map<String, Object> mo = (Map<String, Object>) _mo;
CodegenModel cm = (CodegenModel) mo.get("model"); 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 // if oneOf contains "null" type
cm.isNullable = true; 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 // if anyOf contains "null" type
cm.isNullable = true; cm.isNullable = true;
cm.anyOf.remove("ModelNull"); cm.anyOf.remove("Null");
} }
} }