diff options
| author | ArnaudVOTA <arnaud.vota@gmail.com> | 2016-01-27 11:04:02 +0100 |
|---|---|---|
| committer | ArnaudVOTA <arnaud.vota@gmail.com> | 2016-01-27 11:04:02 +0100 |
| commit | b10e4679e0f0316bfe24098a84db040dcfc8d38f (patch) | |
| tree | 3bdc7cb4b721a870eb9bab9696326071b1388ce6 /server/vendor/justinrainbow/json-schema/src/JsonSchema | |
| parent | 5466ce78f00038e742ef2a108c755f57ede451f5 (diff) | |
| parent | 81d5c2a6464771c9a180d0214706a2f65f0b1d18 (diff) | |
Merge remote-tracking branch 'refs/remotes/origin/master' into vota_overlay
Diffstat (limited to 'server/vendor/justinrainbow/json-schema/src/JsonSchema')
| -rw-r--r-- | server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/Factory.php | 63 | ||||
| -rw-r--r-- | server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/NumberConstraint.php | 8 |
2 files changed, 43 insertions, 28 deletions
diff --git a/server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/Factory.php b/server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/Factory.php index a4570f6..8cd25c1 100644 --- a/server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/Factory.php +++ b/server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/Factory.php @@ -19,11 +19,28 @@ use JsonSchema\Validator; class Factory { /** - * @var UriRetriever + * @var UriRetriever $uriRetriever */ protected $uriRetriever; /** + * @var array $constraintMap + */ + protected $constraintMap = array( + 'array' => 'JsonSchema\Constraints\CollectionConstraint', + 'collection' => 'JsonSchema\Constraints\CollectionConstraint', + 'object' => 'JsonSchema\Constraints\ObjectConstraint', + 'type' => 'JsonSchema\Constraints\TypeConstraint', + 'undefined' => 'JsonSchema\Constraints\UndefinedConstraint', + 'string' => 'JsonSchema\Constraints\StringConstraint', + 'number' => 'JsonSchema\Constraints\NumberConstraint', + 'enum' => 'JsonSchema\Constraints\EnumConstraint', + 'format' => 'JsonSchema\Constraints\FormatConstraint', + 'schema' => 'JsonSchema\Constraints\SchemaConstraint', + 'validator' => 'JsonSchema\Validator', + ); + + /** * @param UriRetriever $uriRetriever */ public function __construct(UriRetriever $uriRetriever = null) @@ -44,6 +61,25 @@ class Factory } /** + * @param string $name + * @param string $class + * @return Factory + */ + public function setConstraintClass($name, $class) + { + // Ensure class exists + if (!class_exists($class)) { + throw new InvalidArgumentException('Unknown constraint ' . $name); + } + // Ensure class is appropriate + if (!in_array('JsonSchema\Constraints\ConstraintInterface', class_implements($class))) { + throw new InvalidArgumentException('Invalid class ' . $name); + } + $this->constraintMap[$name] = $class; + return $this; + } + + /** * Create a constraint instance for the given constraint name. * * @param string $constraintName @@ -52,30 +88,9 @@ class Factory */ public function createInstanceFor($constraintName) { - switch ($constraintName) { - case 'array': - case 'collection': - return new CollectionConstraint(Constraint::CHECK_MODE_NORMAL, $this->uriRetriever, $this); - case 'object': - return new ObjectConstraint(Constraint::CHECK_MODE_NORMAL, $this->uriRetriever, $this); - case 'type': - return new TypeConstraint(Constraint::CHECK_MODE_NORMAL, $this->uriRetriever, $this); - case 'undefined': - return new UndefinedConstraint(Constraint::CHECK_MODE_NORMAL, $this->uriRetriever, $this); - case 'string': - return new StringConstraint(Constraint::CHECK_MODE_NORMAL, $this->uriRetriever, $this); - case 'number': - return new NumberConstraint(Constraint::CHECK_MODE_NORMAL, $this->uriRetriever, $this); - case 'enum': - return new EnumConstraint(Constraint::CHECK_MODE_NORMAL, $this->uriRetriever, $this); - case 'format': - return new FormatConstraint(Constraint::CHECK_MODE_NORMAL, $this->uriRetriever, $this); - case 'schema': - return new SchemaConstraint(Constraint::CHECK_MODE_NORMAL, $this->uriRetriever, $this); - case 'validator': - return new Validator(Constraint::CHECK_MODE_NORMAL, $this->uriRetriever, $this); + if (array_key_exists($constraintName, $this->constraintMap)) { + return new $this->constraintMap[$constraintName](Constraint::CHECK_MODE_NORMAL, $this->uriRetriever, $this); } - throw new InvalidArgumentException('Unknown constraint ' . $constraintName); } } diff --git a/server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/NumberConstraint.php b/server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/NumberConstraint.php index 0a34bdc..c5aaf6a 100644 --- a/server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/NumberConstraint.php +++ b/server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/NumberConstraint.php @@ -25,8 +25,8 @@ class NumberConstraint extends Constraint // Verify minimum if (isset($schema->exclusiveMinimum)) { if (isset($schema->minimum)) { - if ($schema->exclusiveMinimum && $element === $schema->minimum) { - $this->addError($path, "Must have a minimum value greater than boundary value of " . $schema->minimum, 'exclusiveMinimum', array('minimum' => $schema->minimum,)); + if ($schema->exclusiveMinimum && $element <= $schema->minimum) { + $this->addError($path, "Must have a minimum value of " . $schema->minimum, 'exclusiveMinimum', array('minimum' => $schema->minimum,)); } else if ($element < $schema->minimum) { $this->addError($path, "Must have a minimum value of " . $schema->minimum, 'minimum', array('minimum' => $schema->minimum,)); } @@ -40,8 +40,8 @@ class NumberConstraint extends Constraint // Verify maximum if (isset($schema->exclusiveMaximum)) { if (isset($schema->maximum)) { - if ($schema->exclusiveMaximum && $element === $schema->maximum) { - $this->addError($path, "Must have a maximum value less than boundary value of " . $schema->maximum, 'exclusiveMaximum', array('maximum' => $schema->maximum,)); + if ($schema->exclusiveMaximum && $element >= $schema->maximum) { + $this->addError($path, "Must have a maximum value of " . $schema->maximum, 'exclusiveMaximum', array('maximum' => $schema->maximum,)); } else if ($element > $schema->maximum) { $this->addError($path, "Must have a maximum value of " . $schema->maximum, 'maximum', array('maximum' => $schema->maximum,)); } |
