2015-08-18 00:00:26 +00:00
< ? php
/*
* This file is part of the Symfony package .
*
* ( c ) Fabien Potencier < fabien @ symfony . com >
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Symfony\Component\Validator\Violation ;
2015-08-27 19:03:05 +00:00
@ trigger_error ( 'The ' . __NAMESPACE__ . '\LegacyConstraintViolationBuilder class is deprecated since version 2.5 and will be removed in 3.0.' , E_USER_DEPRECATED );
2015-08-18 00:00:26 +00:00
use Symfony\Component\Validator\ExecutionContextInterface ;
/**
* Backwards - compatible implementation of { @ link ConstraintViolationBuilderInterface } .
*
* @ author Bernhard Schussek < bschussek @ gmail . com >
*
* @ 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 );
}
}