type; } public function setType(string $type) { $this->type = $type; } public function getValue(): string { return $this->value; } public function getValueHash(): string { if (!isset($this->valueHash)) { $this->valueHash = md5(ExpressionWrapper::wrap($this->getValue())); } return $this->valueHash; } public function setValue(string $value) { $this->value = $value; } /** * @return INode[] */ public function getNodes(): array { return $this->nodes; } /** * @param INode[] $nodes */ public function setNodes(array $nodes) { $this->nodes = $nodes; } public function hasNodes(): bool { return count($this->nodes) > 0; } public function addNode(INode $node) { $this->nodes[] = $node; } }