Constraint.php
Same filename in this branch
- 11.1.x vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php
- 11.1.x vendor/composer/semver/src/Constraint/Constraint.php
- 11.1.x vendor/symfony/validator/Constraint.php
- 11.1.x core/lib/Drupal/Core/Validation/Annotation/Constraint.php
- 11.1.x core/lib/Drupal/Core/Validation/Attribute/Constraint.php
- 11.1.x core/lib/Drupal/Component/Version/Constraint.php
Namespace
JsonSchema\ConstraintsFile
-
vendor/
justinrainbow/ json-schema/ src/ JsonSchema/ Constraints/ Constraint.php
View source
<?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;
use JsonSchema\Entity\JsonPointer;
/**
* The Base Constraints, all Validators should extend this class
*
* @author Robert Schönthal <seroscho@googlemail.com>
* @author Bruno Prieto Reis <bruno.p.reis@gmail.com>
*/
abstract class Constraint extends BaseConstraint implements ConstraintInterface {
protected $inlineSchemaProperty = '$schema';
const CHECK_MODE_NONE = 0x0;
const CHECK_MODE_NORMAL = 0x1;
const CHECK_MODE_TYPE_CAST = 0x2;
const CHECK_MODE_COERCE_TYPES = 0x4;
const CHECK_MODE_APPLY_DEFAULTS = 0x8;
const CHECK_MODE_EXCEPTIONS = 0x10;
const CHECK_MODE_DISABLE_FORMAT = 0x20;
const CHECK_MODE_ONLY_REQUIRED_DEFAULTS = 0x80;
const CHECK_MODE_VALIDATE_SCHEMA = 0x100;
/**
* Bubble down the path
*
* @param JsonPointer|null $path Current path
* @param mixed $i What to append to the path
*
* @return JsonPointer;
*/
protected function incrementPath(?JsonPointer $path, $i) {
$path = $path ?: new JsonPointer('');
if ($i === null || $i === '') {
return $path;
}
$path = $path->withPropertyPaths(array_merge($path->getPropertyPaths(), array(
$i,
)));
return $path;
}
/**
* Validates an array
*
* @param mixed $value
* @param mixed $schema
* @param JsonPointer|null $path
* @param mixed $i
*/
protected function checkArray(&$value, $schema = null, ?JsonPointer $path = null, $i = null) {
$validator = $this->factory
->createInstanceFor('collection');
$validator->check($value, $schema, $path, $i);
$this->addErrors($validator->getErrors());
}
/**
* Validates an object
*
* @param mixed $value
* @param mixed $schema
* @param JsonPointer|null $path
* @param mixed $properties
* @param mixed $additionalProperties
* @param mixed $patternProperties
*/
protected function checkObject(&$value, $schema = null, ?JsonPointer $path = null, $properties = null, $additionalProperties = null, $patternProperties = null, $appliedDefaults = array()) {
$validator = $this->factory
->createInstanceFor('object');
$validator->check($value, $schema, $path, $properties, $additionalProperties, $patternProperties, $appliedDefaults);
$this->addErrors($validator->getErrors());
}
/**
* Validates the type of a property
*
* @param mixed $value
* @param mixed $schema
* @param JsonPointer|null $path
* @param mixed $i
*/
protected function checkType(&$value, $schema = null, ?JsonPointer $path = null, $i = null) {
$validator = $this->factory
->createInstanceFor('type');
$validator->check($value, $schema, $path, $i);
$this->addErrors($validator->getErrors());
}
/**
* Checks a undefined element
*
* @param mixed $value
* @param mixed $schema
* @param JsonPointer|null $path
* @param mixed $i
*/
protected function checkUndefined(&$value, $schema = null, ?JsonPointer $path = null, $i = null, $fromDefault = false) {
$validator = $this->factory
->createInstanceFor('undefined');
$validator->check($value, $this->factory
->getSchemaStorage()
->resolveRefSchema($schema), $path, $i, $fromDefault);
$this->addErrors($validator->getErrors());
}
/**
* Checks a string element
*
* @param mixed $value
* @param mixed $schema
* @param JsonPointer|null $path
* @param mixed $i
*/
protected function checkString($value, $schema = null, ?JsonPointer $path = null, $i = null) {
$validator = $this->factory
->createInstanceFor('string');
$validator->check($value, $schema, $path, $i);
$this->addErrors($validator->getErrors());
}
/**
* Checks a number element
*
* @param mixed $value
* @param mixed $schema
* @param JsonPointer $path
* @param mixed $i
*/
protected function checkNumber($value, $schema = null, ?JsonPointer $path = null, $i = null) {
$validator = $this->factory
->createInstanceFor('number');
$validator->check($value, $schema, $path, $i);
$this->addErrors($validator->getErrors());
}
/**
* Checks a enum element
*
* @param mixed $value
* @param mixed $schema
* @param JsonPointer|null $path
* @param mixed $i
*/
protected function checkEnum($value, $schema = null, ?JsonPointer $path = null, $i = null) {
$validator = $this->factory
->createInstanceFor('enum');
$validator->check($value, $schema, $path, $i);
$this->addErrors($validator->getErrors());
}
/**
* Checks format of an element
*
* @param mixed $value
* @param mixed $schema
* @param JsonPointer|null $path
* @param mixed $i
*/
protected function checkFormat($value, $schema = null, ?JsonPointer $path = null, $i = null) {
$validator = $this->factory
->createInstanceFor('format');
$validator->check($value, $schema, $path, $i);
$this->addErrors($validator->getErrors());
}
/**
* Get the type check based on the set check mode.
*
* @return TypeCheck\TypeCheckInterface
*/
protected function getTypeCheck() {
return $this->factory
->getTypeCheck();
}
/**
* @param JsonPointer $pointer
*
* @return string property path
*/
protected function convertJsonPointerIntoPropertyPath(JsonPointer $pointer) {
$result = array_map(function ($path) {
return sprintf(is_numeric($path) ? '[%d]' : '.%s', $path);
}, $pointer->getPropertyPaths());
return trim(implode('', $result), '.');
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
Constraint | The Base Constraints, all Validators should extend this class |