PluginProbe
Code Engine – PHP Snippets, AI Functions & Automation for WordPress / 0.4.2
Code Engine – PHP Snippets, AI Functions & Automation for WordPress v0.4.2
0.5.7 0.5.6 0.5.5 0.5.4 0.5.3 0.5.2 0.5.1 0.5.0 0.4.9 0.4.8 0.4.7 0.4.6 trunk 0.0.1 0.0.2 0.2.8 0.2.9 0.3.0 0.3.1 0.3.2 0.3.3 0.3.4 0.3.5 0.3.6 0.3.7 All 33 releases
code-engine / vendor / nikic / php-parser / lib / PhpParser / Builder / ClassConst.php

ClassConst.php in Code Engine – PHP Snippets, AI Functions & Automation for WordPress 0.4.2, at vendor/nikic/php-parser/lib/PhpParser/Builder/ClassConst.php

151 lines 3.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace PhpParser\Builder;
6
7 use PhpParser;
8 use PhpParser\BuilderHelpers;
9 use PhpParser\Modifiers;
10 use PhpParser\Node;
11 use PhpParser\Node\Const_;
12 use PhpParser\Node\Identifier;
13 use PhpParser\Node\Stmt;
14
15 class ClassConst implements PhpParser\Builder {
16 protected int $flags = 0;
17 /** @var array<string, mixed> */
18 protected array $attributes = [];
19 /** @var list<Const_> */
20 protected array $constants = [];
21
22 /** @var list<Node\AttributeGroup> */
23 protected array $attributeGroups = [];
24 /** @var Identifier|Node\Name|Node\ComplexType|null */
25 protected ?Node $type = null;
26
27 /**
28 * Creates a class constant builder
29 *
30 * @param string|Identifier $name Name
31 * @param Node\Expr|bool|null|int|float|string|array $value Value
32 */
33 public function __construct($name, $value) {
34 $this->constants = [new Const_($name, BuilderHelpers::normalizeValue($value))];
35 }
36
37 /**
38 * Add another constant to const group
39 *
40 * @param string|Identifier $name Name
41 * @param Node\Expr|bool|null|int|float|string|array $value Value
42 *
43 * @return $this The builder instance (for fluid interface)
44 */
45 public function addConst($name, $value) {
46 $this->constants[] = new Const_($name, BuilderHelpers::normalizeValue($value));
47
48 return $this;
49 }
50
51 /**
52 * Makes the constant public.
53 *
54 * @return $this The builder instance (for fluid interface)
55 */
56 public function makePublic() {
57 $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PUBLIC);
58
59 return $this;
60 }
61
62 /**
63 * Makes the constant protected.
64 *
65 * @return $this The builder instance (for fluid interface)
66 */
67 public function makeProtected() {
68 $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PROTECTED);
69
70 return $this;
71 }
72
73 /**
74 * Makes the constant private.
75 *
76 * @return $this The builder instance (for fluid interface)
77 */
78 public function makePrivate() {
79 $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::PRIVATE);
80
81 return $this;
82 }
83
84 /**
85 * Makes the constant final.
86 *
87 * @return $this The builder instance (for fluid interface)
88 */
89 public function makeFinal() {
90 $this->flags = BuilderHelpers::addModifier($this->flags, Modifiers::FINAL);
91
92 return $this;
93 }
94
95 /**
96 * Sets doc comment for the constant.
97 *
98 * @param PhpParser\Comment\Doc|string $docComment Doc comment to set
99 *
100 * @return $this The builder instance (for fluid interface)
101 */
102 public function setDocComment($docComment) {
103 $this->attributes = [
104 'comments' => [BuilderHelpers::normalizeDocComment($docComment)]
105 ];
106
107 return $this;
108 }
109
110 /**
111 * Adds an attribute group.
112 *
113 * @param Node\Attribute|Node\AttributeGroup $attribute
114 *
115 * @return $this The builder instance (for fluid interface)
116 */
117 public function addAttribute($attribute) {
118 $this->attributeGroups[] = BuilderHelpers::normalizeAttribute($attribute);
119
120 return $this;
121 }
122
123 /**
124 * Sets the constant type.
125 *
126 * @param string|Node\Name|Identifier|Node\ComplexType $type
127 *
128 * @return $this
129 */
130 public function setType($type) {
131 $this->type = BuilderHelpers::normalizeType($type);
132
133 return $this;
134 }
135
136 /**
137 * Returns the built class node.
138 *
139 * @return Stmt\ClassConst The built constant node
140 */
141 public function getNode(): PhpParser\Node {
142 return new Stmt\ClassConst(
143 $this->constants,
144 $this->flags,
145 $this->attributes,
146 $this->attributeGroups,
147 $this->type
148 );
149 }
150 }
151