Current File : /var/www/prestashop/modules/ps_metrics/vendor/friendsofphp/php-cs-fixer/src/DocBlock/Line.php |
<?php
declare (strict_types=1);
/*
* This file is part of PHP CS Fixer.
*
* (c) Fabien Potencier <fabien@symfony.com>
* Dariusz Rumiński <dariusz.ruminski@gmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace ps_metrics_module_v4_0_6\PhpCsFixer\DocBlock;
use ps_metrics_module_v4_0_6\PhpCsFixer\Preg;
/**
* This represents a line of a docblock.
*
* @author Graham Campbell <hello@gjcampbell.co.uk>
*/
final class Line
{
/**
* The content of this line.
*
* @var string
*/
private $content;
/**
* Create a new line instance.
*/
public function __construct(string $content)
{
$this->content = $content;
}
/**
* Get the string representation of object.
*/
public function __toString() : string
{
return $this->content;
}
/**
* Get the content of this line.
*/
public function getContent() : string
{
return $this->content;
}
/**
* Does this line contain useful content?
*
* If the line contains text or tags, then this is true.
*/
public function containsUsefulContent() : bool
{
return 0 !== Preg::match('/\\*\\s*\\S+/', $this->content) && '' !== \trim(\str_replace(['/', '*'], ' ', $this->content));
}
/**
* Does the line contain a tag?
*
* If this is true, then it must be the first line of an annotation.
*/
public function containsATag() : bool
{
return 0 !== Preg::match('/\\*\\s*@/', $this->content);
}
/**
* Is the line the start of a docblock?
*/
public function isTheStart() : bool
{
return \str_contains($this->content, '/**');
}
/**
* Is the line the end of a docblock?
*/
public function isTheEnd() : bool
{
return \str_contains($this->content, '*/');
}
/**
* Set the content of this line.
*/
public function setContent(string $content) : void
{
$this->content = $content;
}
/**
* Remove this line by clearing its contents.
*
* Note that this method technically brakes the internal state of the
* docblock, but is useful when we need to retain the indexes of lines
* during the execution of an algorithm.
*/
public function remove() : void
{
$this->content = '';
}
/**
* Append a blank docblock line to this line's contents.
*
* Note that this method technically brakes the internal state of the
* docblock, but is useful when we need to retain the indexes of lines
* during the execution of an algorithm.
*/
public function addBlank() : void
{
$matched = Preg::match('/^(\\h*\\*)[^\\r\\n]*(\\r?\\n)$/', $this->content, $matches);
if (1 !== $matched) {
return;
}
$this->content .= $matches[1] . $matches[2];
}
}