#!/bin/env php PHK Manager - File: /src/Yaml/Exception/ParseException.php
Package Home

PHK Manager

PHK Home

File: /src/Yaml/Exception/ParseException.php

Size:3432
Storage flags:

<?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\Yaml\Exception;

/**
 * Exception class thrown when an error occurs during parsing.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 *
 * @api
 */
class ParseException extends RuntimeException
{
    private 
$parsedFile;
    private 
$parsedLine;
    private 
$snippet;
    private 
$rawMessage;

    
/**
     * Constructor.
     *
     * @param string     $message    The error message
     * @param int        $parsedLine The line where the error occurred
     * @param int        $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->message0$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 int The file line
     */
    
public function getParsedLine()
    {
        return 
$this->parsedLine;
    }

    
/**
     * Sets the line where the error occurred.
     *
     * @param int $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->message0, -1);
            
$dot true;
        }

        if (
null !== $this->parsedFile) {
            
$this->message .= sprintf(' in %s'json_encode($this->parsedFileJSON_UNESCAPED_SLASHES JSON_UNESCAPED_UNICODE));
        }

        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 .= '.';
        }
    }
}

For more information about the PHK package format: http://phk.tekwire.net