Example #1
0
 /**
  * Merges the constraints of the given metadata into this object.
  *
  * @param ClassMetadata $source The source metadata
  */
 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;
                 }
             }
         }
     }
 }