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

Java, eliminates almost all schema reflection #327

Merged
merged 35 commits into from
Dec 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
a70b60c
Adds JsonSchemaFactory
spacether Dec 8, 2023
1dbc1f6
Updates PathToSchemasMap
spacether Dec 8, 2023
472c26d
Updates VlidationMetadata validationRanEarlier
spacether Dec 8, 2023
e954410
Updates JsonSchema validate methods
spacether Dec 8, 2023
2c5d3dd
Updates getPathToSchemas
spacether Dec 8, 2023
850e43c
Updates BooleanJsonSchema
spacether Dec 8, 2023
9ca01b3
Updates DateJsonSchema
spacether Dec 8, 2023
d94c843
Updates DateTimeJsonSchema
spacether Dec 8, 2023
5434daf
Updates 3 validators
spacether Dec 8, 2023
f5abc1d
Updates not, oneOf, and items validators
spacether Dec 8, 2023
3a0270b
Updates properties validator
spacether Dec 8, 2023
54e3fdc
Updates decimal and double json schemas
spacether Dec 8, 2023
617b8b6
Updates Float and Int32 schemas
spacether Dec 8, 2023
86d9f05
Updates int64 and int json schema
spacether Dec 8, 2023
9d6b70a
Updates List and Map schemas
spacether Dec 8, 2023
496b1ed
Updates map and not json schema
spacether Dec 8, 2023
e4c8718
Updates null and number json schemas
spacether Dec 8, 2023
91182f5
Updates string and uuid schemas
spacether Dec 8, 2023
bd37ec7
Adds missing imports
spacether Dec 8, 2023
531c123
validate methods updated
spacether Dec 8, 2023
0378f46
Adds many needed schema fixes
spacether Dec 8, 2023
1232cbc
Adds parameterization to anytype classes
spacether Dec 8, 2023
b107326
Adds generics to schemas
spacether Dec 8, 2023
897cd5a
Fixes case where map schema does not have an output class
spacether Dec 8, 2023
a544965
Fixes one test file
spacether Dec 8, 2023
5e740eb
Fixes ref boolean schema test
spacether Dec 8, 2023
3b9a80d
Fixes anytypeschematest
spacether Dec 8, 2023
c8d9f01
Fixes the validator tests
spacether Dec 8, 2023
27ad5ef
Updates schema constructors
spacether Dec 8, 2023
f2442f5
Fixes java tests in 303 sample
spacether Dec 8, 2023
0773d72
Fixes ref boolean schema test
spacether Dec 8, 2023
ff8cb09
Fixes ArrayTypeSchemaTest
spacether Dec 8, 2023
5fc17b9
Fixes ObjectTypeSchemaTest
spacether Dec 8, 2023
810f84d
Adds super into schema constructors
spacether Dec 8, 2023
40504f5
Fixes java tests
spacether Dec 8, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ src/main/java/org/openapijsonschematools/client/schemas/validation/FrozenList.ja
src/main/java/org/openapijsonschematools/client/schemas/validation/FrozenMap.java
src/main/java/org/openapijsonschematools/client/schemas/validation/ItemsValidator.java
src/main/java/org/openapijsonschematools/client/schemas/validation/JsonSchema.java
src/main/java/org/openapijsonschematools/client/schemas/validation/JsonSchemaFactory.java
src/main/java/org/openapijsonschematools/client/schemas/validation/KeywordEntry.java
src/main/java/org/openapijsonschematools/client/schemas/validation/KeywordValidator.java
src/main/java/org/openapijsonschematools/client/schemas/validation/LengthValidator.java
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@
import org.openapijsonschematools.client.schemas.AnyTypeJsonSchema;
import org.openapijsonschematools.client.schemas.BooleanJsonSchema;
import org.openapijsonschematools.client.schemas.validation.AdditionalPropertiesValidator;
import org.openapijsonschematools.client.schemas.validation.FrozenList;
import org.openapijsonschematools.client.schemas.validation.FrozenMap;
import org.openapijsonschematools.client.schemas.validation.JsonSchema;
import org.openapijsonschematools.client.schemas.validation.JsonSchemaFactory;
import org.openapijsonschematools.client.schemas.validation.KeywordEntry;
import org.openapijsonschematools.client.schemas.validation.KeywordValidator;
import org.openapijsonschematools.client.schemas.validation.PropertiesValidator;
Expand Down Expand Up @@ -38,7 +40,7 @@ public static class AdditionalpropertiesAllowsASchemaWhichShouldValidateMap exte
"bar"
);
public static AdditionalpropertiesAllowsASchemaWhichShouldValidateMap of(Map<String, Object> arg, SchemaConfiguration configuration) throws ValidationException {
return AdditionalpropertiesAllowsASchemaWhichShouldValidate1.validate(arg, configuration);
return JsonSchemaFactory.getInstance(AdditionalpropertiesAllowsASchemaWhichShouldValidate1.class).validate(arg, configuration);
}

public Object foo() {
Expand All @@ -63,27 +65,30 @@ public class AdditionalpropertiesAllowsASchemaWhichShouldValidateMapInput {
}


public static class AdditionalpropertiesAllowsASchemaWhichShouldValidate1 extends JsonSchema {
public static class AdditionalpropertiesAllowsASchemaWhichShouldValidate1 extends JsonSchema<AdditionalpropertiesAllowsASchemaWhichShouldValidateMap, FrozenList> {
/*
NOTE: This class is auto generated by OpenAPI JSON Schema Generator.
Ref: https://github.com/openapi-json-schema-tools/openapi-json-schema-generator

Do not edit the class manually.
*/
public static final LinkedHashMap<String, KeywordValidator> keywordToValidator = new LinkedHashMap<>(Map.ofEntries(
new KeywordEntry("type", new TypeValidator(Set.of(FrozenMap.class))),
new KeywordEntry("properties", new PropertiesValidator(Map.ofEntries(
new PropertyEntry("foo", Foo.class),
new PropertyEntry("bar", Bar.class)
))),
new KeywordEntry("additionalProperties", new AdditionalPropertiesValidator(AdditionalProperties.class))
));
public AdditionalpropertiesAllowsASchemaWhichShouldValidate1() {
super(new LinkedHashMap<>(Map.ofEntries(
new KeywordEntry("type", new TypeValidator(Set.of(FrozenMap.class))),
new KeywordEntry("properties", new PropertiesValidator(Map.ofEntries(
new PropertyEntry("foo", Foo.class),
new PropertyEntry("bar", Bar.class)
))),
new KeywordEntry("additionalProperties", new AdditionalPropertiesValidator(AdditionalProperties.class))
)));
}

protected static AdditionalpropertiesAllowsASchemaWhichShouldValidateMap getMapOutputInstance(FrozenMap<String, Object> arg) {
return new AdditionalpropertiesAllowsASchemaWhichShouldValidateMap(arg);
@Override
protected AdditionalpropertiesAllowsASchemaWhichShouldValidateMap getMapOutputInstance(FrozenMap<?, ?> arg) {
return new AdditionalpropertiesAllowsASchemaWhichShouldValidateMap((FrozenMap<String, Object>) arg);
}
public static AdditionalpropertiesAllowsASchemaWhichShouldValidateMap validate(Map<String, Object> arg, SchemaConfiguration configuration) throws ValidationException {
return JsonSchema.validateMap(AdditionalpropertiesAllowsASchemaWhichShouldValidate1.class, arg, configuration);
public AdditionalpropertiesAllowsASchemaWhichShouldValidateMap validate(Map<String, Object> arg, SchemaConfiguration configuration) throws ValidationException {
return validateMap(arg, configuration);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import org.openapijsonschematools.client.schemas.validation.FrozenList;
import org.openapijsonschematools.client.schemas.validation.FrozenMap;
import org.openapijsonschematools.client.schemas.validation.JsonSchema;
import org.openapijsonschematools.client.schemas.validation.JsonSchemaFactory;
import org.openapijsonschematools.client.schemas.validation.KeywordEntry;
import org.openapijsonschematools.client.schemas.validation.KeywordValidator;
import org.openapijsonschematools.client.schemas.validation.PropertiesValidator;
Expand All @@ -37,7 +38,7 @@ public static class AdditionalpropertiesAreAllowedByDefaultMap extends FrozenMap
"bar"
);
public static AdditionalpropertiesAreAllowedByDefaultMap of(Map<String, Object> arg, SchemaConfiguration configuration) throws ValidationException {
return AdditionalpropertiesAreAllowedByDefault1.validate(arg, configuration);
return JsonSchemaFactory.getInstance(AdditionalpropertiesAreAllowedByDefault1.class).validate(arg, configuration);
}

public Object foo() {
Expand All @@ -63,68 +64,71 @@ public class AdditionalpropertiesAreAllowedByDefaultMapInput {
}


public static class AdditionalpropertiesAreAllowedByDefault1 extends JsonSchema {
public static class AdditionalpropertiesAreAllowedByDefault1 extends JsonSchema<AdditionalpropertiesAreAllowedByDefaultMap, FrozenList> {
/*
NOTE: This class is auto generated by OpenAPI JSON Schema Generator.
Ref: https://github.com/openapi-json-schema-tools/openapi-json-schema-generator

Do not edit the class manually.
*/
public static final LinkedHashMap<String, KeywordValidator> keywordToValidator = new LinkedHashMap<>(Map.ofEntries(
new KeywordEntry("properties", new PropertiesValidator(Map.ofEntries(
new PropertyEntry("foo", Foo.class),
new PropertyEntry("bar", Bar.class)
)))
));
public AdditionalpropertiesAreAllowedByDefault1() {
super(new LinkedHashMap<>(Map.ofEntries(
new KeywordEntry("properties", new PropertiesValidator(Map.ofEntries(
new PropertyEntry("foo", Foo.class),
new PropertyEntry("bar", Bar.class)
)))
)));
}

protected static AdditionalpropertiesAreAllowedByDefaultMap getMapOutputInstance(FrozenMap<String, Object> arg) {
return new AdditionalpropertiesAreAllowedByDefaultMap(arg);
@Override
protected AdditionalpropertiesAreAllowedByDefaultMap getMapOutputInstance(FrozenMap<?, ?> arg) {
return new AdditionalpropertiesAreAllowedByDefaultMap((FrozenMap<String, Object>) arg);
}
public static Void validate(Void arg, SchemaConfiguration configuration) throws ValidationException {
return JsonSchema.validateVoid(AdditionalpropertiesAreAllowedByDefault1.class, arg, configuration);
public Void validate(Void arg, SchemaConfiguration configuration) throws ValidationException {
return validateVoid(arg, configuration);
}

public static boolean validate(boolean arg, SchemaConfiguration configuration) throws ValidationException {
return JsonSchema.validateBoolean(AdditionalpropertiesAreAllowedByDefault1.class, arg, configuration);
public boolean validate(boolean arg, SchemaConfiguration configuration) throws ValidationException {
return validateBoolean(arg, configuration);
}

public static int validate(int arg, SchemaConfiguration configuration) throws ValidationException {
return JsonSchema.validateInt(AdditionalpropertiesAreAllowedByDefault1.class, arg, configuration);
public int validate(int arg, SchemaConfiguration configuration) throws ValidationException {
return validateInt(arg, configuration);
}

public static long validate(long arg, SchemaConfiguration configuration) throws ValidationException {
return JsonSchema.validateLong(AdditionalpropertiesAreAllowedByDefault1.class, arg, configuration);
public long validate(long arg, SchemaConfiguration configuration) throws ValidationException {
return validateLong(arg, configuration);
}

public static float validate(float arg, SchemaConfiguration configuration) throws ValidationException {
return JsonSchema.validateFloat(AdditionalpropertiesAreAllowedByDefault1.class, arg, configuration);
public float validate(float arg, SchemaConfiguration configuration) throws ValidationException {
return validateFloat(arg, configuration);
}

public static double validate(double arg, SchemaConfiguration configuration) throws ValidationException {
return JsonSchema.validateDouble(AdditionalpropertiesAreAllowedByDefault1.class, arg, configuration);
public double validate(double arg, SchemaConfiguration configuration) throws ValidationException {
return validateDouble(arg, configuration);
}

public static String validate(String arg, SchemaConfiguration configuration) throws ValidationException {
return JsonSchema.validateString(AdditionalpropertiesAreAllowedByDefault1.class, arg, configuration);
public String validate(String arg, SchemaConfiguration configuration) throws ValidationException {
return validateString(arg, configuration);
}

public static String validate(ZonedDateTime arg, SchemaConfiguration configuration) throws ValidationException {
return JsonSchema.validateZonedDateTime(AdditionalpropertiesAreAllowedByDefault1.class, arg, configuration);
public String validate(ZonedDateTime arg, SchemaConfiguration configuration) throws ValidationException {
return validateZonedDateTime(arg, configuration);
}

public static String validate(LocalDate arg, SchemaConfiguration configuration) throws ValidationException {
return JsonSchema.validateLocalDate(AdditionalpropertiesAreAllowedByDefault1.class, arg, configuration);
public String validate(LocalDate arg, SchemaConfiguration configuration) throws ValidationException {
return validateLocalDate(arg, configuration);
}

public static String validate(UUID arg, SchemaConfiguration configuration) throws ValidationException {
return JsonSchema.validateUUID(AdditionalpropertiesAreAllowedByDefault1.class, arg, configuration);
public String validate(UUID arg, SchemaConfiguration configuration) throws ValidationException {
return validateUUID(arg, configuration);
}

public static AdditionalpropertiesAreAllowedByDefaultMap validate(Map<String, Object> arg, SchemaConfiguration configuration) throws ValidationException {
return JsonSchema.validateMap(AdditionalpropertiesAreAllowedByDefault1.class, arg, configuration);
public AdditionalpropertiesAreAllowedByDefaultMap validate(Map<String, Object> arg, SchemaConfiguration configuration) throws ValidationException {
return validateMap(arg, configuration);
}

public static FrozenList<Object> validate(List<Object> arg, SchemaConfiguration configuration) throws ValidationException {
return JsonSchema.validateList(AdditionalpropertiesAreAllowedByDefault1.class, arg, configuration);
public FrozenList<Object> validate(List<Object> arg, SchemaConfiguration configuration) throws ValidationException {
return validateList(arg, configuration);
}
}}
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
import org.openapijsonschematools.client.exceptions.ValidationException;
import org.openapijsonschematools.client.schemas.BooleanJsonSchema;
import org.openapijsonschematools.client.schemas.validation.AdditionalPropertiesValidator;
import org.openapijsonschematools.client.schemas.validation.FrozenList;
import org.openapijsonschematools.client.schemas.validation.FrozenMap;
import org.openapijsonschematools.client.schemas.validation.JsonSchema;
import org.openapijsonschematools.client.schemas.validation.JsonSchemaFactory;
import org.openapijsonschematools.client.schemas.validation.KeywordEntry;
import org.openapijsonschematools.client.schemas.validation.KeywordValidator;
import org.openapijsonschematools.client.schemas.validation.TypeValidator;
Expand All @@ -26,7 +28,7 @@ public static class AdditionalpropertiesCanExistByItselfMap extends FrozenMap<St
public static final Set<String> requiredKeys = Set.of();
public static final Set<String> optionalKeys = Set.of();
public static AdditionalpropertiesCanExistByItselfMap of(Map<String, Boolean> arg, SchemaConfiguration configuration) throws ValidationException {
return AdditionalpropertiesCanExistByItself1.validate(arg, configuration);
return JsonSchemaFactory.getInstance(AdditionalpropertiesCanExistByItself1.class).validate(arg, configuration);
}

public boolean getAdditionalProperty(String name) {
Expand All @@ -39,23 +41,26 @@ public class AdditionalpropertiesCanExistByItselfMapInput {
}


public static class AdditionalpropertiesCanExistByItself1 extends JsonSchema {
public static class AdditionalpropertiesCanExistByItself1 extends JsonSchema<AdditionalpropertiesCanExistByItselfMap, FrozenList> {
/*
NOTE: This class is auto generated by OpenAPI JSON Schema Generator.
Ref: https://github.com/openapi-json-schema-tools/openapi-json-schema-generator

Do not edit the class manually.
*/
public static final LinkedHashMap<String, KeywordValidator> keywordToValidator = new LinkedHashMap<>(Map.ofEntries(
new KeywordEntry("type", new TypeValidator(Set.of(FrozenMap.class))),
new KeywordEntry("additionalProperties", new AdditionalPropertiesValidator(AdditionalProperties.class))
));
public AdditionalpropertiesCanExistByItself1() {
super(new LinkedHashMap<>(Map.ofEntries(
new KeywordEntry("type", new TypeValidator(Set.of(FrozenMap.class))),
new KeywordEntry("additionalProperties", new AdditionalPropertiesValidator(AdditionalProperties.class))
)));
}

protected static AdditionalpropertiesCanExistByItselfMap getMapOutputInstance(FrozenMap<String, Boolean> arg) {
return new AdditionalpropertiesCanExistByItselfMap(arg);
@Override
protected AdditionalpropertiesCanExistByItselfMap getMapOutputInstance(FrozenMap<?, ?> arg) {
return new AdditionalpropertiesCanExistByItselfMap((FrozenMap<String, Boolean>) arg);
}
public static AdditionalpropertiesCanExistByItselfMap validate(Map<String, Boolean> arg, SchemaConfiguration configuration) throws ValidationException {
return JsonSchema.validateMap(AdditionalpropertiesCanExistByItself1.class, arg, configuration);
public AdditionalpropertiesCanExistByItselfMap validate(Map<String, Boolean> arg, SchemaConfiguration configuration) throws ValidationException {
return validateMap(arg, configuration);
}
}
}
Loading