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

Commit 881edf9

Browse files
authored
Java, improves ref schemas (#291)
* Adds ref handling in schema validation, adds test of ref boolean schema validation * Uses extension for simple refs * Separates all json schema classes into separate files * Fixes java tests * Extends existing jsonschema classes in var equals class
1 parent ae60db0 commit 881edf9

File tree

429 files changed

+8002
-3817
lines changed

Some content is hidden

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

429 files changed

+8002
-3817
lines changed

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

+19-1
Original file line numberDiff line numberDiff line change
@@ -341,14 +341,31 @@ src/main/java/org/openapijsonschematools/paths/userusername/get/responses/respon
341341
src/main/java/org/openapijsonschematools/paths/userusername/get/responses/response200/content/applicationxml/Schema.java
342342
src/main/java/org/openapijsonschematools/paths/userusername/put/PathParameters.java
343343
src/main/java/org/openapijsonschematools/paths/userusername/put/requestbody/content/applicationjson/Schema.java
344+
src/main/java/org/openapijsonschematools/schemas/AnyTypeJsonSchema.java
345+
src/main/java/org/openapijsonschematools/schemas/BooleanJsonSchema.java
344346
src/main/java/org/openapijsonschematools/schemas/CustomIsoparser.java
347+
src/main/java/org/openapijsonschematools/schemas/DateJsonSchema.java
348+
src/main/java/org/openapijsonschematools/schemas/DateTimeJsonSchema.java
349+
src/main/java/org/openapijsonschematools/schemas/DecimalJsonSchema.java
350+
src/main/java/org/openapijsonschematools/schemas/DoubleJsonSchema.java
351+
src/main/java/org/openapijsonschematools/schemas/FloatJsonSchema.java
345352
src/main/java/org/openapijsonschematools/schemas/FrozenList.java
346353
src/main/java/org/openapijsonschematools/schemas/FrozenMap.java
354+
src/main/java/org/openapijsonschematools/schemas/Int32JsonSchema.java
355+
src/main/java/org/openapijsonschematools/schemas/Int64JsonSchema.java
356+
src/main/java/org/openapijsonschematools/schemas/IntJsonSchema.java
347357
src/main/java/org/openapijsonschematools/schemas/JsonSchema.java
348-
src/main/java/org/openapijsonschematools/schemas/JsonSchemas.java
358+
src/main/java/org/openapijsonschematools/schemas/ListJsonSchema.java
359+
src/main/java/org/openapijsonschematools/schemas/MapJsonSchema.java
360+
src/main/java/org/openapijsonschematools/schemas/NotAnyTypeJsonSchema.java
361+
src/main/java/org/openapijsonschematools/schemas/NullJsonSchema.java
362+
src/main/java/org/openapijsonschematools/schemas/NumberJsonSchema.java
349363
src/main/java/org/openapijsonschematools/schemas/PathToSchemasMap.java
350364
src/main/java/org/openapijsonschematools/schemas/PathToTypeMap.java
351365
src/main/java/org/openapijsonschematools/schemas/SchemaValidator.java
366+
src/main/java/org/openapijsonschematools/schemas/StringJsonSchema.java
367+
src/main/java/org/openapijsonschematools/schemas/UnsetAnyTypeJsonSchema.java
368+
src/main/java/org/openapijsonschematools/schemas/UuidJsonSchema.java
352369
src/main/java/org/openapijsonschematools/schemas/ValidationMetadata.java
353370
src/main/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidator.java
354371
src/main/java/org/openapijsonschematools/schemas/validators/FakeValidator.java
@@ -368,6 +385,7 @@ src/test/java/org/openapijsonschematools/schemas/MapSchemaTest.java
368385
src/test/java/org/openapijsonschematools/schemas/NullSchemaTest.java
369386
src/test/java/org/openapijsonschematools/schemas/NumberSchemaTest.java
370387
src/test/java/org/openapijsonschematools/schemas/ObjectTypeSchemaTest.java
388+
src/test/java/org/openapijsonschematools/schemas/RefBooleanSchemaTest.java
371389
src/test/java/org/openapijsonschematools/schemas/SchemaValidatorTest.java
372390
src/test/java/org/openapijsonschematools/schemas/validators/AdditionalPropertiesValidatorTest.java
373391
src/test/java/org/openapijsonschematools/schemas/validators/FormatValidatorTest.java
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,26 @@
11
package org.openapijsonschematools.components.headers.int32jsoncontenttypeheader.content.applicationjson;
22
import org.openapijsonschematools.configurations.SchemaConfiguration;
3-
import org.openapijsonschematools.schemas.JsonSchema;
4-
import org.openapijsonschematools.schemas.JsonSchemas;
3+
import org.openapijsonschematools.schemas.AnyTypeJsonSchema;
4+
import org.openapijsonschematools.schemas.BooleanJsonSchema;
5+
import org.openapijsonschematools.schemas.DateJsonSchema;
6+
import org.openapijsonschematools.schemas.DateTimeJsonSchema;
7+
import org.openapijsonschematools.schemas.DecimalJsonSchema;
8+
import org.openapijsonschematools.schemas.DoubleJsonSchema;
9+
import org.openapijsonschematools.schemas.FloatJsonSchema;
510
import org.openapijsonschematools.schemas.FrozenList;
611
import org.openapijsonschematools.schemas.FrozenMap;
12+
import org.openapijsonschematools.schemas.Int32JsonSchema;
13+
import org.openapijsonschematools.schemas.Int64JsonSchema;
14+
import org.openapijsonschematools.schemas.IntJsonSchema;
15+
import org.openapijsonschematools.schemas.JsonSchema;
16+
import org.openapijsonschematools.schemas.ListJsonSchema;
17+
import org.openapijsonschematools.schemas.MapJsonSchema;
18+
import org.openapijsonschematools.schemas.NotAnyTypeJsonSchema;
19+
import org.openapijsonschematools.schemas.NullJsonSchema;
20+
import org.openapijsonschematools.schemas.NumberJsonSchema;
21+
import org.openapijsonschematools.schemas.StringJsonSchema;
22+
import org.openapijsonschematools.schemas.UnsetAnyTypeJsonSchema;
23+
import org.openapijsonschematools.schemas.UuidJsonSchema;
724

825
import java.time.LocalDate;
926
import java.time.ZonedDateTime;
@@ -18,13 +35,6 @@ public class Int32JsonContentTypeHeaderSchema {
1835
// nest classes so all schemas and input/output classes can be public
1936

2037

21-
public class Int32JsonContentTypeHeaderSchema1 implements JsonSchema {
22-
public static Integer validate(Integer arg, SchemaConfiguration configuration) {
23-
return JsonSchema.validate(JsonSchemas.Int32Schema.class, arg, configuration);
24-
}
25-
26-
public static Integer validate(Float arg, SchemaConfiguration configuration) {
27-
return JsonSchema.validate(JsonSchemas.Int32Schema.class, Integer.parseInt(arg.toString()), configuration);
28-
}
38+
public class Int32JsonContentTypeHeaderSchema1 extends Int32JsonSchema {
2939
}
3040
}

samples/client/petstore/java/src/main/java/org/openapijsonschematools/components/headers/numberheader/NumberHeaderSchema.java

+19-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,26 @@
11
package org.openapijsonschematools.components.headers.numberheader;
22
import org.openapijsonschematools.configurations.SchemaConfiguration;
3-
import org.openapijsonschematools.schemas.JsonSchema;
4-
import org.openapijsonschematools.schemas.JsonSchemas;
3+
import org.openapijsonschematools.schemas.AnyTypeJsonSchema;
4+
import org.openapijsonschematools.schemas.BooleanJsonSchema;
5+
import org.openapijsonschematools.schemas.DateJsonSchema;
6+
import org.openapijsonschematools.schemas.DateTimeJsonSchema;
7+
import org.openapijsonschematools.schemas.DecimalJsonSchema;
8+
import org.openapijsonschematools.schemas.DoubleJsonSchema;
9+
import org.openapijsonschematools.schemas.FloatJsonSchema;
510
import org.openapijsonschematools.schemas.FrozenList;
611
import org.openapijsonschematools.schemas.FrozenMap;
12+
import org.openapijsonschematools.schemas.Int32JsonSchema;
13+
import org.openapijsonschematools.schemas.Int64JsonSchema;
14+
import org.openapijsonschematools.schemas.IntJsonSchema;
15+
import org.openapijsonschematools.schemas.JsonSchema;
16+
import org.openapijsonschematools.schemas.ListJsonSchema;
17+
import org.openapijsonschematools.schemas.MapJsonSchema;
18+
import org.openapijsonschematools.schemas.NotAnyTypeJsonSchema;
19+
import org.openapijsonschematools.schemas.NullJsonSchema;
20+
import org.openapijsonschematools.schemas.NumberJsonSchema;
21+
import org.openapijsonschematools.schemas.StringJsonSchema;
22+
import org.openapijsonschematools.schemas.UnsetAnyTypeJsonSchema;
23+
import org.openapijsonschematools.schemas.UuidJsonSchema;
724

825
import java.time.LocalDate;
926
import java.time.ZonedDateTime;
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,26 @@
11
package org.openapijsonschematools.components.headers.refcontentschemaheader.content.applicationjson;
22
import org.openapijsonschematools.configurations.SchemaConfiguration;
3-
import org.openapijsonschematools.schemas.JsonSchema;
4-
import org.openapijsonschematools.schemas.JsonSchemas;
3+
import org.openapijsonschematools.schemas.AnyTypeJsonSchema;
4+
import org.openapijsonschematools.schemas.BooleanJsonSchema;
5+
import org.openapijsonschematools.schemas.DateJsonSchema;
6+
import org.openapijsonschematools.schemas.DateTimeJsonSchema;
7+
import org.openapijsonschematools.schemas.DecimalJsonSchema;
8+
import org.openapijsonschematools.schemas.DoubleJsonSchema;
9+
import org.openapijsonschematools.schemas.FloatJsonSchema;
510
import org.openapijsonschematools.schemas.FrozenList;
611
import org.openapijsonschematools.schemas.FrozenMap;
12+
import org.openapijsonschematools.schemas.Int32JsonSchema;
13+
import org.openapijsonschematools.schemas.Int64JsonSchema;
14+
import org.openapijsonschematools.schemas.IntJsonSchema;
15+
import org.openapijsonschematools.schemas.JsonSchema;
16+
import org.openapijsonschematools.schemas.ListJsonSchema;
17+
import org.openapijsonschematools.schemas.MapJsonSchema;
18+
import org.openapijsonschematools.schemas.NotAnyTypeJsonSchema;
19+
import org.openapijsonschematools.schemas.NullJsonSchema;
20+
import org.openapijsonschematools.schemas.NumberJsonSchema;
21+
import org.openapijsonschematools.schemas.StringJsonSchema;
22+
import org.openapijsonschematools.schemas.UnsetAnyTypeJsonSchema;
23+
import org.openapijsonschematools.schemas.UuidJsonSchema;
724

825
import java.time.LocalDate;
926
import java.time.ZonedDateTime;
@@ -15,13 +32,10 @@
1532
import java.util.Set;
1633
import org.openapijsonschematools.components.schemas.StringWithValidation;
1734

18-
public class RefContentSchemaHeaderSchema {
35+
public class RefContentSchemaHeaderSchema extends StringWithValidation {
1936
// $refed class
2037

2138

22-
public class RefContentSchemaHeaderSchema1 implements JsonSchema {
23-
public static String validate(String arg, SchemaConfiguration configuration) {
24-
return JsonSchema.validate(StringWithValidation.StringWithValidation1.class, arg, configuration);
25-
}
39+
public class RefContentSchemaHeaderSchema1 extends StringWithValidation1 {
2640
}
2741
}
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,26 @@
11
package org.openapijsonschematools.components.headers.refschemaheader;
22
import org.openapijsonschematools.configurations.SchemaConfiguration;
3-
import org.openapijsonschematools.schemas.JsonSchema;
4-
import org.openapijsonschematools.schemas.JsonSchemas;
3+
import org.openapijsonschematools.schemas.AnyTypeJsonSchema;
4+
import org.openapijsonschematools.schemas.BooleanJsonSchema;
5+
import org.openapijsonschematools.schemas.DateJsonSchema;
6+
import org.openapijsonschematools.schemas.DateTimeJsonSchema;
7+
import org.openapijsonschematools.schemas.DecimalJsonSchema;
8+
import org.openapijsonschematools.schemas.DoubleJsonSchema;
9+
import org.openapijsonschematools.schemas.FloatJsonSchema;
510
import org.openapijsonschematools.schemas.FrozenList;
611
import org.openapijsonschematools.schemas.FrozenMap;
12+
import org.openapijsonschematools.schemas.Int32JsonSchema;
13+
import org.openapijsonschematools.schemas.Int64JsonSchema;
14+
import org.openapijsonschematools.schemas.IntJsonSchema;
15+
import org.openapijsonschematools.schemas.JsonSchema;
16+
import org.openapijsonschematools.schemas.ListJsonSchema;
17+
import org.openapijsonschematools.schemas.MapJsonSchema;
18+
import org.openapijsonschematools.schemas.NotAnyTypeJsonSchema;
19+
import org.openapijsonschematools.schemas.NullJsonSchema;
20+
import org.openapijsonschematools.schemas.NumberJsonSchema;
21+
import org.openapijsonschematools.schemas.StringJsonSchema;
22+
import org.openapijsonschematools.schemas.UnsetAnyTypeJsonSchema;
23+
import org.openapijsonschematools.schemas.UuidJsonSchema;
724

825
import java.time.LocalDate;
926
import java.time.ZonedDateTime;
@@ -15,13 +32,10 @@
1532
import java.util.Set;
1633
import org.openapijsonschematools.components.schemas.StringWithValidation;
1734

18-
public class RefSchemaHeaderSchema {
35+
public class RefSchemaHeaderSchema extends StringWithValidation {
1936
// $refed class
2037

2138

22-
public class RefSchemaHeaderSchema1 implements JsonSchema {
23-
public static String validate(String arg, SchemaConfiguration configuration) {
24-
return JsonSchema.validate(StringWithValidation.StringWithValidation1.class, arg, configuration);
25-
}
39+
public class RefSchemaHeaderSchema1 extends StringWithValidation1 {
2640
}
2741
}

samples/client/petstore/java/src/main/java/org/openapijsonschematools/components/headers/stringheader/StringHeaderSchema.java

+19-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,26 @@
11
package org.openapijsonschematools.components.headers.stringheader;
22
import org.openapijsonschematools.configurations.SchemaConfiguration;
3-
import org.openapijsonschematools.schemas.JsonSchema;
4-
import org.openapijsonschematools.schemas.JsonSchemas;
3+
import org.openapijsonschematools.schemas.AnyTypeJsonSchema;
4+
import org.openapijsonschematools.schemas.BooleanJsonSchema;
5+
import org.openapijsonschematools.schemas.DateJsonSchema;
6+
import org.openapijsonschematools.schemas.DateTimeJsonSchema;
7+
import org.openapijsonschematools.schemas.DecimalJsonSchema;
8+
import org.openapijsonschematools.schemas.DoubleJsonSchema;
9+
import org.openapijsonschematools.schemas.FloatJsonSchema;
510
import org.openapijsonschematools.schemas.FrozenList;
611
import org.openapijsonschematools.schemas.FrozenMap;
12+
import org.openapijsonschematools.schemas.Int32JsonSchema;
13+
import org.openapijsonschematools.schemas.Int64JsonSchema;
14+
import org.openapijsonschematools.schemas.IntJsonSchema;
15+
import org.openapijsonschematools.schemas.JsonSchema;
16+
import org.openapijsonschematools.schemas.ListJsonSchema;
17+
import org.openapijsonschematools.schemas.MapJsonSchema;
18+
import org.openapijsonschematools.schemas.NotAnyTypeJsonSchema;
19+
import org.openapijsonschematools.schemas.NullJsonSchema;
20+
import org.openapijsonschematools.schemas.NumberJsonSchema;
21+
import org.openapijsonschematools.schemas.StringJsonSchema;
22+
import org.openapijsonschematools.schemas.UnsetAnyTypeJsonSchema;
23+
import org.openapijsonschematools.schemas.UuidJsonSchema;
724

825
import java.time.LocalDate;
926
import java.time.ZonedDateTime;
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,26 @@
11
package org.openapijsonschematools.components.parameters.componentrefschemastringwithvalidation.content.applicationjson;
22
import org.openapijsonschematools.configurations.SchemaConfiguration;
3-
import org.openapijsonschematools.schemas.JsonSchema;
4-
import org.openapijsonschematools.schemas.JsonSchemas;
3+
import org.openapijsonschematools.schemas.AnyTypeJsonSchema;
4+
import org.openapijsonschematools.schemas.BooleanJsonSchema;
5+
import org.openapijsonschematools.schemas.DateJsonSchema;
6+
import org.openapijsonschematools.schemas.DateTimeJsonSchema;
7+
import org.openapijsonschematools.schemas.DecimalJsonSchema;
8+
import org.openapijsonschematools.schemas.DoubleJsonSchema;
9+
import org.openapijsonschematools.schemas.FloatJsonSchema;
510
import org.openapijsonschematools.schemas.FrozenList;
611
import org.openapijsonschematools.schemas.FrozenMap;
12+
import org.openapijsonschematools.schemas.Int32JsonSchema;
13+
import org.openapijsonschematools.schemas.Int64JsonSchema;
14+
import org.openapijsonschematools.schemas.IntJsonSchema;
15+
import org.openapijsonschematools.schemas.JsonSchema;
16+
import org.openapijsonschematools.schemas.ListJsonSchema;
17+
import org.openapijsonschematools.schemas.MapJsonSchema;
18+
import org.openapijsonschematools.schemas.NotAnyTypeJsonSchema;
19+
import org.openapijsonschematools.schemas.NullJsonSchema;
20+
import org.openapijsonschematools.schemas.NumberJsonSchema;
21+
import org.openapijsonschematools.schemas.StringJsonSchema;
22+
import org.openapijsonschematools.schemas.UnsetAnyTypeJsonSchema;
23+
import org.openapijsonschematools.schemas.UuidJsonSchema;
724

825
import java.time.LocalDate;
926
import java.time.ZonedDateTime;
@@ -15,13 +32,10 @@
1532
import java.util.Set;
1633
import org.openapijsonschematools.components.schemas.StringWithValidation;
1734

18-
public class Schema {
35+
public class Schema extends StringWithValidation {
1936
// $refed class
2037

2138

22-
public class Schema1 implements JsonSchema {
23-
public static String validate(String arg, SchemaConfiguration configuration) {
24-
return JsonSchema.validate(StringWithValidation.StringWithValidation1.class, arg, configuration);
25-
}
39+
public class Schema1 extends StringWithValidation1 {
2640
}
2741
}

samples/client/petstore/java/src/main/java/org/openapijsonschematools/components/parameters/pathusername/Schema.java

+19-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,26 @@
11
package org.openapijsonschematools.components.parameters.pathusername;
22
import org.openapijsonschematools.configurations.SchemaConfiguration;
3-
import org.openapijsonschematools.schemas.JsonSchema;
4-
import org.openapijsonschematools.schemas.JsonSchemas;
3+
import org.openapijsonschematools.schemas.AnyTypeJsonSchema;
4+
import org.openapijsonschematools.schemas.BooleanJsonSchema;
5+
import org.openapijsonschematools.schemas.DateJsonSchema;
6+
import org.openapijsonschematools.schemas.DateTimeJsonSchema;
7+
import org.openapijsonschematools.schemas.DecimalJsonSchema;
8+
import org.openapijsonschematools.schemas.DoubleJsonSchema;
9+
import org.openapijsonschematools.schemas.FloatJsonSchema;
510
import org.openapijsonschematools.schemas.FrozenList;
611
import org.openapijsonschematools.schemas.FrozenMap;
12+
import org.openapijsonschematools.schemas.Int32JsonSchema;
13+
import org.openapijsonschematools.schemas.Int64JsonSchema;
14+
import org.openapijsonschematools.schemas.IntJsonSchema;
15+
import org.openapijsonschematools.schemas.JsonSchema;
16+
import org.openapijsonschematools.schemas.ListJsonSchema;
17+
import org.openapijsonschematools.schemas.MapJsonSchema;
18+
import org.openapijsonschematools.schemas.NotAnyTypeJsonSchema;
19+
import org.openapijsonschematools.schemas.NullJsonSchema;
20+
import org.openapijsonschematools.schemas.NumberJsonSchema;
21+
import org.openapijsonschematools.schemas.StringJsonSchema;
22+
import org.openapijsonschematools.schemas.UnsetAnyTypeJsonSchema;
23+
import org.openapijsonschematools.schemas.UuidJsonSchema;
724

825
import java.time.LocalDate;
926
import java.time.ZonedDateTime;
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,26 @@
11
package org.openapijsonschematools.components.parameters.refschemastringwithvalidation;
22
import org.openapijsonschematools.configurations.SchemaConfiguration;
3-
import org.openapijsonschematools.schemas.JsonSchema;
4-
import org.openapijsonschematools.schemas.JsonSchemas;
3+
import org.openapijsonschematools.schemas.AnyTypeJsonSchema;
4+
import org.openapijsonschematools.schemas.BooleanJsonSchema;
5+
import org.openapijsonschematools.schemas.DateJsonSchema;
6+
import org.openapijsonschematools.schemas.DateTimeJsonSchema;
7+
import org.openapijsonschematools.schemas.DecimalJsonSchema;
8+
import org.openapijsonschematools.schemas.DoubleJsonSchema;
9+
import org.openapijsonschematools.schemas.FloatJsonSchema;
510
import org.openapijsonschematools.schemas.FrozenList;
611
import org.openapijsonschematools.schemas.FrozenMap;
12+
import org.openapijsonschematools.schemas.Int32JsonSchema;
13+
import org.openapijsonschematools.schemas.Int64JsonSchema;
14+
import org.openapijsonschematools.schemas.IntJsonSchema;
15+
import org.openapijsonschematools.schemas.JsonSchema;
16+
import org.openapijsonschematools.schemas.ListJsonSchema;
17+
import org.openapijsonschematools.schemas.MapJsonSchema;
18+
import org.openapijsonschematools.schemas.NotAnyTypeJsonSchema;
19+
import org.openapijsonschematools.schemas.NullJsonSchema;
20+
import org.openapijsonschematools.schemas.NumberJsonSchema;
21+
import org.openapijsonschematools.schemas.StringJsonSchema;
22+
import org.openapijsonschematools.schemas.UnsetAnyTypeJsonSchema;
23+
import org.openapijsonschematools.schemas.UuidJsonSchema;
724

825
import java.time.LocalDate;
926
import java.time.ZonedDateTime;
@@ -15,13 +32,10 @@
1532
import java.util.Set;
1633
import org.openapijsonschematools.components.schemas.StringWithValidation;
1734

18-
public class Schema {
35+
public class Schema extends StringWithValidation {
1936
// $refed class
2037

2138

22-
public class Schema1 implements JsonSchema {
23-
public static String validate(String arg, SchemaConfiguration configuration) {
24-
return JsonSchema.validate(StringWithValidation.StringWithValidation1.class, arg, configuration);
25-
}
39+
public class Schema1 extends StringWithValidation1 {
2640
}
2741
}

0 commit comments

Comments
 (0)