enabled overriding parameter patching (#15971)

This commit is contained in:
devhl-labs 2023-07-01 22:08:44 -04:00 committed by GitHub
parent 179d0bcb9c
commit 34c491b115
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 37 additions and 2 deletions

View File

@ -843,12 +843,23 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen implements Co
return objs;
}
private void patchParameter(CodegenParameter parameter, List<ModelMap> allModels) {
parameter.paramName = escapeReservedWord(parameter.paramName);
protected void patchVendorExtensionNullableValueType(CodegenParameter parameter) {
if (parameter.isNullable && !parameter.isContainer && (this.getValueTypes().contains(parameter.dataType) || parameter.isEnum)) {
parameter.vendorExtensions.put("x-nullable-value-type", true);
}
}
/** This is the same as patchVendorExtensionNullableValueType except it uses the deprecated getNullableTypes property */
protected void patchVendorExtensionNullableValueTypeLegacy(CodegenParameter parameter) {
if (parameter.isNullable && !parameter.isContainer && (this.getNullableTypes().contains(parameter.dataType) || parameter.isEnum)) {
parameter.vendorExtensions.put("x-nullable-value-type", true);
}
}
private void patchParameter(CodegenParameter parameter, List<ModelMap> allModels) {
parameter.paramName = escapeReservedWord(parameter.paramName);
patchVendorExtensionNullableValueType(parameter);
if (this.getNullableReferencesTypes() || (parameter.vendorExtensions.get("x-nullable-value-type") != null)) {
parameter.vendorExtensions.put("x-nullable-type", true);

View File

@ -613,6 +613,11 @@ public class AspNetServerCodegen extends AbstractCSharpCodegen {
}
}
@Override
protected void patchVendorExtensionNullableValueType(CodegenParameter parameter) {
super.patchVendorExtensionNullableValueTypeLegacy(parameter);
}
private void setCliOption(CliOption cliOption) throws IllegalArgumentException {
if (additionalProperties.containsKey(cliOption.getOpt())) {
// TODO Hack - not sure why the empty strings become boolean.

View File

@ -1524,6 +1524,15 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen {
}
}
@Override
protected void patchVendorExtensionNullableValueType(CodegenParameter parameter) {
if (getLibrary().equals(GENERICHOST)) {
super.patchVendorExtensionNullableValueType(parameter);
} else {
super.patchVendorExtensionNullableValueTypeLegacy(parameter);
}
}
@Override
public ModelsMap postProcessModels(ModelsMap objs) {
objs = super.postProcessModels(objs);

View File

@ -519,6 +519,11 @@ public class CSharpFunctionsServerCodegen extends AbstractCSharpCodegen {
}
}
@Override
protected void patchVendorExtensionNullableValueType(CodegenParameter parameter) {
super.patchVendorExtensionNullableValueTypeLegacy(parameter);
}
private void setCliOption(CliOption cliOption) throws IllegalArgumentException {
if (additionalProperties.containsKey(cliOption.getOpt())) {
// TODO Hack - not sure why the empty strings become boolean.

View File

@ -951,6 +951,11 @@ public class CSharpReducedClientCodegen extends AbstractCSharpCodegen {
return name;
}
@Override
protected void patchVendorExtensionNullableValueType(CodegenParameter parameter) {
super.patchVendorExtensionNullableValueTypeLegacy(parameter);
}
private CodegenModel reconcileInlineEnums(CodegenModel codegenModel, CodegenModel parentCodegenModel) {
// This generator uses inline classes to define enums, which breaks when
// dealing with models that have subTypes. To clean this up, we will analyze