You are here

ConstraintViolation.php in Zircon Profile 8

Same filename and directory in other branches
  1. 8.0 vendor/symfony/validator/ConstraintViolation.php

File

vendor/symfony/validator/ConstraintViolation.php
View source
<?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() {
    @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);
    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() {
    @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);
    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;
  }

}

Classes

Namesort descending Description
ConstraintViolation Default implementation of {@ConstraintViolationInterface}.