Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Constraint.php

class Constraint

Same name in this branch
  1. 11.1.x vendor/phpunit/phpunit/src/Framework/Constraint/Constraint.php \PHPUnit\Framework\Constraint\Constraint
  2. 11.1.x vendor/composer/semver/src/Constraint/Constraint.php \Composer\Semver\Constraint\Constraint
  3. 11.1.x vendor/symfony/validator/Constraint.php \Symfony\Component\Validator\Constraint
  4. 11.1.x core/lib/Drupal/Core/Validation/Annotation/Constraint.php \Drupal\Core\Validation\Annotation\Constraint
  5. 11.1.x core/lib/Drupal/Core/Validation/Attribute/Constraint.php \Drupal\Core\Validation\Attribute\Constraint
  6. 11.1.x core/lib/Drupal/Component/Version/Constraint.php \Drupal\Component\Version\Constraint

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>

Hierarchy

  • class \JsonSchema\Constraints\BaseConstraint
    • class \JsonSchema\Constraints\Constraint extends \JsonSchema\Constraints\BaseConstraint implements \JsonSchema\Constraints\ConstraintInterface

Expanded class hierarchy of Constraint

3 files declare their use of Constraint
ComponentValidator.php in core/lib/Drupal/Core/Theme/Component/ComponentValidator.php
IconPackManager.php in core/lib/Drupal/Core/Theme/Icon/Plugin/IconPackManager.php
Validator.php in vendor/justinrainbow/json-schema/src/JsonSchema/Validator.php
2 string references to 'Constraint'
Problem::getMissingPackageReason in vendor/composer/composer/src/Composer/DependencyResolver/Problem.php
@internal
RuleReasonDataReturnTypeExtension::getTypeFromMethodCall in vendor/composer/composer/src/Composer/PHPStan/RuleReasonDataReturnTypeExtension.php

File

vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/Constraint.php, line 20

Namespace

JsonSchema\Constraints
View source
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), '.');
    }

}

Members

Title Sort descending Modifiers Object type Summary Overrides
BaseConstraint::$errorMask protected property
BaseConstraint::$errors protected property
BaseConstraint::$factory protected property
BaseConstraint::addError public function
BaseConstraint::addErrors public function
BaseConstraint::arrayToObjectRecursive public static function Recursively cast an associative array to an object
BaseConstraint::getErrorMask public function Get the error mask
BaseConstraint::getErrors public function
BaseConstraint::isValid public function
BaseConstraint::numErrors public function
BaseConstraint::reset public function Clears any reported errors. Should be used between
multiple validation checks.
BaseConstraint::__construct public function
Constraint::$inlineSchemaProperty protected property
Constraint::checkArray protected function Validates an array
Constraint::checkEnum protected function Checks a enum element
Constraint::checkFormat protected function Checks format of an element
Constraint::checkNumber protected function Checks a number element
Constraint::checkObject protected function Validates an object
Constraint::checkString protected function Checks a string element
Constraint::checkType protected function Validates the type of a property
Constraint::checkUndefined protected function Checks a undefined element
Constraint::CHECK_MODE_APPLY_DEFAULTS constant
Constraint::CHECK_MODE_COERCE_TYPES constant
Constraint::CHECK_MODE_DISABLE_FORMAT constant
Constraint::CHECK_MODE_EXCEPTIONS constant
Constraint::CHECK_MODE_NONE constant
Constraint::CHECK_MODE_NORMAL constant
Constraint::CHECK_MODE_ONLY_REQUIRED_DEFAULTS constant
Constraint::CHECK_MODE_TYPE_CAST constant
Constraint::CHECK_MODE_VALIDATE_SCHEMA constant
Constraint::convertJsonPointerIntoPropertyPath protected function
Constraint::getTypeCheck protected function Get the type check based on the set check mode.
Constraint::incrementPath protected function Bubble down the path
ConstraintInterface::check public function invokes the validation of an element 9
RSS feed
Powered by Drupal