@@ -26,7 +26,8 @@ class NumberConstraint extends Constraint
26
26
public function check (&$ element , $ schema = null , JsonPointer $ path = null , $ i = null )
27
27
{
28
28
// Verify minimum
29
- if (isset ($ schema ->exclusiveMinimum )) {
29
+ if (isset ($ schema ->exclusiveMinimum ) && filter_var ($ schema ->exclusiveMinimum , FILTER_VALIDATE_BOOLEAN )) {
30
+ // Draft 4 schema
30
31
if (isset ($ schema ->minimum )) {
31
32
if ($ schema ->exclusiveMinimum && $ element <= $ schema ->minimum ) {
32
33
$ this ->addError (ConstraintError::EXCLUSIVE_MINIMUM (), $ path , array ('minimum ' => $ schema ->minimum ));
@@ -36,12 +37,18 @@ public function check(&$element, $schema = null, JsonPointer $path = null, $i =
36
37
} else {
37
38
$ this ->addError (ConstraintError::MISSING_MINIMUM (), $ path );
38
39
}
40
+ } elseif (isset ($ schema ->exclusiveMinimum ) && filter_var ($ schema ->exclusiveMinimum , FILTER_VALIDATE_INT )) {
41
+ // Draft 6 schema
42
+ if ($ element <= $ schema ->exclusiveMinimum ) {
43
+ $ this ->addError (ConstraintError::EXCLUSIVE_MINIMUM (), $ path , array ('exclusiveMinimum ' => $ schema ->exclusiveMinimum ));
44
+ }
39
45
} elseif (isset ($ schema ->minimum ) && $ element < $ schema ->minimum ) {
40
46
$ this ->addError (ConstraintError::MINIMUM (), $ path , array ('minimum ' => $ schema ->minimum ));
41
47
}
42
48
43
49
// Verify maximum
44
- if (isset ($ schema ->exclusiveMaximum )) {
50
+ if (isset ($ schema ->exclusiveMaximum ) && filter_var ($ schema ->exclusiveMaximum , FILTER_VALIDATE_INT )) {
51
+ // Draft 4 schema
45
52
if (isset ($ schema ->maximum )) {
46
53
if ($ schema ->exclusiveMaximum && $ element >= $ schema ->maximum ) {
47
54
$ this ->addError (ConstraintError::EXCLUSIVE_MAXIMUM (), $ path , array ('maximum ' => $ schema ->maximum ));
@@ -51,6 +58,11 @@ public function check(&$element, $schema = null, JsonPointer $path = null, $i =
51
58
} else {
52
59
$ this ->addError (ConstraintError::MISSING_MAXIMUM (), $ path );
53
60
}
61
+ } elseif (isset ($ schema ->exclusiveMaximum ) && filter_var ($ schema ->exclusiveMaximum , FILTER_VALIDATE_INT )) {
62
+ // Draft 6 schema
63
+ if ($ element >= $ schema ->exclusiveMaximum ) {
64
+ $ this ->addError (ConstraintError::EXCLUSIVE_MAXIMUM (), $ path , array ('exclusiveMaximum ' => $ schema ->exclusiveMaximum ));
65
+ }
54
66
} elseif (isset ($ schema ->maximum ) && $ element > $ schema ->maximum ) {
55
67
$ this ->addError (ConstraintError::MAXIMUM (), $ path , array ('maximum ' => $ schema ->maximum ));
56
68
}
0 commit comments