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

Java: changes return types from BigDecimal to Number #281

Merged
merged 1 commit into from
Nov 8, 2023
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
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@
import org.openapijsonschematools.configurations.SchemaConfiguration;

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

public 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";
type.add(Double.class);
String format = "double";
return new DoubleSchema(type, format);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
import org.openapijsonschematools.configurations.SchemaConfiguration;

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

public record FloatSchema(LinkedHashSet<Class<?>> type, String format) implements Schema {
public static FloatSchema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(BigDecimal.class);
type.add(Float.class);
String format = "float";
return new FloatSchema(type, format);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
import org.openapijsonschematools.configurations.SchemaConfiguration;

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

public record Int32Schema(LinkedHashSet<Class<?>> type, String format) implements Schema {
public static Int32Schema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(BigDecimal.class);
type.add(Integer.class);
type.add(Float.class);
String format = "int32";
return new Int32Schema(type, format);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
import org.openapijsonschematools.configurations.SchemaConfiguration;

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

public record Int64Schema(LinkedHashSet<Class<?>> type, String format) implements Schema {
public static Int64Schema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(BigDecimal.class);
type.add(Integer.class);
type.add(Long.class);
type.add(Float.class);
type.add(Double.class);
String format = "int64";
return new Int64Schema(type, format);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
import org.openapijsonschematools.configurations.SchemaConfiguration;

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

public record IntSchema(LinkedHashSet<Class<?>> type, String format) implements Schema {
public static IntSchema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(BigDecimal.class);
type.add(Number.class);
String format = "int";
return new IntSchema(type, format);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,30 @@
import org.openapijsonschematools.configurations.SchemaConfiguration;

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

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

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

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

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

public static BigDecimal validate(Double arg, SchemaConfiguration configuration) {
return Schema.validate(NumberSchema.class, BigDecimal.valueOf(arg), configuration);
public static Number validate(Double arg, SchemaConfiguration configuration) {
return Schema.validate(NumberSchema.class, arg, configuration);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,9 @@

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
Expand Down Expand Up @@ -41,21 +39,18 @@ 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 BigDecimal) {
pathToType.put(pathToItem, BigDecimal.class);
return arg;
} else if (arg instanceof Integer) {
pathToType.put(pathToItem, BigDecimal.class);
return BigDecimal.valueOf((Integer) arg);
pathToType.put(pathToItem, Integer.class);
return arg;
} else if (arg instanceof Long) {
pathToType.put(pathToItem, BigDecimal.class);
return BigDecimal.valueOf((Long) arg);
pathToType.put(pathToItem, Long.class);
return arg;
} else if (arg instanceof Float) {
pathToType.put(pathToItem, BigDecimal.class);
return BigDecimal.valueOf((Float) arg);
pathToType.put(pathToItem, Float.class);
return arg;
} else if (arg instanceof Double) {
pathToType.put(pathToItem, BigDecimal.class);
return BigDecimal.valueOf((Double) arg);
pathToType.put(pathToItem, Double.class);
return arg;
} else if (arg instanceof List) {
pathToType.put(pathToItem, List.class);
List<Object> argFixed = new ArrayList<>();
Expand Down Expand Up @@ -174,28 +169,20 @@ 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) {
BigDecimal val = (BigDecimal) validateObject(cls, arg, configuration);
return val.intValue();
return (Integer) validateObject(cls, arg, configuration);
}

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

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

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

static String validate(Class<?> cls, String arg, SchemaConfiguration configuration) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,26 +12,26 @@ public class NumberSchemaTest {

@Test
public void testValidateInteger() {
BigDecimal validatedValue = NumberSchema.validate(1, configuration);
Assert.assertEquals(validatedValue, BigDecimal.valueOf(1));
Number validatedValue = NumberSchema.validate(1, configuration);
Assert.assertEquals(validatedValue, 1);
}

@Test
public void testValidateLong() {
BigDecimal validatedValue = NumberSchema.validate(1L, configuration);
Assert.assertEquals(validatedValue, BigDecimal.valueOf(1L));
Number validatedValue = NumberSchema.validate(1L, configuration);
Assert.assertEquals(validatedValue, 1L);
}

@Test
public void testValidateFloat() {
BigDecimal validatedValue = NumberSchema.validate(3.14f, configuration);
Assert.assertEquals(validatedValue, BigDecimal.valueOf(3.14f));
Number validatedValue = NumberSchema.validate(3.14f, configuration);
Assert.assertEquals(validatedValue, 3.14f);
}

@Test
public void testValidateDouble() {
BigDecimal validatedValue = NumberSchema.validate(3.14d, configuration);
Assert.assertEquals(validatedValue, BigDecimal.valueOf(3.14d));
Number validatedValue = NumberSchema.validate(3.14d, configuration);
Assert.assertEquals(validatedValue, 3.14d);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@ package {{{packageName}}}.schemas;
import {{{packageName}}}.configurations.SchemaConfiguration;

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

public 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";
type.add(Double.class);
String format = "double";
return new DoubleSchema(type, format);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@ package {{{packageName}}}.schemas;
import {{{packageName}}}.configurations.SchemaConfiguration;

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

public record FloatSchema(LinkedHashSet<Class<?>> type, String format) implements Schema {
public static FloatSchema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(BigDecimal.class);
type.add(Float.class);
String format = "float";
return new FloatSchema(type, format);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ package {{{packageName}}}.schemas;
import {{{packageName}}}.configurations.SchemaConfiguration;

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

public record Int32Schema(LinkedHashSet<Class<?>> type, String format) implements Schema {
public static Int32Schema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(BigDecimal.class);
type.add(Integer.class);
type.add(Float.class);
String format = "int32";
return new Int32Schema(type, format);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@ package {{{packageName}}}.schemas;
import {{{packageName}}}.configurations.SchemaConfiguration;

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

public record Int64Schema(LinkedHashSet<Class<?>> type, String format) implements Schema {
public static Int64Schema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(BigDecimal.class);
type.add(Integer.class);
type.add(Long.class);
type.add(Float.class);
type.add(Double.class);
String format = "int64";
return new Int64Schema(type, format);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@ package {{{packageName}}}.schemas;
import {{{packageName}}}.configurations.SchemaConfiguration;

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

public record IntSchema(LinkedHashSet<Class<?>> type, String format) implements Schema {
public static IntSchema withDefaults() {
LinkedHashSet<Class<?>> type = new LinkedHashSet<>();
type.add(BigDecimal.class);
type.add(Number.class);
String format = "int";
return new IntSchema(type, format);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,30 @@ package {{{packageName}}}.schemas;
import {{{packageName}}}.configurations.SchemaConfiguration;

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

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

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

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

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

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