mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-10-14 00:13:50 +00:00
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:
parent
81a3488556
commit
42af4f9529
@ -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";
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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 + "?";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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 + "?";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user