* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Validator\Violation; @trigger_error('The '.__NAMESPACE__.'\LegacyConstraintViolationBuilder class is deprecated since version 2.5 and will be removed in 3.0.', E_USER_DEPRECATED); use Symfony\Component\Validator\ExecutionContextInterface; /** * Backwards-compatible implementation of {@link ConstraintViolationBuilderInterface}. * * @author Bernhard Schussek * * @internal You should not instantiate or use this class. Code against * {@link ConstraintViolationBuilderInterface} instead. * * @deprecated since version 2.5.5, to be removed in 3.0. */ class LegacyConstraintViolationBuilder implements ConstraintViolationBuilderInterface { /** * @var ExecutionContextInterface */ private $context; /** * @var string */ private $message; /** * @var array */ private $parameters; /** * @var mixed */ private $invalidValue; /** * @var string */ private $propertyPath; /** * @var int|null */ private $plural; /** * @var mixed */ private $code; public function __construct(ExecutionContextInterface $context, $message, array $parameters) { $this->context = $context; $this->message = $message; $this->parameters = $parameters; $this->invalidValue = $context->getValue(); } /** * {@inheritdoc} */ public function atPath($path) { $this->propertyPath = $path; return $this; } /** * {@inheritdoc} */ public function setParameter($key, $value) { $this->parameters[$key] = $value; return $this; } /** * {@inheritdoc} */ public function setParameters(array $parameters) { $this->parameters = $parameters; return $this; } /** * {@inheritdoc} */ public function setTranslationDomain($translationDomain) { // can't be set in the old API return $this; } /** * {@inheritdoc} */ public function setInvalidValue($invalidValue) { $this->invalidValue = $invalidValue; return $this; } /** * {@inheritdoc} */ public function setPlural($number) { $this->plural = $number; return $this; } /** * {@inheritdoc} */ public function setCode($code) { $this->code = $code; return $this; } /** * {@inheritdoc} */ public function setCause($cause) { // do nothing - we can't save the cause through the old API return $this; } /** * {@inheritdoc} */ public function addViolation() { if ($this->propertyPath) { $this->context->addViolationAt($this->propertyPath, $this->message, $this->parameters, $this->invalidValue, $this->plural, $this->code); return; } $this->context->addViolation($this->message, $this->parameters, $this->invalidValue, $this->plural, $this->code); } }