Mercurial > hg > isophonics-drupal-site
comparison vendor/nikic/php-parser/lib/PhpParser/Builder/Trait_.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 5fb285c0d0e3 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace PhpParser\Builder; | |
4 | |
5 use PhpParser; | |
6 use PhpParser\Node\Stmt; | |
7 | |
8 class Trait_ extends Declaration | |
9 { | |
10 protected $name; | |
11 protected $uses = array(); | |
12 protected $properties = array(); | |
13 protected $methods = array(); | |
14 | |
15 /** | |
16 * Creates an interface builder. | |
17 * | |
18 * @param string $name Name of the interface | |
19 */ | |
20 public function __construct($name) { | |
21 $this->name = $name; | |
22 } | |
23 | |
24 /** | |
25 * Adds a statement. | |
26 * | |
27 * @param Stmt|PhpParser\Builder $stmt The statement to add | |
28 * | |
29 * @return $this The builder instance (for fluid interface) | |
30 */ | |
31 public function addStmt($stmt) { | |
32 $stmt = $this->normalizeNode($stmt); | |
33 | |
34 if ($stmt instanceof Stmt\Property) { | |
35 $this->properties[] = $stmt; | |
36 } else if ($stmt instanceof Stmt\ClassMethod) { | |
37 $this->methods[] = $stmt; | |
38 } else if ($stmt instanceof Stmt\TraitUse) { | |
39 $this->uses[] = $stmt; | |
40 } else { | |
41 throw new \LogicException(sprintf('Unexpected node of type "%s"', $stmt->getType())); | |
42 } | |
43 | |
44 return $this; | |
45 } | |
46 | |
47 /** | |
48 * Returns the built trait node. | |
49 * | |
50 * @return Stmt\Trait_ The built interface node | |
51 */ | |
52 public function getNode() { | |
53 return new Stmt\Trait_( | |
54 $this->name, array( | |
55 'stmts' => array_merge($this->uses, $this->properties, $this->methods) | |
56 ), $this->attributes | |
57 ); | |
58 } | |
59 } |