Example #1
0
    /**
     * Initialize validation on the given object using the given metadata
     * instance and validation group.
     *
     * @param ClassMetadata $metadata
     * @param object        $object       The object to validate
     * @param string        $group        The validator group to use for validation
     * @param string        $propertyPath
     */
    public function walkObject(ClassMetadata $metadata, $object, $group, $propertyPath)
    {
        foreach ($this->validatorInitializers as $initializer) {
            if (!$initializer instanceof ObjectInitializerInterface) {
                throw new \LogicException('Validator initializers must implement ObjectInitializerInterface.');
            }
            $initializer->initialize($object);
        }

        if ($group === Constraint::DEFAULT_GROUP && ($metadata->hasGroupSequence() || $metadata->isGroupSequenceProvider())) {
            if ($metadata->hasGroupSequence()) {
                $groups = $metadata->getGroupSequence();
            } else {
                $groups = $object->getGroupSequence();
            }

            foreach ($groups as $group) {
                $this->walkObjectForGroup($metadata, $object, $group, $propertyPath, Constraint::DEFAULT_GROUP);

                if (count($this->getViolations()) > 0) {
                    break;
                }
            }
        } else {
            $this->walkObjectForGroup($metadata, $object, $group, $propertyPath);
        }
    }
Example #2
0
 /**
  * Initialize validation on the given object using the given metadata
  * instance and validation group.
  *
  * @param ClassMetadata $metadata
  * @param object        $object       The object to validate
  * @param string        $group        The validator group to use for validation
  * @param string        $propertyPath
  */
 public function walkObject(ClassMetadata $metadata, $object, $group, $propertyPath)
 {
     $this->context->setCurrentClass($metadata->getClassName());
     if ($group === Constraint::DEFAULT_GROUP && $metadata->hasGroupSequence()) {
         $groups = $metadata->getGroupSequence();
         foreach ($groups as $group) {
             $this->walkObjectForGroup($metadata, $object, $group, $propertyPath, Constraint::DEFAULT_GROUP);
             if (count($this->getViolations()) > 0) {
                 break;
             }
         }
     } else {
         $this->walkObjectForGroup($metadata, $object, $group, $propertyPath);
     }
 }
Example #3
0
 protected function buildGroupChain(ClassMetadata $metadata, $groups)
 {
     if (is_null($groups)) {
         $groups = array(Constraint::DEFAULT_GROUP);
     } else {
         $groups = (array) $groups;
     }
     $chain = new GroupChain();
     foreach ($groups as $group) {
         if ($group == Constraint::DEFAULT_GROUP && $metadata->hasGroupSequence()) {
             $chain->addGroupSequence($metadata->getGroupSequence());
         } else {
             $chain->addGroup($group);
         }
     }
     return $chain;
 }