/** * 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); } }
/** * 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); } }
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; }