Move all vendor extension definitions within AbstractCSharpCodegen to CodegenConstants. Then adjust other usages of those same vendor extension definitions to the created constants. (#22112)

This commit is contained in:
Mattias Sehlstedt 2025-10-12 17:21:17 +02:00 committed by GitHub
parent 81a3488556
commit 42af4f9529
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 92 additions and 56 deletions

View File

@ -457,6 +457,30 @@ public class CodegenConstants {
public static final String DEFAULT_TO_EMPTY_CONTAINER = "defaultToEmptyContainer"; public static final String DEFAULT_TO_EMPTY_CONTAINER = "defaultToEmptyContainer";
// Vendor extensions
public static final String X_INTERNAL = "x-internal"; public static final String X_INTERNAL = "x-internal";
public static final String X_PARENT = "x-parent"; public static final String X_PARENT = "x-parent";
public static final String X_COMPOSED_DATA_TYPE = "x-composed-data-type";
public static final String X_BASE_NAME = "x-base-name";
public static final String X_IS_VALUE_TYPE = "x-is-value-type";
public static final String X_IS_REFERENCE_TYPE = "x-is-reference-type";
public static final String X_IS_NULLABLE_TYPE = "x-is-nullable-type";
public static final String X_IS_BASE_OR_NEW_DISCRIMINATOR = "x-is-base-or-new-discriminator";
public static final String X_ENUM_BYTE = "x-enum-byte";
public static final String X_HTTP_STATUS = "x-http-status";
public static final String X_HTTP_STATUSES_WITH_RETURN = "x-http-statuses-with-return";
public static final String X_SET_COOKIE = "x-set-cookie";
public static final String X_DUPLICATES = "x-duplicates";
public static final String X_HTTP_STATUS_IS_DEFAULT = "x-http-status-is-default";
public static final String X_ONLY_DEFAULT = "x-only-default";
public static final String X_HTTP_STATUS_RANGE = "x-http-status-range";
public static final String X_NOT_NULLABLE_REFERENCE_TYPES = "x-not-nullable-reference-types";
public static final String X_HAS_NOT_NULLABLE_REFERENCE_TYPES = "x-has-not-nullable-reference-types";
public static final String X_NULLABLE_VALUE_TYPE = "x-nullable-value-type";
public static final String X_NULLABLE_TYPE = "x-nullable-type";
public static final String X_CSHARP_VALUE_TYPE = "x-csharp-value-type";
public static final String X_REGEX = "x-regex";
public static final String X_MODIFIERS = "x-modifiers";
public static final String X_MODIFIER_PREFIX = "x-modifier-";
public static final String X_MODEL_IS_MUTABLE = "x-model-is-mutable";
} }

View File

@ -46,6 +46,7 @@ import java.util.*;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.openapitools.codegen.CodegenConstants.*;
import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER;
import static org.openapitools.codegen.utils.ModelUtils.getSchemaItems; import static org.openapitools.codegen.utils.ModelUtils.getSchemaItems;
import static org.openapitools.codegen.utils.StringUtils.camelize; import static org.openapitools.codegen.utils.StringUtils.camelize;
@ -543,7 +544,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
if (dataTypeSet.contains(oneOfProperty.dataType)) { if (dataTypeSet.contains(oneOfProperty.dataType)) {
// add "x-duplicated-data-type" to indicate if the dataType already occurs before // add "x-duplicated-data-type" to indicate if the dataType already occurs before
// in other sub-schemas of allOf/anyOf/oneOf // in other sub-schemas of allOf/anyOf/oneOf
oneOfProperty.vendorExtensions.putIfAbsent("x-composed-data-type", true); oneOfProperty.vendorExtensions.putIfAbsent(X_COMPOSED_DATA_TYPE, true);
} else { } else {
dataTypeSet.add(oneOfProperty.dataType); dataTypeSet.add(oneOfProperty.dataType);
} }
@ -557,7 +558,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
if (dataTypeSet.contains(anyOfProperty.dataType)) { if (dataTypeSet.contains(anyOfProperty.dataType)) {
// add "x-duplicated-data-type" to indicate if the dataType already occurs before // add "x-duplicated-data-type" to indicate if the dataType already occurs before
// in other sub-schemas of allOf/anyOf/oneOf // in other sub-schemas of allOf/anyOf/oneOf
anyOfProperty.vendorExtensions.putIfAbsent("x-composed-data-type", true); anyOfProperty.vendorExtensions.putIfAbsent(X_COMPOSED_DATA_TYPE, true);
} else { } else {
dataTypeSet.add(anyOfProperty.dataType); dataTypeSet.add(anyOfProperty.dataType);
} }
@ -619,7 +620,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
continue; continue;
} }
model.vendorExtensions.put("x-model-is-mutable", modelIsMutable(model, null)); model.vendorExtensions.put(X_MODEL_IS_MUTABLE, modelIsMutable(model, null));
CodegenComposedSchemas composedSchemas = model.getComposedSchemas(); CodegenComposedSchemas composedSchemas = model.getComposedSchemas();
if (composedSchemas != null) { if (composedSchemas != null) {
@ -639,7 +640,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
patchProperty(enumRefs, model, property); patchProperty(enumRefs, model, property);
property.name = patchPropertyName(model, property, camelize(property.baseType), composedPropertyNames); property.name = patchPropertyName(model, property, camelize(property.baseType), composedPropertyNames);
property.isNullable = true; property.isNullable = true;
property.vendorExtensions.put("x-base-name", model.name.substring(model.name.lastIndexOf('_') + 1)); property.vendorExtensions.put(X_BASE_NAME, model.name.substring(model.name.lastIndexOf('_') + 1));
} }
} }
@ -650,7 +651,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
patchProperty(enumRefs, model, property); patchProperty(enumRefs, model, property);
property.name = patchPropertyName(model, property, camelize(property.baseType), composedPropertyNames); property.name = patchPropertyName(model, property, camelize(property.baseType), composedPropertyNames);
property.isNullable = true; property.isNullable = true;
property.vendorExtensions.put("x-base-name", model.name.substring(model.name.lastIndexOf('_') + 1)); property.vendorExtensions.put(X_BASE_NAME, model.name.substring(model.name.lastIndexOf('_') + 1));
} }
} }
} }
@ -784,10 +785,10 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
private void patchPropertyVendorExtensions(CodegenProperty property) { private void patchPropertyVendorExtensions(CodegenProperty property) {
boolean isValueType = isValueType(property); boolean isValueType = isValueType(property);
property.vendorExtensions.put("x-is-value-type", isValueType); property.vendorExtensions.put(X_IS_VALUE_TYPE, isValueType);
property.vendorExtensions.put("x-is-reference-type", !isValueType); property.vendorExtensions.put(X_IS_REFERENCE_TYPE, !isValueType);
property.vendorExtensions.put("x-is-nullable-type", this.getNullableReferencesTypes() || isValueType); property.vendorExtensions.put(X_IS_NULLABLE_TYPE, this.getNullableReferencesTypes() || isValueType);
property.vendorExtensions.put("x-is-base-or-new-discriminator", (property.isDiscriminator && !property.isInherited) || (property.isDiscriminator && property.isNew)); property.vendorExtensions.put(X_IS_BASE_OR_NEW_DISCRIMINATOR, (property.isDiscriminator && !property.isInherited) || (property.isDiscriminator && property.isNew));
} }
protected void patchPropertyIsInherited(CodegenModel model, CodegenProperty property) { protected void patchPropertyIsInherited(CodegenModel model, CodegenProperty property) {
@ -888,7 +889,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
// Because C# uses nullable primitives for datatype, and datatype is used in DefaultCodegen for determining enum-ness, guard against weirdness here. // Because C# uses nullable primitives for datatype, and datatype is used in DefaultCodegen for determining enum-ness, guard against weirdness here.
if (var.isEnum) { if (var.isEnum) {
if ("byte".equals(var.dataFormat)) {// C# Actually supports byte and short enums. if ("byte".equals(var.dataFormat)) {// C# Actually supports byte and short enums.
var.vendorExtensions.put("x-enum-byte", true); var.vendorExtensions.put(X_ENUM_BYTE, true);
var.isString = false; var.isString = false;
var.isLong = false; var.isLong = false;
var.isInteger = false; var.isInteger = false;
@ -909,7 +910,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
} }
private void postProcessResponseCode(CodegenResponse response, String status, Set<String> httpStatusesWithReturn) { private void postProcessResponseCode(CodegenResponse response, String status, Set<String> httpStatusesWithReturn) {
response.vendorExtensions.put("x-http-status", status); response.vendorExtensions.put(X_HTTP_STATUS, status);
if (response.dataType != null) { if (response.dataType != null) {
httpStatusesWithReturn.add(status); httpStatusesWithReturn.add(status);
} }
@ -942,11 +943,11 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
} }
private void postProcessOperations(OperationMap operations, List<ModelMap> allModels) { private void postProcessOperations(OperationMap operations, List<ModelMap> allModels) {
Set<String> httpStatusesWithReturn = additionalProperties.get("x-http-statuses-with-return") instanceof Set<?> Set<String> httpStatusesWithReturn = additionalProperties.get(X_HTTP_STATUSES_WITH_RETURN) instanceof Set<?>
? (Set<String>) additionalProperties.get("x-http-statuses-with-return") ? (Set<String>) additionalProperties.get(X_HTTP_STATUSES_WITH_RETURN)
: new HashSet<String>(); : new HashSet<String>();
additionalProperties.put("x-http-statuses-with-return", httpStatusesWithReturn); additionalProperties.put(X_HTTP_STATUSES_WITH_RETURN, httpStatusesWithReturn);
HashMap<String, CodegenModel> modelMaps = ModelMap.toCodegenModelMap(allModels); HashMap<String, CodegenModel> modelMaps = ModelMap.toCodegenModelMap(allModels);
@ -955,7 +956,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
for (CodegenOperation operation : ops) { for (CodegenOperation operation : ops) {
String duplicates = duplicateOf.get(operation.operationId); String duplicates = duplicateOf.get(operation.operationId);
if (duplicates != null) { if (duplicates != null) {
operation.vendorExtensions.put("x-duplicates", duplicates); operation.vendorExtensions.put(X_DUPLICATES, duplicates);
} else { } else {
duplicateOf.put(operation.operationId, operations.getClassname()); duplicateOf.put(operation.operationId, operations.getClassname());
} }
@ -964,13 +965,13 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
if (response.returnProperty != null) { if (response.returnProperty != null) {
Boolean isValueType = isValueType(response.returnProperty); Boolean isValueType = isValueType(response.returnProperty);
response.vendorExtensions.put("x-is-value-type", isValueType); response.vendorExtensions.put(X_IS_VALUE_TYPE, isValueType);
response.vendorExtensions.put("x-is-reference-type", !isValueType); response.vendorExtensions.put(X_IS_REFERENCE_TYPE, !isValueType);
} }
if (response.headers != null && response.headers.stream().anyMatch(h -> h.baseName.equals("Set-Cookie"))) { if (response.headers != null && response.headers.stream().anyMatch(h -> h.baseName.equals("Set-Cookie"))) {
response.vendorExtensions.put("x-set-cookie", true); response.vendorExtensions.put(X_SET_COOKIE, true);
operation.vendorExtensions.put("x-set-cookie", true); operation.vendorExtensions.put(X_SET_COOKIE, true);
} }
String code = response.code.toLowerCase(Locale.ROOT); String code = response.code.toLowerCase(Locale.ROOT);
@ -978,9 +979,9 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
case "default": case "default":
case "0": case "0":
postProcessResponseCode(response, "Default", httpStatusesWithReturn); postProcessResponseCode(response, "Default", httpStatusesWithReturn);
response.vendorExtensions.put("x-http-status-is-default", true); response.vendorExtensions.put(X_HTTP_STATUS_IS_DEFAULT, true);
if ((long) operation.responses.size() == 1) { if ((long) operation.responses.size() == 1) {
response.vendorExtensions.put("x-only-default", true); response.vendorExtensions.put(X_ONLY_DEFAULT, true);
} }
break; break;
case "100": case "100":
@ -1161,23 +1162,23 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
postProcessResponseCode(response, "NetworkAuthenticationRequired", httpStatusesWithReturn); postProcessResponseCode(response, "NetworkAuthenticationRequired", httpStatusesWithReturn);
break; break;
case "1xx": case "1xx":
response.vendorExtensions.put("x-http-status-range", 1); response.vendorExtensions.put(X_HTTP_STATUS_RANGE, 1);
postProcessResponseCode(response, "HttpStatusCode1XX", httpStatusesWithReturn); postProcessResponseCode(response, "HttpStatusCode1XX", httpStatusesWithReturn);
break; break;
case "2xx": case "2xx":
response.vendorExtensions.put("x-http-status-range", 2); response.vendorExtensions.put(X_HTTP_STATUS_RANGE, 2);
postProcessResponseCode(response, "HttpStatusCode2XX", httpStatusesWithReturn); postProcessResponseCode(response, "HttpStatusCode2XX", httpStatusesWithReturn);
break; break;
case "3xx": case "3xx":
response.vendorExtensions.put("x-http-status-range", 3); response.vendorExtensions.put(X_HTTP_STATUS_RANGE, 3);
postProcessResponseCode(response, "HttpStatusCode3XX", httpStatusesWithReturn); postProcessResponseCode(response, "HttpStatusCode3XX", httpStatusesWithReturn);
break; break;
case "4xx": case "4xx":
response.vendorExtensions.put("x-http-status-range", 4); response.vendorExtensions.put(X_HTTP_STATUS_RANGE, 4);
postProcessResponseCode(response, "HttpStatusCode4XX", httpStatusesWithReturn); postProcessResponseCode(response, "HttpStatusCode4XX", httpStatusesWithReturn);
break; break;
case "5xx": case "5xx":
response.vendorExtensions.put("x-http-status-range", 5); response.vendorExtensions.put(X_HTTP_STATUS_RANGE, 5);
postProcessResponseCode(response, "HttpStatusCode5XX", httpStatusesWithReturn); postProcessResponseCode(response, "HttpStatusCode5XX", httpStatusesWithReturn);
break; break;
default: default:
@ -1278,9 +1279,9 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
patchParameter(model, parameter); patchParameter(model, parameter);
} }
List<CodegenParameter> referenceTypes = operation.allParams.stream().filter(p -> p.vendorExtensions.get("x-is-value-type") == null && !p.isNullable).collect(Collectors.toList()); List<CodegenParameter> referenceTypes = operation.allParams.stream().filter(p -> p.vendorExtensions.get(X_IS_VALUE_TYPE) == null && !p.isNullable).collect(Collectors.toList());
operation.vendorExtensions.put("x-not-nullable-reference-types", referenceTypes); operation.vendorExtensions.put(X_NOT_NULLABLE_REFERENCE_TYPES, referenceTypes);
operation.vendorExtensions.put("x-has-not-nullable-reference-types", referenceTypes.size() > 0); operation.vendorExtensions.put(X_HAS_NOT_NULLABLE_REFERENCE_TYPES, referenceTypes.size() > 0);
processOperation(operation); processOperation(operation);
// Remove constant params from allParams list and add to constantParams // Remove constant params from allParams list and add to constantParams
@ -1291,7 +1292,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
protected void patchVendorExtensionNullableValueType(CodegenParameter parameter) { protected void patchVendorExtensionNullableValueType(CodegenParameter parameter) {
if (parameter.isNullable && !parameter.isContainer && (this.getValueTypes().contains(parameter.dataType) || parameter.isEnum)) { if (parameter.isNullable && !parameter.isContainer && (this.getValueTypes().contains(parameter.dataType) || parameter.isEnum)) {
parameter.vendorExtensions.put("x-nullable-value-type", true); parameter.vendorExtensions.put(X_NULLABLE_VALUE_TYPE, true);
} }
} }
@ -1307,15 +1308,15 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
*/ */
protected void patchVendorExtensionNullableValueTypeLegacy(CodegenParameter parameter) { protected void patchVendorExtensionNullableValueTypeLegacy(CodegenParameter parameter) {
if (parameter.isNullable && !parameter.isContainer && (this.getNullableTypes().contains(parameter.dataType) || parameter.isEnum)) { if (parameter.isNullable && !parameter.isContainer && (this.getNullableTypes().contains(parameter.dataType) || parameter.isEnum)) {
parameter.vendorExtensions.put("x-nullable-value-type", true); parameter.vendorExtensions.put(X_NULLABLE_VALUE_TYPE, true);
} }
} }
private void patchParameter(CodegenModel model, CodegenParameter parameter) { private void patchParameter(CodegenModel model, CodegenParameter parameter) {
patchVendorExtensionNullableValueType(parameter); patchVendorExtensionNullableValueType(parameter);
if (this.getNullableReferencesTypes() || (parameter.vendorExtensions.get("x-nullable-value-type") != null)) { if (this.getNullableReferencesTypes() || (parameter.vendorExtensions.get(X_NULLABLE_VALUE_TYPE) != null)) {
parameter.vendorExtensions.put("x-nullable-type", true); parameter.vendorExtensions.put(X_NULLABLE_TYPE, true);
} }
if (!isSupportNullable()) { if (!isSupportNullable()) {
@ -1362,12 +1363,12 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
parameter.isEnum = true; parameter.isEnum = true;
parameter.allowableValues = model.allowableValues; parameter.allowableValues = model.allowableValues;
parameter.isPrimitiveType = true; parameter.isPrimitiveType = true;
parameter.vendorExtensions.put("x-csharp-value-type", true); parameter.vendorExtensions.put(X_CSHARP_VALUE_TYPE, true);
} }
} }
if (!parameter.isContainer && this.getNullableTypes().contains(parameter.dataType)) { if (!parameter.isContainer && this.getNullableTypes().contains(parameter.dataType)) {
parameter.vendorExtensions.put("x-csharp-value-type", true); parameter.vendorExtensions.put(X_CSHARP_VALUE_TYPE, true);
} }
} }
@ -1377,12 +1378,12 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
parameter.isEnum = true; parameter.isEnum = true;
parameter.allowableValues = model.allowableValues; parameter.allowableValues = model.allowableValues;
parameter.isPrimitiveType = true; parameter.isPrimitiveType = true;
parameter.vendorExtensions.put("x-is-value-type", true); parameter.vendorExtensions.put(X_IS_VALUE_TYPE, true);
} }
} }
if (!parameter.isContainer && this.getValueTypes().contains(parameter.dataType)) { if (!parameter.isContainer && this.getValueTypes().contains(parameter.dataType)) {
parameter.vendorExtensions.put("x-is-value-type", true); parameter.vendorExtensions.put(X_IS_VALUE_TYPE, true);
} }
} }
@ -2050,13 +2051,13 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen {
} else if (c == 'l') { } else if (c == 'l') {
modifiers.remove("CultureInvariant"); modifiers.remove("CultureInvariant");
} else { } else {
vendorExtensions.put("x-modifier-" + c, c); vendorExtensions.put(X_MODIFIER_PREFIX + c, c);
} }
} }
String regex = pattern.substring(start, end).replace("\"", "\"\""); String regex = pattern.substring(start, end).replace("\"", "\"\"");
vendorExtensions.put("x-regex", regex); vendorExtensions.put(X_REGEX, regex);
vendorExtensions.put("x-modifiers", modifiers); vendorExtensions.put(X_MODIFIERS, modifiers);
} }
} }

View File

@ -37,6 +37,7 @@ import org.slf4j.LoggerFactory;
import java.io.File; import java.io.File;
import java.util.*; import java.util.*;
import static org.openapitools.codegen.CodegenConstants.X_ENUM_BYTE;
import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER;
import static org.openapitools.codegen.utils.StringUtils.camelize; import static org.openapitools.codegen.utils.StringUtils.camelize;
import static org.openapitools.codegen.utils.StringUtils.underscore; import static org.openapitools.codegen.utils.StringUtils.underscore;
@ -433,7 +434,7 @@ public abstract class AbstractFSharpCodegen extends DefaultCodegen implements Co
if (model.dataType.startsWith("byte")) { if (model.dataType.startsWith("byte")) {
// F# Actually supports byte and short enums, swagger spec only supports byte. // F# Actually supports byte and short enums, swagger spec only supports byte.
isByte = true; isByte = true;
model.vendorExtensions.put("x-enum-byte", true); model.vendorExtensions.put(X_ENUM_BYTE, true);
} else if (model.dataType.startsWith("int32")) { } else if (model.dataType.startsWith("int32")) {
isInteger = true; isInteger = true;
model.vendorExtensions.put("x-enum-integer", true); model.vendorExtensions.put("x-enum-integer", true);
@ -487,7 +488,7 @@ public abstract class AbstractFSharpCodegen extends DefaultCodegen implements Co
// Because C# uses nullable primitives for datatype, and datatype is used in DefaultCodegen for determining enum-ness, guard against weirdness here. // Because C# uses nullable primitives for datatype, and datatype is used in DefaultCodegen for determining enum-ness, guard against weirdness here.
if (var.isEnum) { if (var.isEnum) {
if ("byte".equals(var.dataFormat)) {// C# Actually supports byte and short enums. if ("byte".equals(var.dataFormat)) {// C# Actually supports byte and short enums.
var.vendorExtensions.put("x-enum-byte", true); var.vendorExtensions.put(X_ENUM_BYTE, true);
var.isString = false; var.isString = false;
var.isLong = false; var.isLong = false;
var.isInteger = false; var.isInteger = false;

View File

@ -40,6 +40,8 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.openapitools.codegen.CodegenConstants.X_MODIFIERS;
import static org.openapitools.codegen.CodegenConstants.X_REGEX;
import static org.openapitools.codegen.utils.StringUtils.*; import static org.openapitools.codegen.utils.StringUtils.*;
@ -1353,9 +1355,9 @@ public abstract class AbstractPythonCodegen extends DefaultCodegen implements Co
} }
} }
vendorExtensions.put("x-regex", regex.replace("\"", "\\\"")); vendorExtensions.put(X_REGEX, regex.replace("\"", "\\\""));
vendorExtensions.put("x-pattern", pattern.replace("\"", "\\\"")); vendorExtensions.put("x-pattern", pattern.replace("\"", "\\\""));
vendorExtensions.put("x-modifiers", modifiers); vendorExtensions.put(X_MODIFIERS, modifiers);
} }
} }

View File

@ -46,6 +46,8 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
import static org.openapitools.codegen.CodegenConstants.X_MODIFIERS;
import static org.openapitools.codegen.CodegenConstants.X_REGEX;
import static org.openapitools.codegen.utils.StringUtils.camelize; import static org.openapitools.codegen.utils.StringUtils.camelize;
public abstract class AbstractPythonConnexionServerCodegen extends AbstractPythonCodegen implements CodegenConfig { public abstract class AbstractPythonConnexionServerCodegen extends AbstractPythonCodegen implements CodegenConfig {
@ -743,8 +745,8 @@ public abstract class AbstractPythonConnexionServerCodegen extends AbstractPytho
} }
} }
vendorExtensions.put("x-regex", regex); vendorExtensions.put(X_REGEX, regex);
vendorExtensions.put("x-modifiers", modifiers); vendorExtensions.put(X_MODIFIERS, modifiers);
} }
} }
} }

View File

@ -39,6 +39,8 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.openapitools.codegen.CodegenConstants.X_MODIFIERS;
import static org.openapitools.codegen.CodegenConstants.X_REGEX;
import static org.openapitools.codegen.utils.StringUtils.*; import static org.openapitools.codegen.utils.StringUtils.*;
public abstract class AbstractPythonPydanticV1Codegen extends DefaultCodegen implements CodegenConfig { public abstract class AbstractPythonPydanticV1Codegen extends DefaultCodegen implements CodegenConfig {
@ -1915,9 +1917,9 @@ public abstract class AbstractPythonPydanticV1Codegen extends DefaultCodegen imp
} }
} }
vendorExtensions.put("x-regex", regex.replace("\"", "\\\"")); vendorExtensions.put(X_REGEX, regex.replace("\"", "\\\""));
vendorExtensions.put("x-pattern", pattern.replace("\"", "\\\"")); vendorExtensions.put("x-pattern", pattern.replace("\"", "\\\""));
vendorExtensions.put("x-modifiers", modifiers); vendorExtensions.put(X_MODIFIERS, modifiers);
} }
} }

View File

@ -37,6 +37,7 @@ import java.net.URL;
import java.util.*; import java.util.*;
import static java.util.UUID.randomUUID; import static java.util.UUID.randomUUID;
import static org.openapitools.codegen.CodegenConstants.X_CSHARP_VALUE_TYPE;
public class AspNetServerCodegen extends AbstractCSharpCodegen { public class AspNetServerCodegen extends AbstractCSharpCodegen {
@ -347,7 +348,7 @@ public class AspNetServerCodegen extends AbstractCSharpCodegen {
protected void updateCodegenParameterEnum(CodegenParameter parameter, CodegenModel model) { protected void updateCodegenParameterEnum(CodegenParameter parameter, CodegenModel model) {
super.updateCodegenParameterEnumLegacy(parameter, model); super.updateCodegenParameterEnumLegacy(parameter, model);
if (!parameter.required && parameter.vendorExtensions.get("x-csharp-value-type") != null) { //optional if (!parameter.required && parameter.vendorExtensions.get(X_CSHARP_VALUE_TYPE) != null) { //optional
parameter.dataType = parameter.dataType + "?"; parameter.dataType = parameter.dataType + "?";
} }
} }
@ -627,7 +628,7 @@ public class AspNetServerCodegen extends AbstractCSharpCodegen {
super.patchProperty(enumRefs, model, property); super.patchProperty(enumRefs, model, property);
if (!property.isContainer && (this.getNullableTypes().contains(property.dataType) || property.isEnum)) { if (!property.isContainer && (this.getNullableTypes().contains(property.dataType) || property.isEnum)) {
property.vendorExtensions.put("x-csharp-value-type", true); property.vendorExtensions.put(X_CSHARP_VALUE_TYPE, true);
} }
} }

View File

@ -39,6 +39,7 @@ import java.util.function.Consumer;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.apache.commons.lang3.StringUtils.isEmpty; import static org.apache.commons.lang3.StringUtils.isEmpty;
import static org.openapitools.codegen.CodegenConstants.X_CSHARP_VALUE_TYPE;
import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER;
import static org.openapitools.codegen.utils.StringUtils.camelize; import static org.openapitools.codegen.utils.StringUtils.camelize;
import static org.openapitools.codegen.utils.StringUtils.underscore; import static org.openapitools.codegen.utils.StringUtils.underscore;
@ -409,7 +410,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen {
super.updateCodegenParameterEnumLegacy(parameter, model); super.updateCodegenParameterEnumLegacy(parameter, model);
if (!parameter.required && parameter.vendorExtensions.get("x-csharp-value-type") != null) { //optional if (!parameter.required && parameter.vendorExtensions.get(X_CSHARP_VALUE_TYPE) != null) { //optional
parameter.dataType = parameter.dataType + "?"; parameter.dataType = parameter.dataType + "?";
} }
} }
@ -1626,7 +1627,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen {
if (!GENERICHOST.equals(getLibrary())) { if (!GENERICHOST.equals(getLibrary())) {
if (!property.isContainer && (this.getNullableTypes().contains(property.dataType) || property.isEnum)) { if (!property.isContainer && (this.getNullableTypes().contains(property.dataType) || property.isEnum)) {
property.vendorExtensions.put("x-csharp-value-type", true); property.vendorExtensions.put(X_CSHARP_VALUE_TYPE, true);
} }
} }
} }

View File

@ -36,6 +36,7 @@ import java.net.URL;
import java.util.*; import java.util.*;
import static java.util.UUID.randomUUID; import static java.util.UUID.randomUUID;
import static org.openapitools.codegen.CodegenConstants.X_CSHARP_VALUE_TYPE;
public class CSharpFunctionsServerCodegen extends AbstractCSharpCodegen { public class CSharpFunctionsServerCodegen extends AbstractCSharpCodegen {
@ -287,7 +288,7 @@ public class CSharpFunctionsServerCodegen extends AbstractCSharpCodegen {
super.patchProperty(enumRefs, model, property); super.patchProperty(enumRefs, model, property);
if (!property.isContainer && (this.getNullableTypes().contains(property.dataType) || property.isEnum)) { if (!property.isContainer && (this.getNullableTypes().contains(property.dataType) || property.isEnum)) {
property.vendorExtensions.put("x-csharp-value-type", true); property.vendorExtensions.put(X_CSHARP_VALUE_TYPE, true);
} }
} }
@ -295,7 +296,7 @@ public class CSharpFunctionsServerCodegen extends AbstractCSharpCodegen {
protected void updateCodegenParameterEnum(CodegenParameter parameter, CodegenModel model) { protected void updateCodegenParameterEnum(CodegenParameter parameter, CodegenModel model) {
super.updateCodegenParameterEnumLegacy(parameter, model); super.updateCodegenParameterEnumLegacy(parameter, model);
if (!parameter.required && parameter.vendorExtensions.get("x-csharp-value-type") != null) { //optional if (!parameter.required && parameter.vendorExtensions.get(X_CSHARP_VALUE_TYPE) != null) { //optional
parameter.dataType = parameter.dataType + "?"; parameter.dataType = parameter.dataType + "?";
} }
} }

View File

@ -37,6 +37,7 @@ import java.util.function.Consumer;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.apache.commons.lang3.StringUtils.isEmpty; import static org.apache.commons.lang3.StringUtils.isEmpty;
import static org.openapitools.codegen.CodegenConstants.X_CSHARP_VALUE_TYPE;
import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER; import static org.openapitools.codegen.utils.CamelizeOption.LOWERCASE_FIRST_LETTER;
import static org.openapitools.codegen.utils.StringUtils.camelize; import static org.openapitools.codegen.utils.StringUtils.camelize;
import static org.openapitools.codegen.utils.StringUtils.underscore; import static org.openapitools.codegen.utils.StringUtils.underscore;
@ -350,7 +351,7 @@ public class CSharpReducedClientCodegen extends AbstractCSharpCodegen {
super.patchProperty(enumRefs, model, property); super.patchProperty(enumRefs, model, property);
if (!property.isContainer && (this.getNullableTypes().contains(property.dataType) || property.isEnum)) { if (!property.isContainer && (this.getNullableTypes().contains(property.dataType) || property.isEnum)) {
property.vendorExtensions.put("x-csharp-value-type", true); property.vendorExtensions.put(X_CSHARP_VALUE_TYPE, true);
} }
} }
@ -358,7 +359,7 @@ public class CSharpReducedClientCodegen extends AbstractCSharpCodegen {
protected void updateCodegenParameterEnum(CodegenParameter parameter, CodegenModel model) { protected void updateCodegenParameterEnum(CodegenParameter parameter, CodegenModel model) {
super.updateCodegenParameterEnumLegacy(parameter, model); super.updateCodegenParameterEnumLegacy(parameter, model);
if (!parameter.required && parameter.vendorExtensions.get("x-csharp-value-type") != null) { //optional if (!parameter.required && parameter.vendorExtensions.get(X_CSHARP_VALUE_TYPE) != null) { //optional
parameter.dataType = parameter.dataType + "?"; parameter.dataType = parameter.dataType + "?";
} }
} }