From 42af4f9529067cd7b8654609e9e7bfa17c30ac47 Mon Sep 17 00:00:00 2001 From: Mattias Sehlstedt <60173714+Mattias-Sehlstedt@users.noreply.github.com> Date: Sun, 12 Oct 2025 17:21:17 +0200 Subject: [PATCH] Move all vendor extension definitions within AbstractCSharpCodegen to CodegenConstants. Then adjust other usages of those same vendor extension definitions to the created constants. (#22112) --- .../codegen/CodegenConstants.java | 24 ++++++ .../languages/AbstractCSharpCodegen.java | 81 ++++++++++--------- .../languages/AbstractFSharpCodegen.java | 5 +- .../languages/AbstractPythonCodegen.java | 6 +- .../AbstractPythonConnexionServerCodegen.java | 6 +- .../AbstractPythonPydanticV1Codegen.java | 6 +- .../languages/AspNetServerCodegen.java | 5 +- .../languages/CSharpClientCodegen.java | 5 +- .../CSharpFunctionsServerCodegen.java | 5 +- .../languages/CSharpReducedClientCodegen.java | 5 +- 10 files changed, 92 insertions(+), 56 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java index cbe37180ad6..022089190ee 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java @@ -457,6 +457,30 @@ public class CodegenConstants { public static final String DEFAULT_TO_EMPTY_CONTAINER = "defaultToEmptyContainer"; + // Vendor extensions public static final String X_INTERNAL = "x-internal"; 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"; } 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 1c81b4bbcdd..4e430f7ba62 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 @@ -46,6 +46,7 @@ import java.util.*; import java.util.regex.Pattern; 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.ModelUtils.getSchemaItems; import static org.openapitools.codegen.utils.StringUtils.camelize; @@ -543,7 +544,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { if (dataTypeSet.contains(oneOfProperty.dataType)) { // add "x-duplicated-data-type" to indicate if the dataType already occurs before // 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 { dataTypeSet.add(oneOfProperty.dataType); } @@ -557,7 +558,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { if (dataTypeSet.contains(anyOfProperty.dataType)) { // add "x-duplicated-data-type" to indicate if the dataType already occurs before // 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 { dataTypeSet.add(anyOfProperty.dataType); } @@ -619,7 +620,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { 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(); if (composedSchemas != null) { @@ -639,7 +640,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { patchProperty(enumRefs, model, property); property.name = patchPropertyName(model, property, camelize(property.baseType), composedPropertyNames); 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); property.name = patchPropertyName(model, property, camelize(property.baseType), composedPropertyNames); 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) { boolean isValueType = isValueType(property); - property.vendorExtensions.put("x-is-value-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-base-or-new-discriminator", (property.isDiscriminator && !property.isInherited) || (property.isDiscriminator && property.isNew)); + property.vendorExtensions.put(X_IS_VALUE_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_BASE_OR_NEW_DISCRIMINATOR, (property.isDiscriminator && !property.isInherited) || (property.isDiscriminator && property.isNew)); } 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. if (var.isEnum) { 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.isLong = false; var.isInteger = false; @@ -909,7 +910,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { } private void postProcessResponseCode(CodegenResponse response, String status, Set httpStatusesWithReturn) { - response.vendorExtensions.put("x-http-status", status); + response.vendorExtensions.put(X_HTTP_STATUS, status); if (response.dataType != null) { httpStatusesWithReturn.add(status); } @@ -942,11 +943,11 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { } private void postProcessOperations(OperationMap operations, List allModels) { - Set httpStatusesWithReturn = additionalProperties.get("x-http-statuses-with-return") instanceof Set - ? (Set) additionalProperties.get("x-http-statuses-with-return") + Set httpStatusesWithReturn = additionalProperties.get(X_HTTP_STATUSES_WITH_RETURN) instanceof Set + ? (Set) additionalProperties.get(X_HTTP_STATUSES_WITH_RETURN) : new HashSet(); - additionalProperties.put("x-http-statuses-with-return", httpStatusesWithReturn); + additionalProperties.put(X_HTTP_STATUSES_WITH_RETURN, httpStatusesWithReturn); HashMap modelMaps = ModelMap.toCodegenModelMap(allModels); @@ -955,7 +956,7 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { for (CodegenOperation operation : ops) { String duplicates = duplicateOf.get(operation.operationId); if (duplicates != null) { - operation.vendorExtensions.put("x-duplicates", duplicates); + operation.vendorExtensions.put(X_DUPLICATES, duplicates); } else { duplicateOf.put(operation.operationId, operations.getClassname()); } @@ -964,13 +965,13 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { if (response.returnProperty != null) { Boolean isValueType = isValueType(response.returnProperty); - response.vendorExtensions.put("x-is-value-type", isValueType); - response.vendorExtensions.put("x-is-reference-type", !isValueType); + response.vendorExtensions.put(X_IS_VALUE_TYPE, isValueType); + response.vendorExtensions.put(X_IS_REFERENCE_TYPE, !isValueType); } if (response.headers != null && response.headers.stream().anyMatch(h -> h.baseName.equals("Set-Cookie"))) { - response.vendorExtensions.put("x-set-cookie", true); - operation.vendorExtensions.put("x-set-cookie", true); + response.vendorExtensions.put(X_SET_COOKIE, true); + operation.vendorExtensions.put(X_SET_COOKIE, true); } String code = response.code.toLowerCase(Locale.ROOT); @@ -978,9 +979,9 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { case "default": case "0": 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) { - response.vendorExtensions.put("x-only-default", true); + response.vendorExtensions.put(X_ONLY_DEFAULT, true); } break; case "100": @@ -1161,23 +1162,23 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { postProcessResponseCode(response, "NetworkAuthenticationRequired", httpStatusesWithReturn); break; case "1xx": - response.vendorExtensions.put("x-http-status-range", 1); + response.vendorExtensions.put(X_HTTP_STATUS_RANGE, 1); postProcessResponseCode(response, "HttpStatusCode1XX", httpStatusesWithReturn); break; case "2xx": - response.vendorExtensions.put("x-http-status-range", 2); + response.vendorExtensions.put(X_HTTP_STATUS_RANGE, 2); postProcessResponseCode(response, "HttpStatusCode2XX", httpStatusesWithReturn); break; case "3xx": - response.vendorExtensions.put("x-http-status-range", 3); + response.vendorExtensions.put(X_HTTP_STATUS_RANGE, 3); postProcessResponseCode(response, "HttpStatusCode3XX", httpStatusesWithReturn); break; case "4xx": - response.vendorExtensions.put("x-http-status-range", 4); + response.vendorExtensions.put(X_HTTP_STATUS_RANGE, 4); postProcessResponseCode(response, "HttpStatusCode4XX", httpStatusesWithReturn); break; case "5xx": - response.vendorExtensions.put("x-http-status-range", 5); + response.vendorExtensions.put(X_HTTP_STATUS_RANGE, 5); postProcessResponseCode(response, "HttpStatusCode5XX", httpStatusesWithReturn); break; default: @@ -1278,9 +1279,9 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { patchParameter(model, parameter); } - List 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-has-not-nullable-reference-types", referenceTypes.size() > 0); + List 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_HAS_NOT_NULLABLE_REFERENCE_TYPES, referenceTypes.size() > 0); processOperation(operation); // 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) { 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) { 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) { patchVendorExtensionNullableValueType(parameter); - if (this.getNullableReferencesTypes() || (parameter.vendorExtensions.get("x-nullable-value-type") != null)) { - parameter.vendorExtensions.put("x-nullable-type", true); + if (this.getNullableReferencesTypes() || (parameter.vendorExtensions.get(X_NULLABLE_VALUE_TYPE) != null)) { + parameter.vendorExtensions.put(X_NULLABLE_TYPE, true); } if (!isSupportNullable()) { @@ -1362,12 +1363,12 @@ public abstract class AbstractCSharpCodegen extends DefaultCodegen { parameter.isEnum = true; parameter.allowableValues = model.allowableValues; 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)) { - 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.allowableValues = model.allowableValues; 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)) { - 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') { modifiers.remove("CultureInvariant"); } else { - vendorExtensions.put("x-modifier-" + c, c); + vendorExtensions.put(X_MODIFIER_PREFIX + c, c); } } String regex = pattern.substring(start, end).replace("\"", "\"\""); - vendorExtensions.put("x-regex", regex); - vendorExtensions.put("x-modifiers", modifiers); + vendorExtensions.put(X_REGEX, regex); + vendorExtensions.put(X_MODIFIERS, modifiers); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractFSharpCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractFSharpCodegen.java index 5707dec3281..7ca5e99015c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractFSharpCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractFSharpCodegen.java @@ -37,6 +37,7 @@ import org.slf4j.LoggerFactory; import java.io.File; 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.StringUtils.camelize; 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")) { // F# Actually supports byte and short enums, swagger spec only supports byte. isByte = true; - model.vendorExtensions.put("x-enum-byte", true); + model.vendorExtensions.put(X_ENUM_BYTE, true); } else if (model.dataType.startsWith("int32")) { isInteger = 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. if (var.isEnum) { 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.isLong = false; var.isInteger = false; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java index e7740fe2513..4e4f9889ca1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonCodegen.java @@ -40,6 +40,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; 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.*; @@ -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-modifiers", modifiers); + vendorExtensions.put(X_MODIFIERS, modifiers); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonConnexionServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonConnexionServerCodegen.java index 8c2686764c2..c5820f67957 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonConnexionServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonConnexionServerCodegen.java @@ -46,6 +46,8 @@ import java.io.File; import java.io.IOException; 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; 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-modifiers", modifiers); + vendorExtensions.put(X_REGEX, regex); + vendorExtensions.put(X_MODIFIERS, modifiers); } } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonPydanticV1Codegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonPydanticV1Codegen.java index da8434e1ae3..7591c1df7c3 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonPydanticV1Codegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractPythonPydanticV1Codegen.java @@ -39,6 +39,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; 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.*; 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-modifiers", modifiers); + vendorExtensions.put(X_MODIFIERS, modifiers); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetServerCodegen.java index c4754ba5a8f..da7de70545e 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetServerCodegen.java @@ -37,6 +37,7 @@ import java.net.URL; import java.util.*; import static java.util.UUID.randomUUID; +import static org.openapitools.codegen.CodegenConstants.X_CSHARP_VALUE_TYPE; public class AspNetServerCodegen extends AbstractCSharpCodegen { @@ -347,7 +348,7 @@ public class AspNetServerCodegen extends AbstractCSharpCodegen { protected void updateCodegenParameterEnum(CodegenParameter parameter, CodegenModel 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 + "?"; } } @@ -627,7 +628,7 @@ public class AspNetServerCodegen extends AbstractCSharpCodegen { super.patchProperty(enumRefs, model, property); 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); } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java index 68ec6d47313..0e22cbaa36c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java @@ -39,6 +39,7 @@ import java.util.function.Consumer; import java.util.stream.Collectors; 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.StringUtils.camelize; import static org.openapitools.codegen.utils.StringUtils.underscore; @@ -409,7 +410,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen { 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 + "?"; } } @@ -1626,7 +1627,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen { if (!GENERICHOST.equals(getLibrary())) { 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); } } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpFunctionsServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpFunctionsServerCodegen.java index e4ece812f62..f650aa72ca0 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpFunctionsServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpFunctionsServerCodegen.java @@ -36,6 +36,7 @@ import java.net.URL; import java.util.*; import static java.util.UUID.randomUUID; +import static org.openapitools.codegen.CodegenConstants.X_CSHARP_VALUE_TYPE; public class CSharpFunctionsServerCodegen extends AbstractCSharpCodegen { @@ -287,7 +288,7 @@ public class CSharpFunctionsServerCodegen extends AbstractCSharpCodegen { super.patchProperty(enumRefs, model, property); 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) { 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 + "?"; } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpReducedClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpReducedClientCodegen.java index 60d8a9956f8..42adb25c3a8 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpReducedClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpReducedClientCodegen.java @@ -37,6 +37,7 @@ import java.util.function.Consumer; import java.util.stream.Collectors; 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.StringUtils.camelize; import static org.openapitools.codegen.utils.StringUtils.underscore; @@ -350,7 +351,7 @@ public class CSharpReducedClientCodegen extends AbstractCSharpCodegen { super.patchProperty(enumRefs, model, property); 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) { 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 + "?"; } }