Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions samples/client/petstore/java/.openapi-generator/FILES
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,30 @@ pom.xml
src/main/java/org/openapijsonschematools/configurations/JsonSchemaKeywordFlags.java
src/main/java/org/openapijsonschematools/configurations/SchemaConfiguration.java
src/main/java/org/openapijsonschematools/schemas/AnyTypeSchema.java
src/main/java/org/openapijsonschematools/schemas/BooleanSchema.java
src/main/java/org/openapijsonschematools/schemas/CustomIsoparser.java
src/main/java/org/openapijsonschematools/schemas/DoubleSchema.java
src/main/java/org/openapijsonschematools/schemas/FloatSchema.java
src/main/java/org/openapijsonschematools/schemas/Int32Schema.java
src/main/java/org/openapijsonschematools/schemas/Int64Schema.java
src/main/java/org/openapijsonschematools/schemas/IntSchema.java
src/main/java/org/openapijsonschematools/schemas/NullSchema.java
src/main/java/org/openapijsonschematools/schemas/NumberSchema.java
src/main/java/org/openapijsonschematools/schemas/PathToSchemasMap.java
src/main/java/org/openapijsonschematools/schemas/PathToTypeMap.java
src/main/java/org/openapijsonschematools/schemas/Schema.java
src/main/java/org/openapijsonschematools/schemas/SchemaValidator.java
src/main/java/org/openapijsonschematools/schemas/UnsetAnyTypeSchema.java
src/main/java/org/openapijsonschematools/schemas/ValidationMetadata.java
src/main/java/org/openapijsonschematools/schemas/validators/FormatValidator.java
src/main/java/org/openapijsonschematools/schemas/validators/KeywordValidator.java
src/main/java/org/openapijsonschematools/schemas/validators/TypeValidator.java
src/test/java/org/openapijsonschematools/configurations/JsonSchemaKeywordFlagsTest.java
src/test/java/org/openapijsonschematools/schemas/AnyTypeSchemaTest.java
src/test/java/org/openapijsonschematools/schemas/BooleanSchemaTest.java
src/test/java/org/openapijsonschematools/schemas/CustomIsoparserTest.java
src/test/java/org/openapijsonschematools/schemas/NullSchemaTest.java
src/test/java/org/openapijsonschematools/schemas/NumberSchemaTest.java
src/test/java/org/openapijsonschematools/schemas/SchemaValidatorTest.java
src/test/java/org/openapijsonschematools/schemas/validators/FormatValidatorTest.java
src/test/java/org/openapijsonschematools/schemas/validators/TypeValidatorTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ public static Integer validate(Integer arg, SchemaConfiguration configuration) {
return Schema.validate(AnyTypeSchema.class, arg, configuration);
}

public static Long validate(Long arg, SchemaConfiguration configuration) {
return Schema.validate(AnyTypeSchema.class, arg, configuration);
}

public static Float validate(Float arg, SchemaConfiguration configuration) {
return Schema.validate(AnyTypeSchema.class, arg, configuration);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.openapijsonschematools.schemas;

import org.openapijsonschematools.configurations.SchemaConfiguration;

import java.util.LinkedHashSet;

record BooleanSchema(LinkedHashSet<Class<?>> type) implements Schema {
public static BooleanSchema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(Boolean.class);
return new BooleanSchema(type);
}

public static Boolean validate(Boolean arg, SchemaConfiguration configuration) {
return Schema.validate(BooleanSchema.class, arg, configuration);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.openapijsonschematools.schemas;

import org.openapijsonschematools.configurations.SchemaConfiguration;

import java.util.LinkedHashSet;
import java.math.BigDecimal;

record DoubleSchema(LinkedHashSet<Class<?>> type, String format) implements Schema {
public static DoubleSchema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(BigDecimal.class);
String format = "float";
return new DoubleSchema(type, format);
}

public static Double validate(Double arg, SchemaConfiguration configuration) {
return Schema.validate(DoubleSchema.class, arg, configuration);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.openapijsonschematools.schemas;

import org.openapijsonschematools.configurations.SchemaConfiguration;

import java.util.LinkedHashSet;
import java.math.BigDecimal;

record FloatSchema(LinkedHashSet<Class<?>> type, String format) implements Schema {
public static FloatSchema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(BigDecimal.class);
String format = "float";
return new FloatSchema(type, format);
}

public static Float validate(Float arg, SchemaConfiguration configuration) {
return Schema.validate(FloatSchema.class, arg, configuration);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package org.openapijsonschematools.schemas;

import org.openapijsonschematools.configurations.SchemaConfiguration;

import java.util.LinkedHashSet;
import java.math.BigDecimal;

record Int32Schema(LinkedHashSet<Class<?>> type, String format) implements Schema {
public static Int32Schema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(BigDecimal.class);
String format = "int32";
return new Int32Schema(type, format);
}

public static Integer validate(Integer arg, SchemaConfiguration configuration) {
return Schema.validate(Int32Schema.class, arg, configuration);
}

public static Integer validate(Float arg, SchemaConfiguration configuration) {
return Schema.validate(Int32Schema.class, Integer.parseInt(arg.toString()), configuration);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package org.openapijsonschematools.schemas;

import org.openapijsonschematools.configurations.SchemaConfiguration;

import java.util.LinkedHashSet;
import java.math.BigDecimal;

record Int64Schema(LinkedHashSet<Class<?>> type, String format) implements Schema {
public static Int64Schema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(BigDecimal.class);
String format = "int64";
return new Int64Schema(type, format);
}

public static Long validate(Integer arg, SchemaConfiguration configuration) {
return Schema.validate(Int64Schema.class, Long.valueOf(arg), configuration);
}

public static Long validate(Float arg, SchemaConfiguration configuration) {
return Schema.validate(Int64Schema.class, Long.parseLong(arg.toString()), configuration);
}

public static Long validate(Long arg, SchemaConfiguration configuration) {
return Schema.validate(Int64Schema.class, arg, configuration);
}

public static Long validate(Double arg, SchemaConfiguration configuration) {
return Schema.validate(Int64Schema.class, Long.parseLong(arg.toString()), configuration);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package org.openapijsonschematools.schemas;

import org.openapijsonschematools.configurations.SchemaConfiguration;

import java.util.LinkedHashSet;
import java.math.BigDecimal;

record IntSchema(LinkedHashSet<Class<?>> type, String format) implements Schema {
public static IntSchema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(BigDecimal.class);
String format = "int";
return new IntSchema(type, format);
}

public static Long validate(Integer arg, SchemaConfiguration configuration) {
return Schema.validate(IntSchema.class, Long.valueOf(arg), configuration);
}

public static Long validate(Float arg, SchemaConfiguration configuration) {
return Schema.validate(IntSchema.class, Long.parseLong(arg.toString()), configuration);
}

public static Long validate(Long arg, SchemaConfiguration configuration) {
return Schema.validate(IntSchema.class, arg, configuration);
}

public static Long validate(Double arg, SchemaConfiguration configuration) {
return Schema.validate(IntSchema.class, Long.parseLong(arg.toString()), configuration);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.openapijsonschematools.schemas;

import org.openapijsonschematools.configurations.SchemaConfiguration;

import java.util.LinkedHashSet;

record NullSchema(LinkedHashSet<Class<?>> type) implements Schema {
public static NullSchema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(Void.class);
return new NullSchema(type);
}

public static Void validate(Void arg, SchemaConfiguration configuration) {
return Schema.validate(NullSchema.class, arg, configuration);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package org.openapijsonschematools.schemas;

import org.openapijsonschematools.configurations.SchemaConfiguration;

import java.util.LinkedHashSet;
import java.math.BigDecimal;

record NumberSchema(LinkedHashSet<Class<?>> type) implements Schema {
public static NumberSchema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(BigDecimal.class);
return new NumberSchema(type);
}

public static BigDecimal validate(Integer arg, SchemaConfiguration configuration) {
return Schema.validate(NumberSchema.class, BigDecimal.valueOf(arg), configuration);
}

public static BigDecimal validate(Long arg, SchemaConfiguration configuration) {
return Schema.validate(NumberSchema.class, BigDecimal.valueOf(arg), configuration);
}

public static BigDecimal validate(Float arg, SchemaConfiguration configuration) {
return Schema.validate(NumberSchema.class, BigDecimal.valueOf(arg), configuration);
}

public static BigDecimal validate(Double arg, SchemaConfiguration configuration) {
return Schema.validate(NumberSchema.class, BigDecimal.valueOf(arg), configuration);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,18 +40,21 @@ private static Object castToAllowedTypes(Object arg, List<Object> pathToItem, Pa
} else if (arg instanceof Boolean) {
pathToType.put(pathToItem, Boolean.class);
return arg;
} else if (arg instanceof Integer) {
pathToType.put(pathToItem, Integer.class);
} else if (arg instanceof BigDecimal) {
pathToType.put(pathToItem, BigDecimal.class);
return arg;
} else if (arg instanceof Integer) {
pathToType.put(pathToItem, BigDecimal.class);
return BigDecimal.valueOf((Integer) arg);
} else if (arg instanceof Long) {
pathToType.put(pathToItem, BigDecimal.class);
return BigDecimal.valueOf((Long) arg);
} else if (arg instanceof Float) {
pathToType.put(pathToItem, Float.class);
return arg;
pathToType.put(pathToItem, BigDecimal.class);
return BigDecimal.valueOf((Float) arg);
} else if (arg instanceof Double) {
pathToType.put(pathToItem, Double.class);
return arg;
} else if (arg instanceof BigDecimal) {
pathToType.put(pathToItem, BigDecimal.class);
return arg;
return BigDecimal.valueOf((Double) arg);
} else if (arg instanceof List) {
pathToType.put(pathToItem, List.class);
List<Object> argFixed = new ArrayList<>();
Expand Down Expand Up @@ -170,16 +173,28 @@ static Boolean validate(Class<?> cls, Boolean arg, SchemaConfiguration configura
return (Boolean) validateObject(cls, arg, configuration);
}

static BigDecimal validate(Class<?> cls, BigDecimal arg, SchemaConfiguration configuration) {
return (BigDecimal) validateObject(cls, arg, configuration);
}

static Integer validate(Class<?> cls, Integer arg, SchemaConfiguration configuration) {
return (Integer) validateObject(cls, arg, configuration);
BigDecimal val = (BigDecimal) validateObject(cls, arg, configuration);
return val.intValue();
}

static Long validate(Class<?> cls, Long arg, SchemaConfiguration configuration) {
BigDecimal val = (BigDecimal) validateObject(cls, arg, configuration);
return val.longValue();
}

static Float validate(Class<?> cls, Float arg, SchemaConfiguration configuration) {
return (Float) validateObject(cls, arg, configuration);
BigDecimal val = (BigDecimal) validateObject(cls, arg, configuration);
return val.floatValue();
}

static Double validate(Class<?> cls, Double arg, SchemaConfiguration configuration) {
return (Double) validateObject(cls, arg, configuration);
BigDecimal val = (BigDecimal) validateObject(cls, arg, configuration);
return val.doubleValue();
}

static String validate(Class<?> cls, String arg, SchemaConfiguration configuration) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.openapijsonschematools.schemas.validators.KeywordValidator;
import org.openapijsonschematools.schemas.validators.TypeValidator;
import org.openapijsonschematools.schemas.validators.FormatValidator;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.RecordComponent;
Expand All @@ -14,6 +15,7 @@
public interface SchemaValidator {
HashMap<String, KeywordValidator> keywordToValidator = new HashMap(){{
put("type", new TypeValidator());
put("format", new FormatValidator());
}};

static PathToSchemasMap validate(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ static Integer validate(Integer arg, SchemaConfiguration configuration) {
return Schema.validate(UnsetAnyTypeSchema.class, arg, configuration);
}

public static Long validate(Long arg, SchemaConfiguration configuration) {
return Schema.validate(UnsetAnyTypeSchema.class, arg, configuration);
}

static Float validate(Float arg, SchemaConfiguration configuration) {
return Schema.validate(UnsetAnyTypeSchema.class, arg, configuration);
}
Expand Down
Loading