Exemplo n.º 1
0
 public function walkClass(ClassMetadata $metadata, $object, $group, $propertyPath)
 {
     $this->context->setCurrentClass($metadata->getClassName());
     foreach ($metadata->findConstraints($group) as $constraint) {
         $this->walkConstraint($constraint, $object, $group, $propertyPath);
     }
     if ($object !== null) {
         foreach ($metadata->getConstrainedProperties() as $property) {
             $localPropertyPath = empty($propertyPath) ? $property : $propertyPath . '.' . $property;
             $this->walkProperty($metadata, $property, $object, $group, $localPropertyPath);
         }
     }
 }
Exemplo n.º 2
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->getShortClassName());
             }
             $this->addMemberMetadata($member);
             if (!$member->isPrivate()) {
                 $property = $member->getPropertyName();
                 if ($member instanceof PropertyMetadata && !isset($this->properties[$property])) {
                     $this->properties[$property] = $member;
                 } else {
                     if ($member instanceof GetterMetadata && !isset($this->getters[$property])) {
                         $this->getters[$property] = $member;
                     }
                 }
             }
         }
     }
 }