Вход Регистрация
Файл: 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
        
);
    }
}
Онлайн: 0
Реклама