This is an automated email from the ASF dual-hosted git repository.
rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/johnzon.git
The following commit(s) were added to refs/heads/master by this push:
new 9e74caa [JOHNZON-327] Json Schema Validation: added integer type
validation. (#72)
9e74caa is described below
commit 9e74caa3c0c19311da783313c52863967d313bf6
Author: manuelrazola
AuthorDate: Thu Dec 3 11:36:51 2020 +0100
[JOHNZON-327] Json Schema Validation: added integer type validation. (#72)
* Added integer type validation to JsonSchemaValidatorFactory.
* Implemented PR suggestions.
---
.../jsonschema/JsonSchemaValidatorFactory.java | 2 ++
.../jsonschema/spi/builtin/IntegerValidation.java | 28 ++
.../spi/builtin/MultipleOfValidation.java | 4 ++--
.../jsonschema/spi/builtin/TypeValidation.java | 1 +
.../jsonschema/JsonSchemaValidatorTest.java| 27 +
5 files changed, 60 insertions(+), 2 deletions(-)
diff --git
a/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/JsonSchemaValidatorFactory.java
b/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/JsonSchemaValidatorFactory.java
index a873dfe..2fe4e27 100644
---
a/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/JsonSchemaValidatorFactory.java
+++
b/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/JsonSchemaValidatorFactory.java
@@ -43,6 +43,7 @@ import
org.apache.johnzon.jsonschema.spi.builtin.ContainsValidation;
import org.apache.johnzon.jsonschema.spi.builtin.EnumValidation;
import org.apache.johnzon.jsonschema.spi.builtin.ExclusiveMaximumValidation;
import org.apache.johnzon.jsonschema.spi.builtin.ExclusiveMinimumValidation;
+import org.apache.johnzon.jsonschema.spi.builtin.IntegerValidation;
import org.apache.johnzon.jsonschema.spi.builtin.ItemsValidation;
import org.apache.johnzon.jsonschema.spi.builtin.MaxItemsValidation;
import org.apache.johnzon.jsonschema.spi.builtin.MaxLengthValidation;
@@ -88,6 +89,7 @@ public class JsonSchemaValidatorFactory implements
AutoCloseable {
return asList(
new RequiredValidation(),
new TypeValidation(),
+new IntegerValidation(),
new EnumValidation(),
new MultipleOfValidation(),
new MaximumValidation(),
diff --git
a/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/spi/builtin/IntegerValidation.java
b/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/spi/builtin/IntegerValidation.java
new file mode 100644
index 000..dc12db5
--- /dev/null
+++
b/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/spi/builtin/IntegerValidation.java
@@ -0,0 +1,28 @@
+package org.apache.johnzon.jsonschema.spi.builtin;
+
+import java.util.Optional;
+import java.util.function.Function;
+import java.util.stream.Stream;
+
+import javax.json.JsonNumber;
+import javax.json.JsonString;
+import javax.json.JsonValue;
+import javax.json.JsonValue.ValueType;
+
+import org.apache.johnzon.jsonschema.ValidationResult;
+import org.apache.johnzon.jsonschema.ValidationResult.ValidationError;
+import org.apache.johnzon.jsonschema.spi.ValidationContext;
+import org.apache.johnzon.jsonschema.spi.ValidationExtension;
+
+public class IntegerValidation implements ValidationExtension {
+
+ @Override
+ public Optional>>
create(ValidationContext model) {
+ final JsonValue type = model.getSchema().get("type");
+ if (type.getValueType().equals(ValueType.STRING) &&
"integer".equals(JsonString.class.cast(type).getString())) {
+ return Optional.of(new
MultipleOfValidation.Impl(model.toPointer(), model.getValueProvider(), 1));
+ }
+ return Optional.empty();
+ }
+
+}
diff --git
a/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/spi/builtin/MultipleOfValidation.java
b/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/spi/builtin/MultipleOfValidation.java
index a4c101c..72a1862 100644
---
a/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/spi/builtin/MultipleOfValidation.java
+++
b/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/spi/builtin/MultipleOfValidation.java
@@ -40,8 +40,8 @@ public class MultipleOfValidation implements
ValidationExtension {
return Optional.empty();
}
-private static class Impl extends BaseNumberValidation {
-private Impl(final String pointer, final Function valueProvider, final double multipleOf) {
+static class Impl extends BaseNumberValidation {
+Impl(final String pointer, final Function
valueProvider, final double multipleOf) {
super(pointer, valueProvider, multipleOf);
}
diff --git