Skip to content

Commit 2331432

Browse files
authored
Adds hasValidation to all java core Schema classes (#8474)
* Adds hasValidation to IJsonSchemaValidationProperties * Adds model validation examples for maxItems, minItems, minProperties, maxProperties, minLength, maxLength, multipleOf * Adds schemas with pattern validation * Adds minimum example schemas * Adds maximum example schemas * Adds ArrayWithUniqueItems * Adds exclusiveMinimum schemas * Adds exclusiveMaximum examples * adds testModelGetHasValidation * Adds testPropertyGetHasValidation * Adds testQueryParametersGetHasValidation * Uncomments out query parameters * Adds testHeaderParametersGetHasValidation * Adds testCookieParametersGetHasValidation * Adds length assertions for properties and marameters * Adds testBodyAndResponseGetHasValidation * Improves validation setting * Only sets exclusiveMinimum when minimum is set, only set exclusiveMaximum when maximum is set * Adds fix for rust * Fixes min and max setting for integers * Regenerates python samples * Updates code so python sample does not change
1 parent 3d23b99 commit 2331432

9 files changed

Lines changed: 3072 additions & 150 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenModel.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public class CodegenModel implements IJsonSchemaValidationProperties {
7979
public Set<String> allMandatory = new TreeSet<String>(); // with parent's required properties
8080

8181
public Set<String> imports = new TreeSet<String>();
82-
public boolean hasVars, emptyVars, hasMoreModels, hasEnums, isEnum;
82+
public boolean hasVars, emptyVars, hasMoreModels, hasEnums, isEnum, hasValidation;
8383
/**
8484
* Indicates the OAS schema specifies "nullable: true".
8585
*/
@@ -612,12 +612,11 @@ public void setAdditionalProperties(CodegenProperty additionalProperties) {
612612
this.additionalProperties = additionalProperties;
613613
}
614614

615-
// indicates if the model component has validation on the root level schema
616-
// this will be true when minItems or minProperties is set
617-
public boolean hasValidation() {
618-
boolean val = (maxItems != null || minItems != null || minProperties != null || maxProperties != null || minLength != null || maxLength != null || multipleOf != null || pattern != null || minimum != null || maximum != null || Boolean.TRUE.equals(uniqueItems) || Boolean.TRUE.equals(exclusiveMaximum) || Boolean.TRUE.equals(exclusiveMinimum));
619-
return val;
620-
}
615+
@Override
616+
public boolean getHasValidation() { return hasValidation; }
617+
618+
@Override
619+
public void setHasValidation(boolean hasValidation) { this.hasValidation = hasValidation; }
621620

622621
public List<CodegenProperty> getReadOnlyVars() {
623622
return readOnlyVars;
@@ -742,6 +741,7 @@ public boolean equals(Object o) {
742741
isDeprecated == that.isDeprecated &&
743742
hasOnlyReadOnly == that.hasOnlyReadOnly &&
744743
isNull == that.isNull &&
744+
hasValidation == that.hasValidation &&
745745
getUniqueItems() == that.getUniqueItems() &&
746746
getExclusiveMinimum() == that.getExclusiveMinimum() &&
747747
getExclusiveMaximum() == that.getExclusiveMaximum() &&
@@ -806,7 +806,7 @@ public int hashCode() {
806806
getDescription(), getClassVarName(), getModelJson(), getDataType(), getXmlPrefix(), getXmlNamespace(),
807807
getXmlName(), getClassFilename(), getUnescapedDescription(), getDiscriminator(), getDefaultValue(),
808808
getArrayModelType(), isAlias, isString, isInteger, isLong, isNumber, isNumeric, isFloat, isDouble,
809-
isDate, isDateTime, isNull,
809+
isDate, isDateTime, isNull, hasValidation,
810810
getVars(), getAllVars(), getRequiredVars(), getOptionalVars(), getReadOnlyVars(), getReadWriteVars(),
811811
getParentVars(), getAllowableValues(), getMandatory(), getAllMandatory(), getImports(), hasVars,
812812
isEmptyVars(), hasMoreModels, hasEnums, isEnum, isNullable, hasRequired, hasOptional, isArray,
@@ -898,6 +898,7 @@ public String toString() {
898898
sb.append(", additionalProperties='").append(additionalProperties).append('\'');
899899
sb.append(", isModel='").append(isModel).append('\'');
900900
sb.append(", isNull='").append(isNull);
901+
sb.append(", hasValidation='").append(hasValidation);
901902
sb.append('}');
902903
return sb.toString();
903904
}

modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenParameter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,5 +582,11 @@ public boolean getIsNull() {
582582
public void setIsNull(boolean isNull) {
583583
this.isNull = isNull;
584584
}
585+
586+
@Override
587+
public boolean getHasValidation() { return hasValidation; }
588+
589+
@Override
590+
public void setHasValidation(boolean hasValidation) { this.hasValidation = hasValidation; }
585591
}
586592

modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenProperty.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -687,6 +687,12 @@ public void setIsNull(boolean isNull) {
687687
this.isNull = isNull;
688688
}
689689

690+
@Override
691+
public boolean getHasValidation() { return hasValidation; }
692+
693+
@Override
694+
public void setHasValidation(boolean hasValidation) { this.hasValidation = hasValidation; }
695+
690696
@Override
691697
public String toString() {
692698
final StringBuilder sb = new StringBuilder("CodegenProperty{");

modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenResponse.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,15 @@ public class CodegenResponse implements IJsonSchemaValidationProperties {
7878
public CodegenProperty additionalProperties;
7979
public List<CodegenProperty> vars = new ArrayList<CodegenProperty>(); // all properties (without parent's properties)
8080
public List<CodegenProperty> requiredVars = new ArrayList<CodegenProperty>();
81+
private boolean hasValidation;
8182

8283
@Override
8384
public int hashCode() {
8485
return Objects.hash(headers, code, message, examples, dataType, baseType, containerType, hasHeaders,
8586
isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isDecimal, isByteArray, isBoolean, isDate,
8687
isDateTime, isUuid, isEmail, isModel, isFreeFormObject, isAnyType, isDefault, simpleType, primitiveType,
8788
isMap, isArray, isBinary, isFile, schema, jsonSchema, vendorExtensions, items, additionalProperties,
88-
vars, requiredVars, isNull,
89+
vars, requiredVars, isNull, hasValidation,
8990
getMaxProperties(), getMinProperties(), uniqueItems, getMaxItems(), getMinItems(), getMaxLength(),
9091
getMinLength(), exclusiveMinimum, exclusiveMaximum, getMinimum(), getMaximum(), getPattern(),
9192
is1xx, is2xx, is3xx, is4xx, is5xx);
@@ -124,6 +125,7 @@ public boolean equals(Object o) {
124125
items == that.items &&
125126
additionalProperties == that.additionalProperties &&
126127
isNull == that.isNull &&
128+
hasValidation == that.hasValidation &&
127129
is1xx == that.is1xx &&
128130
is2xx == that.is2xx &&
129131
is3xx == that.is3xx &&
@@ -426,6 +428,7 @@ public String toString() {
426428
sb.append(", vars='").append(vars).append('\'');
427429
sb.append(", requiredVars='").append(requiredVars).append('\'');
428430
sb.append(", isNull='").append(isNull);
431+
sb.append(", hasValidation='").append(hasValidation);
429432
sb.append('}');
430433
return sb.toString();
431434
}
@@ -456,4 +459,10 @@ public boolean getIsNull() {
456459
public void setIsNull(boolean isNull) {
457460
this.isNull = isNull;
458461
}
462+
463+
@Override
464+
public boolean getHasValidation() { return hasValidation; }
465+
466+
@Override
467+
public void setHasValidation(boolean hasValidation) { this.hasValidation = hasValidation; }
459468
}

0 commit comments

Comments
 (0)