Spaces:
No application file
No application file
| declare(strict_types=1); | |
| namespace Mautic\CoreBundle\Helper\Tree; | |
| class IntNode implements NodeInterface | |
| { | |
| /** | |
| * @var NodeInterface[] | |
| */ | |
| private array $children = []; | |
| /** | |
| * @var array<string,mixed> | |
| */ | |
| private array $params = []; | |
| private int $position = 0; | |
| public function __construct( | |
| private int $value, | |
| private ?NodeInterface $parent = null | |
| ) { | |
| } | |
| public function getValue(): int | |
| { | |
| return $this->value; | |
| } | |
| public function getParent(): ?NodeInterface | |
| { | |
| return $this->parent; | |
| } | |
| public function setParent(NodeInterface $parent): void | |
| { | |
| $this->parent = $parent; | |
| } | |
| public function addChild(NodeInterface $child): void | |
| { | |
| $child->setParent($this); | |
| $this->children[] = $child; | |
| } | |
| public function addParam(string $key, $value): void | |
| { | |
| $this->params[$key] = $value; | |
| } | |
| public function getParam(string $key, $default = null) | |
| { | |
| return $this->params[$key] ?? $default; | |
| } | |
| public function getChildrenArray(): array | |
| { | |
| return $this->children; | |
| } | |
| public function getChildren(): NodeInterface | |
| { | |
| return $this->current(); | |
| } | |
| public function hasChildren(): bool | |
| { | |
| return !empty($this->current()->getChildrenArray()); | |
| } | |
| public function current(): NodeInterface | |
| { | |
| return $this->children[$this->position]; | |
| } | |
| public function key(): int | |
| { | |
| return $this->position; | |
| } | |
| public function next(): void | |
| { | |
| ++$this->position; | |
| } | |
| public function rewind(): void | |
| { | |
| $this->position = 0; | |
| } | |
| public function valid(): bool | |
| { | |
| return isset($this->children[$this->position]); | |
| } | |
| } | |