Example #1
0
 protected function walkClassForGroup(ClassMetadata $metadata, $object, $group, $propertyPath, $propagatedGroup = null)
 {
     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, $propagatedGroup);
         }
     }
 }
Example #2
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);
         }
     }
 }
Example #3
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;
                 }
             }
         }
     }
 }
Example #4
0
 protected function walkObjectForGroup(ClassMetadata $metadata, $object, $group, $propertyPath, $propagatedGroup = null)
 {
     $hash = spl_object_hash($object);
     // Exit, if the object is already validated for the current group
     if (isset($this->validatedObjects[$hash])) {
         if (isset($this->validatedObjects[$hash][$group])) {
             return;
         }
     } else {
         $this->validatedObjects[$hash] = array();
     }
     // Remember validating this object before starting and possibly
     // traversing the object graph
     $this->validatedObjects[$hash][$group] = true;
     foreach ($metadata->findConstraints($group) as $constraint) {
         $this->walkConstraint($constraint, $object, $group, $propertyPath);
     }
     if (null !== $object) {
         foreach ($metadata->getConstrainedProperties() as $property) {
             $localPropertyPath = empty($propertyPath) ? $property : $propertyPath . '.' . $property;
             $this->walkProperty($metadata, $property, $object, $group, $localPropertyPath, $propagatedGroup);
         }
     }
 }
Example #5
0
 /**
  * {@inheritDoc}
  */
 public function getConstrainedProperties()
 {
     return $this->validatorClassMetadata->getConstrainedProperties();
 }