private function RecursiveContextualValidator::stepThroughGroupSequence in Plug 7
Sequentially validates a node's value in each group of a group sequence.
If any of the constraints generates a violation, subsequent groups in the group sequence are skipped.
Parameters
mixed $value The validated value:
object|null $object The current object:
string $cacheKey The key for caching: the validated value
MetadataInterface $metadata The metadata of the: value
string $propertyPath The property path leading: to the value
int $traversalStrategy The strategy used for: traversing the value
GroupSequence $groupSequence The group sequence:
string[]|null $cascadedGroup The group that should: be passed to cascaded objects instead of the group sequence
ExecutionContextInterface $context The execution context:
2 calls to RecursiveContextualValidator::stepThroughGroupSequence()
- RecursiveContextualValidator::validateClassNode in lib/Symfony/ validator/ Symfony/ Component/ Validator/ Validator/ RecursiveContextualValidator.php 
- Validates a class node.
- RecursiveContextualValidator::validateGenericNode in lib/Symfony/ validator/ Symfony/ Component/ Validator/ Validator/ RecursiveContextualValidator.php 
- Validates a node that is not a class node.
File
- lib/Symfony/ validator/ Symfony/ Component/ Validator/ Validator/ RecursiveContextualValidator.php, line 791 
Class
- RecursiveContextualValidator
- Recursive implementation of {@link ContextualValidatorInterface}.
Namespace
Symfony\Component\Validator\ValidatorCode
private function stepThroughGroupSequence($value, $object, $cacheKey, MetadataInterface $metadata = null, $propertyPath, $traversalStrategy, GroupSequence $groupSequence, $cascadedGroup, ExecutionContextInterface $context) {
  $violationCount = count($context
    ->getViolations());
  $cascadedGroups = $cascadedGroup ? array(
    $cascadedGroup,
  ) : null;
  foreach ($groupSequence->groups as $groupInSequence) {
    $groups = array(
      $groupInSequence,
    );
    if ($metadata instanceof ClassMetadataInterface) {
      $this
        ->validateClassNode($value, $cacheKey, $metadata, $propertyPath, $groups, $cascadedGroups, $traversalStrategy, $context);
    }
    else {
      $this
        ->validateGenericNode($value, $object, $cacheKey, $metadata, $propertyPath, $groups, $cascadedGroups, $traversalStrategy, $context);
    }
    // Abort sequence validation if a violation was generated
    if (count($context
      ->getViolations()) > $violationCount) {
      break;
    }
  }
}