60 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | 
 | ||
|  | namespace PhpParser\Builder; | ||
|  | 
 | ||
|  | use PhpParser; | ||
|  | use PhpParser\Node; | ||
|  | use PhpParser\Node\Stmt; | ||
|  | 
 | ||
|  | class Namespace_ extends PhpParser\BuilderAbstract | ||
|  | { | ||
|  |     private $name; | ||
|  |     private $stmts = array(); | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Creates a namespace builder. | ||
|  |      * | ||
|  |      * @param Node\Name|string|null $name Name of the namespace | ||
|  |      */ | ||
|  |     public function __construct($name) { | ||
|  |         $this->name = null !== $name ? $this->normalizeName($name) : null; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Adds a statement. | ||
|  |      * | ||
|  |      * @param Node|PhpParser\Builder $stmt The statement to add | ||
|  |      * | ||
|  |      * @return $this The builder instance (for fluid interface) | ||
|  |      */ | ||
|  |     public function addStmt($stmt) { | ||
|  |         $this->stmts[] = $this->normalizeNode($stmt); | ||
|  | 
 | ||
|  |         return $this; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Adds multiple statements. | ||
|  |      * | ||
|  |      * @param array $stmts The statements to add | ||
|  |      * | ||
|  |      * @return $this The builder instance (for fluid interface) | ||
|  |      */ | ||
|  |     public function addStmts(array $stmts) { | ||
|  |         foreach ($stmts as $stmt) { | ||
|  |             $this->addStmt($stmt); | ||
|  |         } | ||
|  | 
 | ||
|  |         return $this; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Returns the built node. | ||
|  |      * | ||
|  |      * @return Node The built node | ||
|  |      */ | ||
|  |     public function getNode() { | ||
|  |         return new Stmt\Namespace_($this->name, $this->stmts); | ||
|  |     } | ||
|  | } |