Файл: vendor/nikic/php-parser/lib/PhpParser/Builder/EnumCase.php
Строк: 68
<?php
declare(strict_types=1);
namespace PhpParserBuilder;
use PhpParser;
use PhpParserBuilderHelpers;
use PhpParserNode;
use PhpParserNodeIdentifier;
use PhpParserNodeStmt;
class EnumCase implements PhpParserBuilder
{
protected $name;
protected $value = null;
protected $attributes = [];
/** @var NodeAttributeGroup[] */
protected $attributeGroups = [];
/**
* Creates an enum case builder.
*
* @param string|Identifier $name Name
*/
public function __construct($name) {
$this->name = $name;
}
/**
* Sets the value.
*
* @param NodeExpr|string|int $value
*
* @return $this
*/
public function setValue($value) {
$this->value = BuilderHelpers::normalizeValue($value);
return $this;
}
/**
* Sets doc comment for the constant.
*
* @param PhpParserCommentDoc|string $docComment Doc comment to set
*
* @return $this The builder instance (for fluid interface)
*/
public function setDocComment($docComment) {
$this->attributes = [
'comments' => [BuilderHelpers::normalizeDocComment($docComment)]
];
return $this;
}
/**
* Adds an attribute group.
*
* @param NodeAttribute|NodeAttributeGroup $attribute
*
* @return $this The builder instance (for fluid interface)
*/
public function addAttribute($attribute) {
$this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute);
return $this;
}
/**
* Returns the built enum case node.
*
* @return StmtEnumCase The built constant node
*/
public function getNode(): PhpParserNode {
return new StmtEnumCase(
$this->name,
$this->value,
$this->attributes,
$this->attributeGroups
);
}
}