1<?php declare(strict_types=1); 2 3namespace PhpParser\Builder; 4 5use PhpParser; 6use PhpParser\BuilderHelpers; 7use PhpParser\Node; 8use PhpParser\Node\Stmt; 9 10class Namespace_ extends Declaration { 11 private ?Node\Name $name; 12 /** @var Stmt[] */ 13 private array $stmts = []; 14 15 /** 16 * Creates a namespace builder. 17 * 18 * @param Node\Name|string|null $name Name of the namespace 19 */ 20 public function __construct($name) { 21 $this->name = null !== $name ? BuilderHelpers::normalizeName($name) : null; 22 } 23 24 /** 25 * Adds a statement. 26 * 27 * @param Node|PhpParser\Builder $stmt The statement to add 28 * 29 * @return $this The builder instance (for fluid interface) 30 */ 31 public function addStmt($stmt) { 32 $this->stmts[] = BuilderHelpers::normalizeStmt($stmt); 33 34 return $this; 35 } 36 37 /** 38 * Returns the built node. 39 * 40 * @return Stmt\Namespace_ The built node 41 */ 42 public function getNode(): Node { 43 return new Stmt\Namespace_($this->name, $this->stmts, $this->attributes); 44 } 45} 46