class ParseException

Exception class thrown when an error occurs during parsing.

@author Fabien Potencier <fabien@symfony.com>

@api

Hierarchy

Expanded class hierarchy of ParseException

4 files declare their use of ParseException
Inline.php in drupal/core/vendor/symfony/yaml/Symfony/Component/Yaml/Inline.php
Parser.php in drupal/core/vendor/symfony/yaml/Symfony/Component/Yaml/Parser.php
ParserTest.php in drupal/core/vendor/symfony/yaml/Symfony/Component/Yaml/Tests/ParserTest.php
Yaml.php in drupal/core/vendor/symfony/yaml/Symfony/Component/Yaml/Yaml.php

File

drupal/core/vendor/symfony/yaml/Symfony/Component/Yaml/Exception/ParseException.php, line 21

Namespace

Symfony\Component\Yaml\Exception
View source
class ParseException extends \RuntimeException implements ExceptionInterface {
  private $parsedFile;
  private $parsedLine;
  private $snippet;
  private $rawMessage;

  /**
   * Constructor.
   *
   * @param string    $message    The error message
   * @param integer   $parsedLine The line where the error occurred
   * @param integer   $snippet    The snippet of code near the problem
   * @param string    $parsedFile The file name where the error occurred
   * @param Exception $previous   The previous exception
   */
  public function __construct($message, $parsedLine = -1, $snippet = null, $parsedFile = null, Exception $previous = null) {
    $this->parsedFile = $parsedFile;
    $this->parsedLine = $parsedLine;
    $this->snippet = $snippet;
    $this->rawMessage = $message;
    $this
      ->updateRepr();
    parent::__construct($this->message, 0, $previous);
  }

  /**
   * Gets the snippet of code near the error.
   *
   * @return string The snippet of code
   */
  public function getSnippet() {
    return $this->snippet;
  }

  /**
   * Sets the snippet of code near the error.
   *
   * @param string $snippet The code snippet
   */
  public function setSnippet($snippet) {
    $this->snippet = $snippet;
    $this
      ->updateRepr();
  }

  /**
   * Gets the filename where the error occurred.
   *
   * This method returns null if a string is parsed.
   *
   * @return string The filename
   */
  public function getParsedFile() {
    return $this->parsedFile;
  }

  /**
   * Sets the filename where the error occurred.
   *
   * @param string $parsedFile The filename
   */
  public function setParsedFile($parsedFile) {
    $this->parsedFile = $parsedFile;
    $this
      ->updateRepr();
  }

  /**
   * Gets the line where the error occurred.
   *
   * @return integer The file line
   */
  public function getParsedLine() {
    return $this->parsedLine;
  }

  /**
   * Sets the line where the error occurred.
   *
   * @param integer $parsedLine The file line
   */
  public function setParsedLine($parsedLine) {
    $this->parsedLine = $parsedLine;
    $this
      ->updateRepr();
  }
  private function updateRepr() {
    $this->message = $this->rawMessage;
    $dot = false;
    if ('.' === substr($this->message, -1)) {
      $this->message = substr($this->message, 0, -1);
      $dot = true;
    }
    if (null !== $this->parsedFile) {
      $this->message .= sprintf(' in %s', json_encode($this->parsedFile));
    }
    if ($this->parsedLine >= 0) {
      $this->message .= sprintf(' at line %d', $this->parsedLine);
    }
    if ($this->snippet) {
      $this->message .= sprintf(' (near "%s")', $this->snippet);
    }
    if ($dot) {
      $this->message .= '.';
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ParseException::$parsedFile private property
ParseException::$parsedLine private property
ParseException::$rawMessage private property
ParseException::$snippet private property
ParseException::getParsedFile public function Gets the filename where the error occurred.
ParseException::getParsedLine public function Gets the line where the error occurred.
ParseException::getSnippet public function Gets the snippet of code near the error.
ParseException::setParsedFile public function Sets the filename where the error occurred.
ParseException::setParsedLine public function Sets the line where the error occurred.
ParseException::setSnippet public function Sets the snippet of code near the error.
ParseException::updateRepr private function
ParseException::__construct public function Constructor.