Mercurial > hg > cmmr2012-drupal-site
comparison vendor/nikic/php-parser/lib/PhpParser/Builder/Property.php @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children | a9cd425dd02b |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:c75dbcec494b |
---|---|
1 <?php declare(strict_types=1); | |
2 | |
3 namespace PhpParser\Builder; | |
4 | |
5 use PhpParser; | |
6 use PhpParser\BuilderHelpers; | |
7 use PhpParser\Node\Stmt; | |
8 | |
9 class Property implements PhpParser\Builder | |
10 { | |
11 protected $name; | |
12 | |
13 protected $flags = 0; | |
14 protected $default = null; | |
15 protected $attributes = []; | |
16 | |
17 /** | |
18 * Creates a property builder. | |
19 * | |
20 * @param string $name Name of the property | |
21 */ | |
22 public function __construct(string $name) { | |
23 $this->name = $name; | |
24 } | |
25 | |
26 /** | |
27 * Makes the property public. | |
28 * | |
29 * @return $this The builder instance (for fluid interface) | |
30 */ | |
31 public function makePublic() { | |
32 $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_PUBLIC); | |
33 | |
34 return $this; | |
35 } | |
36 | |
37 /** | |
38 * Makes the property protected. | |
39 * | |
40 * @return $this The builder instance (for fluid interface) | |
41 */ | |
42 public function makeProtected() { | |
43 $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_PROTECTED); | |
44 | |
45 return $this; | |
46 } | |
47 | |
48 /** | |
49 * Makes the property private. | |
50 * | |
51 * @return $this The builder instance (for fluid interface) | |
52 */ | |
53 public function makePrivate() { | |
54 $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_PRIVATE); | |
55 | |
56 return $this; | |
57 } | |
58 | |
59 /** | |
60 * Makes the property static. | |
61 * | |
62 * @return $this The builder instance (for fluid interface) | |
63 */ | |
64 public function makeStatic() { | |
65 $this->flags = BuilderHelpers::addModifier($this->flags, Stmt\Class_::MODIFIER_STATIC); | |
66 | |
67 return $this; | |
68 } | |
69 | |
70 /** | |
71 * Sets default value for the property. | |
72 * | |
73 * @param mixed $value Default value to use | |
74 * | |
75 * @return $this The builder instance (for fluid interface) | |
76 */ | |
77 public function setDefault($value) { | |
78 $this->default = BuilderHelpers::normalizeValue($value); | |
79 | |
80 return $this; | |
81 } | |
82 | |
83 /** | |
84 * Sets doc comment for the property. | |
85 * | |
86 * @param PhpParser\Comment\Doc|string $docComment Doc comment to set | |
87 * | |
88 * @return $this The builder instance (for fluid interface) | |
89 */ | |
90 public function setDocComment($docComment) { | |
91 $this->attributes = [ | |
92 'comments' => [BuilderHelpers::normalizeDocComment($docComment)] | |
93 ]; | |
94 | |
95 return $this; | |
96 } | |
97 | |
98 /** | |
99 * Returns the built class node. | |
100 * | |
101 * @return Stmt\Property The built property node | |
102 */ | |
103 public function getNode() : PhpParser\Node { | |
104 return new Stmt\Property( | |
105 $this->flags !== 0 ? $this->flags : Stmt\Class_::MODIFIER_PUBLIC, | |
106 [ | |
107 new Stmt\PropertyProperty($this->name, $this->default) | |
108 ], | |
109 $this->attributes | |
110 ); | |
111 } | |
112 } |