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 ;
/**
* Default implementation of { @ ConstraintViolationInterface } .
*
* @ author Bernhard Schussek < bschussek @ gmail . com >
*/
class ConstraintViolation implements ConstraintViolationInterface
{
/**
* @ var string
*/
private $message ;
/**
* @ var string
*/
private $messageTemplate ;
/**
* @ var array
*/
private $parameters ;
/**
* @ var int | null
*/
private $plural ;
/**
* @ var mixed
*/
private $root ;
/**
* @ var string
*/
private $propertyPath ;
/**
* @ var mixed
*/
private $invalidValue ;
/**
* @ var Constraint | null
*/
private $constraint ;
/**
* @ var mixed
*/
private $code ;
/**
* @ var mixed
*/
private $cause ;
/**
* Creates a new constraint violation .
*
* @ param string $message The violation message
* @ param string $messageTemplate The raw violation message
* @ param array $parameters The parameters to substitute in the
* raw violation message
* @ param mixed $root The value originally passed to the
* validator
* @ param string $propertyPath The property path from the root
* value to the invalid value
* @ param mixed $invalidValue The invalid value that caused this
* violation
* @ param int | null $plural The number for determining the plural
* form when translating the message
* @ param mixed $code The error code of the violation
* @ param Constraint | null $constraint The constraint whose validation
* caused the violation
* @ param mixed $cause The cause of the violation
*/
public function __construct ( $message , $messageTemplate , array $parameters , $root , $propertyPath , $invalidValue , $plural = null , $code = null , Constraint $constraint = null , $cause = null )
{
$this -> message = $message ;
$this -> messageTemplate = $messageTemplate ;
$this -> parameters = $parameters ;
$this -> plural = $plural ;
$this -> root = $root ;
$this -> propertyPath = $propertyPath ;
$this -> invalidValue = $invalidValue ;
$this -> constraint = $constraint ;
$this -> code = $code ;
$this -> cause = $cause ;
}
/**
* Converts the violation into a string for debugging purposes .
*
* @ return string The violation as string .
*/
public function __toString ()
{
if ( is_object ( $this -> root )) {
$class = 'Object(' . get_class ( $this -> root ) . ')' ;
} elseif ( is_array ( $this -> root )) {
$class = 'Array' ;
} else {
$class = ( string ) $this -> root ;
}
$propertyPath = ( string ) $this -> propertyPath ;
$code = $this -> code ;
if ( '' !== $propertyPath && '[' !== $propertyPath [ 0 ] && '' !== $class ) {
$class .= '.' ;
}
if ( ! empty ( $code )) {
$code = ' (code ' . $code . ')' ;
}
return $class . $propertyPath . " : \n " . $this -> getMessage () . $code ;
}
/**
* { @ inheritdoc }
*/
public function getMessageTemplate ()
{
return $this -> messageTemplate ;
}
/**
* { @ inheritdoc }
*
* @ deprecated since version 2.7 , to be removed in 3.0 .
* Use getParameters () instead
*/
public function getMessageParameters ()
{
2015-08-27 19:03:05 +00:00
@ trigger_error ( 'The ' . __METHOD__ . ' method is deprecated since version 2.7, to be removed in 3.0. Use the ConstraintViolation::getParameters() method instead.' , E_USER_DEPRECATED );
2015-08-18 00:00:26 +00:00
return $this -> parameters ;
}
/**
* Alias of { @ link getMessageParameters ()} .
*/
public function getParameters ()
{
return $this -> parameters ;
}
/**
* { @ inheritdoc }
*
* @ deprecated since version 2.7 , to be removed in 3.0 .
* Use getPlural () instead
*/
public function getMessagePluralization ()
{
2015-08-27 19:03:05 +00:00
@ trigger_error ( 'The ' . __METHOD__ . ' method is deprecated since version 2.7, to be removed in 3.0. Use the ConstraintViolation::getPlural() method instead.' , E_USER_DEPRECATED );
2015-08-18 00:00:26 +00:00
return $this -> plural ;
}
/**
* Alias of { @ link getMessagePluralization ()} .
*/
public function getPlural ()
{
return $this -> plural ;
}
/**
* { @ inheritdoc }
*/
public function getMessage ()
{
return $this -> message ;
}
/**
* { @ inheritdoc }
*/
public function getRoot ()
{
return $this -> root ;
}
/**
* { @ inheritdoc }
*/
public function getPropertyPath ()
{
return $this -> propertyPath ;
}
/**
* { @ inheritdoc }
*/
public function getInvalidValue ()
{
return $this -> invalidValue ;
}
/**
* Returns the constraint whose validation caused the violation .
*
* @ return Constraint | null The constraint or null if it is not known
*/
public function getConstraint ()
{
return $this -> constraint ;
}
/**
* Returns the cause of the violation .
*
* @ return mixed
*/
public function getCause ()
{
return $this -> cause ;
}
/**
* { @ inheritdoc }
*/
public function getCode ()
{
return $this -> code ;
}
}