Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.

Commit 86a195a

Browse files
authored
Java, improves validation (#294)
* Fixes two warnings in jsonschema class * Updates all the validators to take sonstruction arguments * Fixes validator tests, updates some json schema classes * Fixes JsonSchema tests except for array and number * Fixes arraytype tests * Fixes object type tests * Adds new needed imports * Adds type info * Adds comma after type * Adds comma in items template * Adds format info * Adds missing format validator for number and integer * Adds properties * Fixes close parens in keyword validators * Adds additional properties validator * Changes schema name, adds missing import * Samples regen * Removes test file * Fixes python test * python, adds missing file, fixes java tests
1 parent 83dc145 commit 86a195a

311 files changed

Lines changed: 4060 additions & 2649 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

samples/client/3_0_3_unit_test/python/.openapi-generator/FILES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -770,6 +770,7 @@ src/unit_test_api/components/schema/uniqueitems_validation.py
770770
src/unit_test_api/components/schema/uri_format.py
771771
src/unit_test_api/components/schema/uri_reference_format.py
772772
src/unit_test_api/components/schema/uri_template_format.py
773+
src/unit_test_api/components/schemas/__init__.py
773774
src/unit_test_api/configurations/__init__.py
774775
src/unit_test_api/configurations/api_configuration.py
775776
src/unit_test_api/configurations/schema_configuration.py

samples/client/3_1_0_unit_test/python/.openapi-generator/FILES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1244,6 +1244,7 @@ src/unit_test_api/components/schema/uri_reference_format.py
12441244
src/unit_test_api/components/schema/uri_template_format.py
12451245
src/unit_test_api/components/schema/uuid_format.py
12461246
src/unit_test_api/components/schema/validate_against_correct_branch_then_vs_else.py
1247+
src/unit_test_api/components/schemas/__init__.py
12471248
src/unit_test_api/configurations/__init__.py
12481249
src/unit_test_api/configurations/api_configuration.py
12491250
src/unit_test_api/configurations/schema_configuration.py

samples/client/3_1_0_unit_test/python/src/unit_test_api/components/schemas/__init__.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,19 @@
5252
from unit_test_api.components.schema.enum_with_false_does_not_match0 import EnumWithFalseDoesNotMatch0
5353
from unit_test_api.components.schema.enum_with_true_does_not_match1 import EnumWithTrueDoesNotMatch1
5454
from unit_test_api.components.schema.enums_in_properties import EnumsInProperties
55+
from unit_test_api.components.schema.exclusivemaximum_validation import ExclusivemaximumValidation
56+
from unit_test_api.components.schema.exclusiveminimum_validation import ExclusiveminimumValidation
5557
from unit_test_api.components.schema.float_division_inf import FloatDivisionInf
5658
from unit_test_api.components.schema.forbidden_property import ForbiddenProperty
5759
from unit_test_api.components.schema.hostname_format import HostnameFormat
5860
from unit_test_api.components.schema.idn_email_format import IdnEmailFormat
5961
from unit_test_api.components.schema.idn_hostname_format import IdnHostnameFormat
62+
from unit_test_api.components.schema.if_and_else_without_then import IfAndElseWithoutThen
63+
from unit_test_api.components.schema.if_and_then_without_else import IfAndThenWithoutElse
64+
from unit_test_api.components.schema.if_appears_at_the_end_when_serialized_keyword_processing_sequence import IfAppearsAtTheEndWhenSerializedKeywordProcessingSequence
65+
from unit_test_api.components.schema.ignore_else_without_if import IgnoreElseWithoutIf
66+
from unit_test_api.components.schema.ignore_if_without_then_or_else import IgnoreIfWithoutThenOrElse
67+
from unit_test_api.components.schema.ignore_then_without_if import IgnoreThenWithoutIf
6068
from unit_test_api.components.schema.integer_type_matches_integers import IntegerTypeMatchesIntegers
6169
from unit_test_api.components.schema.ipv4_format import Ipv4Format
6270
from unit_test_api.components.schema.ipv6_format import Ipv6Format
@@ -87,6 +95,7 @@
8795
from unit_test_api.components.schema.nested_items import NestedItems
8896
from unit_test_api.components.schema.nested_oneof_to_check_validation_semantics import NestedOneofToCheckValidationSemantics
8997
from unit_test_api.components.schema.non_ascii_pattern_with_additionalproperties import NonAsciiPatternWithAdditionalproperties
98+
from unit_test_api.components.schema.non_interference_across_combined_schemas import NonInterferenceAcrossCombinedSchemas
9099
from unit_test_api.components.schema._not import _Not
91100
from unit_test_api.components.schema.not_more_complex_schema import NotMoreComplexSchema
92101
from unit_test_api.components.schema.not_multiple_types import NotMultipleTypes
@@ -144,3 +153,4 @@
144153
from unit_test_api.components.schema.uri_reference_format import UriReferenceFormat
145154
from unit_test_api.components.schema.uri_template_format import UriTemplateFormat
146155
from unit_test_api.components.schema.uuid_format import UuidFormat
156+
from unit_test_api.components.schema.validate_against_correct_branch_then_vs_else import ValidateAgainstCorrectBranchThenVsElse

samples/client/openapi_features/nonCompliantUseDiscriminatorIfCompositionFails/python/.openapi-generator/FILES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ src/this_package/components/schema/__init__.py
2929
src/this_package/components/schema/addition_operator.py
3030
src/this_package/components/schema/operator.py
3131
src/this_package/components/schema/subtraction_operator.py
32+
src/this_package/components/schemas/__init__.py
3233
src/this_package/configurations/__init__.py
3334
src/this_package/configurations/api_configuration.py
3435
src/this_package/configurations/schema_configuration.py

samples/client/openapi_features/security/python/.openapi-generator/FILES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ src/this_package/apis/paths/path_with_two_explicit_security.py
2929
src/this_package/apis/tag_to_api.py
3030
src/this_package/apis/tags/__init__.py
3131
src/this_package/apis/tags/default_api.py
32+
src/this_package/components/schemas/__init__.py
3233
src/this_package/components/security_schemes/__init__.py
3334
src/this_package/components/security_schemes/security_scheme_api_key.py
3435
src/this_package/components/security_schemes/security_scheme_bearer_test.py

samples/client/petstore/java/.openapi-generator/FILES

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ src/main/java/org/openapijsonschematools/components/responses/successwithjsonapi
2323
src/main/java/org/openapijsonschematools/components/responses/successwithjsonapiresponse/content/applicationjson/Schema.java
2424
src/main/java/org/openapijsonschematools/components/schemas/AbstractStepMessage.java
2525
src/main/java/org/openapijsonschematools/components/schemas/AdditionalPropertiesClass.java
26-
src/main/java/org/openapijsonschematools/components/schemas/AdditionalPropertiesValidator.java
26+
src/main/java/org/openapijsonschematools/components/schemas/AdditionalPropertiesSchema.java
2727
src/main/java/org/openapijsonschematools/components/schemas/AdditionalPropertiesWithArrayOfEnums.java
2828
src/main/java/org/openapijsonschematools/components/schemas/Address.java
2929
src/main/java/org/openapijsonschematools/components/schemas/Animal.java
@@ -366,9 +366,11 @@ src/main/java/org/openapijsonschematools/schemas/validation/FrozenList.java
366366
src/main/java/org/openapijsonschematools/schemas/validation/FrozenMap.java
367367
src/main/java/org/openapijsonschematools/schemas/validation/ItemsValidator.java
368368
src/main/java/org/openapijsonschematools/schemas/validation/JsonSchema.java
369+
src/main/java/org/openapijsonschematools/schemas/validation/KeywordEntry.java
369370
src/main/java/org/openapijsonschematools/schemas/validation/KeywordValidator.java
370371
src/main/java/org/openapijsonschematools/schemas/validation/PathToSchemasMap.java
371372
src/main/java/org/openapijsonschematools/schemas/validation/PropertiesValidator.java
373+
src/main/java/org/openapijsonschematools/schemas/validation/PropertyEntry.java
372374
src/main/java/org/openapijsonschematools/schemas/validation/RequiredValidator.java
373375
src/main/java/org/openapijsonschematools/schemas/validation/TypeValidator.java
374376
src/main/java/org/openapijsonschematools/schemas/validation/UnsetAnyTypeJsonSchema.java

samples/client/petstore/java/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ All URIs are relative to the selected server
225225
| [Schema200Response1](docs/Model200Response.md) | model with an invalid class name for python, starts with a number |
226226
| [AbstractStepMessage1](docs/AbstractStepMessage.md) | Abstract Step |
227227
| [AdditionalPropertiesClass1](docs/AdditionalPropertiesClass.md) | |
228-
| [AdditionalPropertiesValidator1](docs/AdditionalPropertiesValidator.md) | |
228+
| [AdditionalPropertiesSchema1](docs/AdditionalPropertiesSchema.md) | |
229229
| [AdditionalPropertiesWithArrayOfEnums1](docs/AdditionalPropertiesWithArrayOfEnums.md) | |
230230
| [Address1](docs/Address.md) | |
231231
| [Animal1](docs/Animal.md) | |

samples/client/petstore/java/src/main/java/org/openapijsonschematools/components/requestbodies/userarray/content/applicationjson/Schema.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
package org.openapijsonschematools.components.requestbodies.userarray.content.applicationjson;
2-
import java.util.LinkedHashSet;
2+
import java.util.LinkedHashMap;
33
import java.util.List;
4+
import java.util.Map;
45
import java.util.Set;
56
import org.openapijsonschematools.components.schemas.User;
67
import org.openapijsonschematools.configurations.SchemaConfiguration;
78
import org.openapijsonschematools.schemas.validation.FrozenList;
9+
import org.openapijsonschematools.schemas.validation.ItemsValidator;
810
import org.openapijsonschematools.schemas.validation.JsonSchema;
11+
import org.openapijsonschematools.schemas.validation.KeywordEntry;
12+
import org.openapijsonschematools.schemas.validation.KeywordValidator;
13+
import org.openapijsonschematools.schemas.validation.TypeValidator;
914

1015
public class Schema {
1116
// nest classes so all schemas and input/output classes can be public
@@ -18,10 +23,10 @@ public static class SchemaList extends FrozenList<Object> {
1823
}
1924

2025
public class Schema1 extends JsonSchema {
21-
public static final LinkedHashSet<Class<?>> type = new LinkedHashSet<>(Set.of(
22-
FrozenList.class
26+
public static final LinkedHashMap<String, KeywordValidator> keywordToValidator = new LinkedHashMap<>(Map.ofEntries(
27+
new KeywordEntry("type", new TypeValidator(Set.of(FrozenList.class))),
28+
new KeywordEntry("items", new ItemsValidator(User.User1.class))
2329
));
24-
public static final Class<?> items = User.User1.class;
2530
protected static SchemaList getListOutputInstance(FrozenList<Object> arg) {
2631
return new SchemaList(arg);
2732
}

samples/client/petstore/java/src/main/java/org/openapijsonschematools/components/responses/headerswithnobody/Headers.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
package org.openapijsonschematools.components.responses.headerswithnobody;
2-
import java.util.AbstractMap;
32
import java.util.LinkedHashMap;
4-
import java.util.LinkedHashSet;
53
import java.util.Map;
64
import java.util.Set;
75
import org.openapijsonschematools.components.responses.headerswithnobody.headers.location.LocationSchema;
86
import org.openapijsonschematools.configurations.SchemaConfiguration;
97
import org.openapijsonschematools.schemas.AnyTypeJsonSchema;
108
import org.openapijsonschematools.schemas.NotAnyTypeJsonSchema;
9+
import org.openapijsonschematools.schemas.validation.AdditionalPropertiesValidator;
1110
import org.openapijsonschematools.schemas.validation.FrozenMap;
1211
import org.openapijsonschematools.schemas.validation.JsonSchema;
12+
import org.openapijsonschematools.schemas.validation.KeywordEntry;
13+
import org.openapijsonschematools.schemas.validation.KeywordValidator;
14+
import org.openapijsonschematools.schemas.validation.PropertiesValidator;
15+
import org.openapijsonschematools.schemas.validation.PropertyEntry;
16+
import org.openapijsonschematools.schemas.validation.TypeValidator;
1317

1418
public class Headers {
1519
// nest classes so all schemas and input/output classes can be public
@@ -29,13 +33,13 @@ public static HeadersMap of(Map<String, Object> arg, SchemaConfiguration configu
2933
}
3034

3135
public class Headers1 extends JsonSchema {
32-
public static final LinkedHashSet<Class<?>> type = new LinkedHashSet<>(Set.of(
33-
FrozenMap.class
36+
public static final LinkedHashMap<String, KeywordValidator> keywordToValidator = new LinkedHashMap<>(Map.ofEntries(
37+
new KeywordEntry("type", new TypeValidator(Set.of(FrozenMap.class))),
38+
new KeywordEntry("properties", new PropertiesValidator(Map.ofEntries(
39+
new PropertyEntry("location", LocationSchema.LocationSchema1.class)
40+
))),
41+
new KeywordEntry("additionalProperties", new AdditionalPropertiesValidator(AdditionalProperties.class))
3442
));
35-
public static final LinkedHashMap<String, Class<?>> properties = new LinkedHashMap<>(Map.ofEntries(
36-
new AbstractMap.SimpleEntry<String, Class<?>>("location", LocationSchema.LocationSchema1.class)
37-
));
38-
static final Class<?> additionalProperties = AdditionalProperties.class;
3943
protected static HeadersMap getMapOutputInstance(FrozenMap<? extends String, ?> arg) {
4044
return new HeadersMap(arg);
4145
}

samples/client/petstore/java/src/main/java/org/openapijsonschematools/components/responses/successfulxmlandjsonarrayofpet/content/applicationjson/Schema.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
package org.openapijsonschematools.components.responses.successfulxmlandjsonarrayofpet.content.applicationjson;
2-
import java.util.LinkedHashSet;
2+
import java.util.LinkedHashMap;
33
import java.util.List;
4+
import java.util.Map;
45
import java.util.Set;
56
import org.openapijsonschematools.components.schemas.Pet;
67
import org.openapijsonschematools.components.schemas.RefPet;
78
import org.openapijsonschematools.configurations.SchemaConfiguration;
89
import org.openapijsonschematools.schemas.validation.FrozenList;
10+
import org.openapijsonschematools.schemas.validation.ItemsValidator;
911
import org.openapijsonschematools.schemas.validation.JsonSchema;
12+
import org.openapijsonschematools.schemas.validation.KeywordEntry;
13+
import org.openapijsonschematools.schemas.validation.KeywordValidator;
14+
import org.openapijsonschematools.schemas.validation.TypeValidator;
1015

1116
public class Schema {
1217
// nest classes so all schemas and input/output classes can be public
@@ -19,10 +24,10 @@ public static class SchemaList extends FrozenList<Object> {
1924
}
2025

2126
public class Schema1 extends JsonSchema {
22-
public static final LinkedHashSet<Class<?>> type = new LinkedHashSet<>(Set.of(
23-
FrozenList.class
27+
public static final LinkedHashMap<String, KeywordValidator> keywordToValidator = new LinkedHashMap<>(Map.ofEntries(
28+
new KeywordEntry("type", new TypeValidator(Set.of(FrozenList.class))),
29+
new KeywordEntry("items", new ItemsValidator(RefPet.RefPet1.class))
2430
));
25-
public static final Class<?> items = RefPet.RefPet1.class;
2631
protected static SchemaList getListOutputInstance(FrozenList<Object> arg) {
2732
return new SchemaList(arg);
2833
}

0 commit comments

Comments
 (0)