* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Validator\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; /** * @author Maxime Steinhausser */ class SequentiallyValidator extends ConstraintValidator { /** * {@inheritdoc} */ public function validate(mixed $value, Constraint $constraint) { if (!$constraint instanceof Sequentially) { throw new UnexpectedTypeException($constraint, Sequentially::class); } $context = $this->context; $validator = $context->getValidator()->inContext($context); $originalCount = $validator->getViolations()->count(); foreach ($constraint->constraints as $c) { if ($originalCount !== $validator->validate($value, $c)->getViolations()->count()) { break; } } } }