public function RecursiveContextualValidator::validatePropertyValue

public RecursiveContextualValidator::validatePropertyValue($object, $property_name, $value, $groups = NULL)

Validates a value against the constraints specified for an object's property.

Parameters

object|string $objectOrClass The object or its class name:

string $propertyName The name of the property:

mixed $value The value to validate against the: property's constraints

array|null $groups The validation groups to validate. If: none is given, "Default" is assumed

Return value

ContextualValidatorInterface This validator

Overrides ContextualValidatorInterface::validatePropertyValue

File

core/lib/Drupal/Core/TypedData/Validation/RecursiveContextualValidator.php, line 218

Class

RecursiveContextualValidator
Defines a recursive contextual validator for Typed Data.

Namespace

Drupal\Core\TypedData\Validation

Code

public function validatePropertyValue($object, $property_name, $value, $groups = NULL) {
  if (!is_object($object)) {
    throw new \InvalidArgumentException('Passing class name is not supported.');
  }
  elseif (!$object instanceof TypedDataInterface) {
    throw new \InvalidArgumentException('The passed in object has to be typed data.');
  }
  elseif (!$object instanceof ListInterface && !$object instanceof ComplexDataInterface) {
    throw new \InvalidArgumentException('Passed data does not contain properties.');
  }
  $data = $object->get($property_name);
  $metadata = $this->metadataFactory->getMetadataFor($data);
  $constraints = $metadata->findConstraints(Constraint::DEFAULT_GROUP);
  return $this->validate($value, $constraints, $groups, TRUE);
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!TypedData!Validation!RecursiveContextualValidator.php/function/RecursiveContextualValidator::validatePropertyValue/8.1.x