| @@ 19-42 (lines=24) @@ | ||
| 16 | /** |
|
| 17 | * Constraint for the "maximum" and "exclusiveMaximum" keywords. |
|
| 18 | */ |
|
| 19 | class MaximumConstraint extends AbstractRangeConstraint |
|
| 20 | { |
|
| 21 | /** |
|
| 22 | * {@inheritdoc} |
|
| 23 | */ |
|
| 24 | public function keywords() |
|
| 25 | { |
|
| 26 | return ['maximum', 'exclusiveMaximum']; |
|
| 27 | } |
|
| 28 | ||
| 29 | /** |
|
| 30 | * {@inheritdoc} |
|
| 31 | */ |
|
| 32 | public function apply($instance, stdClass $schema, Context $context, Walker $walker) |
|
| 33 | { |
|
| 34 | if ($schema->exclusiveMaximum === false) { |
|
| 35 | if ($instance > $schema->maximum) { |
|
| 36 | $context->addViolation('should be lesser than or equal to %s', [$schema->maximum]); |
|
| 37 | } |
|
| 38 | } elseif ($instance >= $schema->maximum) { |
|
| 39 | $context->addViolation('should be lesser than %s', [$schema->maximum]); |
|
| 40 | } |
|
| 41 | } |
|
| 42 | } |
|
| 43 | ||
| @@ 19-42 (lines=24) @@ | ||
| 16 | /** |
|
| 17 | * Constraint for the "minimum" and "exclusiveMinimum" keywords. |
|
| 18 | */ |
|
| 19 | class MinimumConstraint extends AbstractRangeConstraint |
|
| 20 | { |
|
| 21 | /** |
|
| 22 | * {@inheritdoc} |
|
| 23 | */ |
|
| 24 | public function keywords() |
|
| 25 | { |
|
| 26 | return ['minimum', 'exclusiveMinimum']; |
|
| 27 | } |
|
| 28 | ||
| 29 | /** |
|
| 30 | * {@inheritdoc} |
|
| 31 | */ |
|
| 32 | public function apply($instance, stdClass $schema, Context $context, Walker $walker) |
|
| 33 | { |
|
| 34 | if ($schema->exclusiveMinimum === false) { |
|
| 35 | if ($instance < $schema->minimum) { |
|
| 36 | $context->addViolation('should be greater than or equal to %s', [$schema->minimum]); |
|
| 37 | } |
|
| 38 | } elseif ($instance <= $schema->minimum) { |
|
| 39 | $context->addViolation('should be greater than %s', [$schema->minimum]); |
|
| 40 | } |
|
| 41 | } |
|
| 42 | } |
|
| 43 | ||