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

Commit 06c63dd

Browse files
authored
Java, add String schema classes (#275)
* Adds StringSchema * Adds DateSchema * Adds DateTimeSchema * Adds DecimalSchema
1 parent 53fabbd commit 06c63dd

File tree

10 files changed

+202
-0
lines changed

10 files changed

+202
-0
lines changed

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

+4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ src/main/java/org/openapijsonschematools/configurations/SchemaConfiguration.java
55
src/main/java/org/openapijsonschematools/schemas/AnyTypeSchema.java
66
src/main/java/org/openapijsonschematools/schemas/BooleanSchema.java
77
src/main/java/org/openapijsonschematools/schemas/CustomIsoparser.java
8+
src/main/java/org/openapijsonschematools/schemas/DateSchema.java
9+
src/main/java/org/openapijsonschematools/schemas/DateTimeSchema.java
10+
src/main/java/org/openapijsonschematools/schemas/DecimalSchema.java
811
src/main/java/org/openapijsonschematools/schemas/DoubleSchema.java
912
src/main/java/org/openapijsonschematools/schemas/FloatSchema.java
1013
src/main/java/org/openapijsonschematools/schemas/Int32Schema.java
@@ -16,6 +19,7 @@ src/main/java/org/openapijsonschematools/schemas/PathToSchemasMap.java
1619
src/main/java/org/openapijsonschematools/schemas/PathToTypeMap.java
1720
src/main/java/org/openapijsonschematools/schemas/Schema.java
1821
src/main/java/org/openapijsonschematools/schemas/SchemaValidator.java
22+
src/main/java/org/openapijsonschematools/schemas/StringSchema.java
1923
src/main/java/org/openapijsonschematools/schemas/UnsetAnyTypeSchema.java
2024
src/main/java/org/openapijsonschematools/schemas/ValidationMetadata.java
2125
src/main/java/org/openapijsonschematools/schemas/validators/FormatValidator.java
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.openapijsonschematools.schemas;
2+
3+
import org.openapijsonschematools.configurations.SchemaConfiguration;
4+
5+
import java.util.LinkedHashSet;
6+
import java.time.LocalDate;
7+
8+
record DateSchema(LinkedHashSet<Class<?>> type, String format) implements Schema {
9+
public static DateSchema withDefaults() {
10+
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
11+
type.add(String.class);
12+
String format = "date";
13+
return new DateSchema(type, format);
14+
}
15+
16+
public static String validate(String arg, SchemaConfiguration configuration) {
17+
return Schema.validate(DateSchema.class, arg, configuration);
18+
}
19+
20+
public static String validate(LocalDate arg, SchemaConfiguration configuration) {
21+
return Schema.validate(DateSchema.class, arg, configuration);
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.openapijsonschematools.schemas;
2+
3+
import org.openapijsonschematools.configurations.SchemaConfiguration;
4+
5+
import java.util.LinkedHashSet;
6+
import java.time.ZonedDateTime;
7+
8+
record DateTimeSchema(LinkedHashSet<Class<?>> type, String format) implements Schema {
9+
public static DateTimeSchema withDefaults() {
10+
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
11+
type.add(String.class);
12+
String format = "date-time";
13+
return new DateTimeSchema(type, format);
14+
}
15+
16+
public static String validate(String arg, SchemaConfiguration configuration) {
17+
return Schema.validate(DateTimeSchema.class, arg, configuration);
18+
}
19+
20+
public static String validate(ZonedDateTime arg, SchemaConfiguration configuration) {
21+
return Schema.validate(DateTimeSchema.class, arg, configuration);
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.openapijsonschematools.schemas;
2+
3+
import org.openapijsonschematools.configurations.SchemaConfiguration;
4+
5+
import java.util.LinkedHashSet;
6+
7+
record DecimalSchema(LinkedHashSet<Class<?>> type, String format) implements Schema {
8+
public static DecimalSchema withDefaults() {
9+
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
10+
type.add(String.class);
11+
String format = "number";
12+
return new DecimalSchema(type, format);
13+
}
14+
15+
public static String validate(String arg, SchemaConfiguration configuration) {
16+
return Schema.validate(DecimalSchema.class, arg, configuration);
17+
}
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package org.openapijsonschematools.schemas;
2+
3+
import org.openapijsonschematools.configurations.SchemaConfiguration;
4+
5+
import java.util.LinkedHashSet;
6+
import java.time.ZonedDateTime;
7+
import java.time.LocalDate;
8+
9+
record StringSchema(LinkedHashSet<Class<?>> type) implements Schema {
10+
public static StringSchema withDefaults() {
11+
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
12+
type.add(String.class);
13+
return new StringSchema(type);
14+
}
15+
16+
public static String validate(String arg, SchemaConfiguration configuration) {
17+
return Schema.validate(StringSchema.class, arg, configuration);
18+
}
19+
20+
public static String validate(ZonedDateTime arg, SchemaConfiguration configuration) {
21+
return Schema.validate(StringSchema.class, arg, configuration);
22+
}
23+
24+
public static String validate(LocalDate arg, SchemaConfiguration configuration) {
25+
return Schema.validate(StringSchema.class, arg, configuration);
26+
}
27+
}

src/main/java/org/openapijsonschematools/codegen/generators/JavaClientGenerator.java

+16
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,18 @@ public void processOpts() {
273273
"src/main/java/org/openapitools/schemas/CustomIsoparser.hbs",
274274
packagePath() + File.separatorChar + "schemas",
275275
"CustomIsoparser.java"));
276+
supportingFiles.add(new SupportingFile(
277+
"src/main/java/org/openapitools/schemas/DateSchema.hbs",
278+
packagePath() + File.separatorChar + "schemas",
279+
"DateSchema.java"));
280+
supportingFiles.add(new SupportingFile(
281+
"src/main/java/org/openapitools/schemas/DateTimeSchema.hbs",
282+
packagePath() + File.separatorChar + "schemas",
283+
"DateTimeSchema.java"));
284+
supportingFiles.add(new SupportingFile(
285+
"src/main/java/org/openapitools/schemas/DecimalSchema.hbs",
286+
packagePath() + File.separatorChar + "schemas",
287+
"DecimalSchema.java"));
276288
supportingFiles.add(new SupportingFile(
277289
"src/main/java/org/openapitools/schemas/DoubleSchema.hbs",
278290
packagePath() + File.separatorChar + "schemas",
@@ -317,6 +329,10 @@ public void processOpts() {
317329
"src/main/java/org/openapitools/schemas/SchemaValidator.hbs",
318330
packagePath() + File.separatorChar + "schemas",
319331
"SchemaValidator.java"));
332+
supportingFiles.add(new SupportingFile(
333+
"src/main/java/org/openapitools/schemas/StringSchema.hbs",
334+
packagePath() + File.separatorChar + "schemas",
335+
"StringSchema.java"));
320336
supportingFiles.add(new SupportingFile(
321337
"src/main/java/org/openapitools/schemas/UnsetAnyTypeSchema.hbs",
322338
packagePath() + File.separatorChar + "schemas",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package {{{packageName}}}.schemas;
2+
3+
import {{{packageName}}}.configurations.SchemaConfiguration;
4+
5+
import java.util.LinkedHashSet;
6+
import java.time.LocalDate;
7+
8+
record DateSchema(LinkedHashSet<Class<?>> type, String format) implements Schema {
9+
public static DateSchema withDefaults() {
10+
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
11+
type.add(String.class);
12+
String format = "date";
13+
return new DateSchema(type, format);
14+
}
15+
16+
public static String validate(String arg, SchemaConfiguration configuration) {
17+
return Schema.validate(DateSchema.class, arg, configuration);
18+
}
19+
20+
public static String validate(LocalDate arg, SchemaConfiguration configuration) {
21+
return Schema.validate(DateSchema.class, arg, configuration);
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package {{{packageName}}}.schemas;
2+
3+
import {{{packageName}}}.configurations.SchemaConfiguration;
4+
5+
import java.util.LinkedHashSet;
6+
import java.time.ZonedDateTime;
7+
8+
record DateTimeSchema(LinkedHashSet<Class<?>> type, String format) implements Schema {
9+
public static DateTimeSchema withDefaults() {
10+
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
11+
type.add(String.class);
12+
String format = "date-time";
13+
return new DateTimeSchema(type, format);
14+
}
15+
16+
public static String validate(String arg, SchemaConfiguration configuration) {
17+
return Schema.validate(DateTimeSchema.class, arg, configuration);
18+
}
19+
20+
public static String validate(ZonedDateTime arg, SchemaConfiguration configuration) {
21+
return Schema.validate(DateTimeSchema.class, arg, configuration);
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package {{{packageName}}}.schemas;
2+
3+
import {{{packageName}}}.configurations.SchemaConfiguration;
4+
5+
import java.util.LinkedHashSet;
6+
7+
record DecimalSchema(LinkedHashSet<Class<?>> type, String format) implements Schema {
8+
public static DecimalSchema withDefaults() {
9+
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
10+
type.add(String.class);
11+
String format = "number";
12+
return new DecimalSchema(type, format);
13+
}
14+
15+
public static String validate(String arg, SchemaConfiguration configuration) {
16+
return Schema.validate(DecimalSchema.class, arg, configuration);
17+
}
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package {{{packageName}}}.schemas;
2+
3+
import {{{packageName}}}.configurations.SchemaConfiguration;
4+
5+
import java.util.LinkedHashSet;
6+
import java.time.ZonedDateTime;
7+
import java.time.LocalDate;
8+
9+
record StringSchema(LinkedHashSet<Class<?>> type) implements Schema {
10+
public static StringSchema withDefaults() {
11+
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
12+
type.add(String.class);
13+
return new StringSchema(type);
14+
}
15+
16+
public static String validate(String arg, SchemaConfiguration configuration) {
17+
return Schema.validate(StringSchema.class, arg, configuration);
18+
}
19+
20+
public static String validate(ZonedDateTime arg, SchemaConfiguration configuration) {
21+
return Schema.validate(StringSchema.class, arg, configuration);
22+
}
23+
24+
public static String validate(LocalDate arg, SchemaConfiguration configuration) {
25+
return Schema.validate(StringSchema.class, arg, configuration);
26+
}
27+
}

0 commit comments

Comments
 (0)