From 81d5c2a6464771c9a180d0214706a2f65f0b1d18 Mon Sep 17 00:00:00 2001 From: josselin Date: Mon, 25 Jan 2016 22:08:02 +0100 Subject: Added php-opencloud/openstack as SubModule --- .../src/JsonSchema/Constraints/Factory.php | 63 +++++++++++++--------- .../JsonSchema/Constraints/NumberConstraint.php | 8 +-- 2 files changed, 43 insertions(+), 28 deletions(-) (limited to 'server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints') 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,10 +19,27 @@ 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 */ @@ -43,6 +60,25 @@ class Factory return $this->uriRetriever; } + /** + * @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. * @@ -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,)); } -- cgit v1.2.3