diff options
| author | Loic GUEGAN <loic@Manzerbredes.home> | 2016-04-16 19:10:27 +0200 |
|---|---|---|
| committer | Loic GUEGAN <loic@Manzerbredes.home> | 2016-04-16 19:10:27 +0200 |
| commit | a3ff4d243e2ac37d4516ae56ff86985eadc00eb8 (patch) | |
| tree | 32e71c42855cc46d95d9c6b74ad2c145eb9ec7eb /server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/CollectionConstraint.php | |
| parent | 396c90f921c30de2d15d2ce52d5d1beabf8eb52d (diff) | |
| parent | 31d2d0c158ad4daa3dde7a905f3c2e312c194f2e (diff) | |
Test
Diffstat (limited to 'server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/CollectionConstraint.php')
| -rwxr-xr-x | server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/CollectionConstraint.php | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/CollectionConstraint.php b/server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/CollectionConstraint.php deleted file mode 100755 index b43bace..0000000 --- a/server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/CollectionConstraint.php +++ /dev/null @@ -1,112 +0,0 @@ -<?php - -/* - * This file is part of the JsonSchema package. - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace JsonSchema\Constraints; - -/** - * The CollectionConstraint Constraints, validates an array against a given schema - * - * @author Robert Schönthal <seroscho@googlemail.com> - * @author Bruno Prieto Reis <bruno.p.reis@gmail.com> - */ -class CollectionConstraint extends Constraint -{ - /** - * {@inheritDoc} - */ - public function check($value, $schema = null, $path = null, $i = null) - { - // Verify minItems - if (isset($schema->minItems) && count($value) < $schema->minItems) { - $this->addError($path, "There must be a minimum of " . $schema->minItems . " items in the array", 'minItems', array('minItems' => $schema->minItems,)); - } - - // Verify maxItems - if (isset($schema->maxItems) && count($value) > $schema->maxItems) { - $this->addError($path, "There must be a maximum of " . $schema->maxItems . " items in the array", 'maxItems', array('maxItems' => $schema->maxItems,)); - } - - // Verify uniqueItems - if (isset($schema->uniqueItems) && $schema->uniqueItems) { - $unique = $value; - if (is_array($value) && count($value)) { - $unique = array_map(function($e) { return var_export($e, true); }, $value); - } - if (count(array_unique($unique)) != count($value)) { - $this->addError($path, "There are no duplicates allowed in the array", 'uniqueItems'); - } - } - - // Verify items - if (isset($schema->items)) { - $this->validateItems($value, $schema, $path, $i); - } - } - - /** - * Validates the items - * - * @param array $value - * @param \stdClass $schema - * @param string $path - * @param string $i - */ - protected function validateItems($value, $schema = null, $path = null, $i = null) - { - if (is_object($schema->items)) { - // just one type definition for the whole array - foreach ($value as $k => $v) { - $initErrors = $this->getErrors(); - - // First check if its defined in "items" - $this->checkUndefined($v, $schema->items, $path, $k); - - // Recheck with "additionalItems" if the first test fails - if (count($initErrors) < count($this->getErrors()) && (isset($schema->additionalItems) && $schema->additionalItems !== false)) { - $secondErrors = $this->getErrors(); - $this->checkUndefined($v, $schema->additionalItems, $path, $k); - } - - // Reset errors if needed - if (isset($secondErrors) && count($secondErrors) < count($this->getErrors())) { - $this->errors = $secondErrors; - } else if (isset($secondErrors) && count($secondErrors) === count($this->getErrors())) { - $this->errors = $initErrors; - } - } - } else { - // Defined item type definitions - foreach ($value as $k => $v) { - if (array_key_exists($k, $schema->items)) { - $this->checkUndefined($v, $schema->items[$k], $path, $k); - } else { - // Additional items - if (property_exists($schema, 'additionalItems')) { - if ($schema->additionalItems !== false) { - $this->checkUndefined($v, $schema->additionalItems, $path, $k); - } else { - $this->addError( - $path, 'The item ' . $i . '[' . $k . '] is not defined and the definition does not allow additional items', 'additionalItems', array('additionalItems' => $schema->additionalItems,)); - } - } else { - // Should be valid against an empty schema - $this->checkUndefined($v, new \stdClass(), $path, $k); - } - } - } - - // Treat when we have more schema definitions than values, not for empty arrays - if(count($value) > 0) { - for ($k = count($value); $k < count($schema->items); $k++) { - $this->checkUndefined(new UndefinedConstraint(), $schema->items[$k], $path, $k); - } - } - } - } -} |
