You are here

public function RecursiveContextualValidator::validatePropertyValue in Drupal 8

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/TypedData/Validation/RecursiveContextualValidator.php \Drupal\Core\TypedData\Validation\RecursiveContextualValidator::validatePropertyValue()

File

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

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);
}