public function ClassMetadata::mergeConstraints

Merges the constraints of the given metadata into this object.

Parameters

ClassMetadata $source The source metadata:

File

drupal/core/vendor/symfony/validator/Symfony/Component/Validator/Mapping/ClassMetadata.php, line 239

Class

ClassMetadata
Represents all the configured constraints on a given class.

Namespace

Symfony\Component\Validator\Mapping

Code

public function mergeConstraints(ClassMetadata $source) {
  foreach ($source
    ->getConstraints() as $constraint) {
    $this
      ->addConstraint(clone $constraint);
  }
  foreach ($source
    ->getConstrainedProperties() as $property) {
    foreach ($source
      ->getMemberMetadatas($property) as $member) {
      $member = clone $member;
      foreach ($member
        ->getConstraints() as $constraint) {
        $constraint
          ->addImplicitGroupName($this
          ->getDefaultGroup());
      }
      $this
        ->addMemberMetadata($member);
      if (!$member
        ->isPrivate($this->name)) {
        $property = $member
          ->getPropertyName();
        if ($member instanceof PropertyMetadata && !isset($this->properties[$property])) {
          $this->properties[$property] = $member;
        }
        elseif ($member instanceof GetterMetadata && !isset($this->getters[$property])) {
          $this->getters[$property] = $member;
        }
      }
    }
  }
}