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

Commit 2df8285

Browse files
committed
Removes JsonSchemaFactory
1 parent f42deb1 commit 2df8285

30 files changed

Lines changed: 64 additions & 74 deletions

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,6 @@ src/main/java/org/openapijsonschematools/client/schemas/validation/FrozenList.ja
214214
src/main/java/org/openapijsonschematools/client/schemas/validation/FrozenMap.java
215215
src/main/java/org/openapijsonschematools/client/schemas/validation/ItemsValidator.java
216216
src/main/java/org/openapijsonschematools/client/schemas/validation/JsonSchema.java
217-
src/main/java/org/openapijsonschematools/client/schemas/validation/JsonSchemaFactory.java
218217
src/main/java/org/openapijsonschematools/client/schemas/validation/JsonSchemaInfo.java
219218
src/main/java/org/openapijsonschematools/client/schemas/validation/KeywordEntry.java
220219
src/main/java/org/openapijsonschematools/client/schemas/validation/KeywordValidator.java

samples/client/3_0_3_unit_test/java/src/main/java/org/openapijsonschematools/client/schemas/validation/AdditionalPropertiesValidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetada
4141
validationMetadata.validatedPathToSchemas(),
4242
validationMetadata.seenClasses()
4343
);
44-
JsonSchema addPropsSchema = JsonSchemaFactory.getInstance(additionalProperties);
44+
JsonSchema addPropsSchema = JsonSchema.getInstance(additionalProperties);
4545
if (propValidationMetadata.validationRanEarlier(addPropsSchema)) {
4646
// todo add_deeper_validated_schemas
4747
continue;

samples/client/3_0_3_unit_test/java/src/main/java/org/openapijsonschematools/client/schemas/validation/AllOfValidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public Object getConstraint() {
1818
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
1919
PathToSchemasMap pathToSchemas = new PathToSchemasMap();
2020
for(Class<? extends JsonSchema> allOfClass: allOf) {
21-
JsonSchema allOfSchema = JsonSchemaFactory.getInstance(allOfClass);
21+
JsonSchema allOfSchema = JsonSchema.getInstance(allOfClass);
2222
PathToSchemasMap otherPathToSchemas = JsonSchema.validate(allOfSchema, arg, validationMetadata);
2323
pathToSchemas.update(otherPathToSchemas);
2424
}

samples/client/3_0_3_unit_test/java/src/main/java/org/openapijsonschematools/client/schemas/validation/AnyOfValidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetada
3131
continue;
3232
}
3333
try {
34-
JsonSchema anyOfSchema = JsonSchemaFactory.getInstance(anyOfClass);
34+
JsonSchema anyOfSchema = JsonSchema.getInstance(anyOfClass);
3535
PathToSchemasMap otherPathToSchemas = JsonSchema.validate(anyOfSchema, arg, validationMetadata);
3636
validatedAnyOfClasses.add(anyOfClass);
3737
pathToSchemas.update(otherPathToSchemas);

samples/client/3_0_3_unit_test/java/src/main/java/org/openapijsonschematools/client/schemas/validation/FrozenList.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,4 @@ public int size() {
2727
return list.size();
2828
}
2929
}
30+

samples/client/3_0_3_unit_test/java/src/main/java/org/openapijsonschematools/client/schemas/validation/FrozenMap.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,4 @@ public Set<Entry<String, V>> entrySet() {
3838
return map.entrySet();
3939
}
4040
}
41+

samples/client/3_0_3_unit_test/java/src/main/java/org/openapijsonschematools/client/schemas/validation/ItemsValidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetada
3333
validationMetadata.validatedPathToSchemas(),
3434
validationMetadata.seenClasses()
3535
);
36-
JsonSchema itemsSchema = JsonSchemaFactory.getInstance(items);
36+
JsonSchema itemsSchema = JsonSchema.getInstance(items);
3737
if (itemValidationMetadata.validationRanEarlier(itemsSchema)) {
3838
// todo add_deeper_validated_schemas
3939
i +=1;

samples/client/3_0_3_unit_test/java/src/main/java/org/openapijsonschematools/client/schemas/validation/JsonSchema.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@
33
import org.openapijsonschematools.client.exceptions.ValidationException;
44
import org.openapijsonschematools.client.exceptions.InvalidTypeException;
55

6+
import java.lang.reflect.Constructor;
7+
import java.lang.reflect.InvocationTargetException;
68
import java.math.BigDecimal;
79
import java.time.LocalDate;
810
import java.time.ZonedDateTime;
911
import java.util.ArrayList;
12+
import java.util.HashMap;
1013
import java.util.LinkedHashMap;
1114
import java.util.LinkedHashSet;
1215
import java.util.List;
@@ -41,6 +44,23 @@ public abstract class JsonSchema {
4144
public final Set<Object> enumValues;
4245
public final Pattern pattern;
4346
private final LinkedHashMap<String, KeywordValidator> keywordToValidator;
47+
private static final Map<Class<? extends JsonSchema>, JsonSchema> classToInstance = new HashMap();
48+
public static final synchronized <V extends JsonSchema> V getInstance(Class<V> schemaCls) {
49+
if (classToInstance.containsKey(schemaCls)) {
50+
JsonSchema inst = classToInstance.get(schemaCls);
51+
assert schemaCls.isInstance(inst);
52+
return schemaCls.cast(inst);
53+
}
54+
try {
55+
Constructor<V> constructor = schemaCls.getDeclaredConstructor();
56+
constructor.setAccessible(true);
57+
V inst = constructor.newInstance();
58+
classToInstance.put(schemaCls, inst);
59+
return inst;
60+
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException | InstantiationException e) {
61+
throw new RuntimeException(e);
62+
}
63+
}
4464

4565
protected JsonSchema(JsonSchemaInfo jsonSchemaInfo) {
4666
LinkedHashMap<String, KeywordValidator> keywordToValidator = new LinkedHashMap<>();

samples/client/3_0_3_unit_test/java/src/main/java/org/openapijsonschematools/client/schemas/validation/JsonSchemaFactory.java

Lines changed: 0 additions & 25 deletions
This file was deleted.

samples/client/3_0_3_unit_test/java/src/main/java/org/openapijsonschematools/client/schemas/validation/NotValidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public Object getConstraint() {
2525
public PathToSchemasMap validate(JsonSchema schema, Object arg, ValidationMetadata validationMetadata) {
2626
PathToSchemasMap pathToSchemas;
2727
try {
28-
JsonSchema notSchema = JsonSchemaFactory.getInstance(not);
28+
JsonSchema notSchema = JsonSchema.getInstance(not);
2929
pathToSchemas = JsonSchema.validate(notSchema, arg, validationMetadata);
3030
} catch (ValidationException e) {
3131
return null;

0 commit comments

Comments
 (0)