@@ -26,7 +26,8 @@ class NumberConstraint extends Constraint
2626 public function check (&$ element , $ schema = null , JsonPointer $ path = null , $ i = null )
2727 {
2828 // Verify minimum
29- if (isset ($ schema ->exclusiveMinimum )) {
29+ if (isset ($ schema ->exclusiveMinimum ) && filter_var ($ schema ->exclusiveMinimum , FILTER_VALIDATE_BOOLEAN )) {
30+ // Draft 4 schema
3031 if (isset ($ schema ->minimum )) {
3132 if ($ schema ->exclusiveMinimum && $ element <= $ schema ->minimum ) {
3233 $ this ->addError (ConstraintError::EXCLUSIVE_MINIMUM (), $ path , array ('minimum ' => $ schema ->minimum ));
@@ -36,12 +37,18 @@ public function check(&$element, $schema = null, JsonPointer $path = null, $i =
3637 } else {
3738 $ this ->addError (ConstraintError::MISSING_MINIMUM (), $ path );
3839 }
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+ }
3945 } elseif (isset ($ schema ->minimum ) && $ element < $ schema ->minimum ) {
4046 $ this ->addError (ConstraintError::MINIMUM (), $ path , array ('minimum ' => $ schema ->minimum ));
4147 }
4248
4349 // Verify maximum
44- if (isset ($ schema ->exclusiveMaximum )) {
50+ if (isset ($ schema ->exclusiveMaximum ) && filter_var ($ schema ->exclusiveMaximum , FILTER_VALIDATE_INT )) {
51+ // Draft 4 schema
4552 if (isset ($ schema ->maximum )) {
4653 if ($ schema ->exclusiveMaximum && $ element >= $ schema ->maximum ) {
4754 $ this ->addError (ConstraintError::EXCLUSIVE_MAXIMUM (), $ path , array ('maximum ' => $ schema ->maximum ));
@@ -51,6 +58,11 @@ public function check(&$element, $schema = null, JsonPointer $path = null, $i =
5158 } else {
5259 $ this ->addError (ConstraintError::MISSING_MAXIMUM (), $ path );
5360 }
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+ }
5466 } elseif (isset ($ schema ->maximum ) && $ element > $ schema ->maximum ) {
5567 $ this ->addError (ConstraintError::MAXIMUM (), $ path , array ('maximum ' => $ schema ->maximum ));
5668 }
0 commit comments