label; } public function setLabel(string $label): self { $this->label = $label; return $this; } public function getLink(): string { return $this->link; } public function setLink(string $link): self { $this->link = $link; return $this; } public function getLinkArgs(): array { return $this->linkArgs; } public function setLinkArgs(array $linkArgs): self { $this->linkArgs = $linkArgs; return $this; } public function getFaIcon(): string { return $this->faIcon; } public function setFaIcon(string $faIcon): self { $this->faIcon = $faIcon; return $this; } public function isCurrent(Component $presenter): bool { return $presenter->isLinkCurrent($this->getLink(), $this->getLinkArgs()); } public function getAclResource(): ?Resource { return $this->resource; } public function setAclResource(?Resource $resource): self { $this->resource = $resource; return $this; } public function setCondition(\Closure $condition): self { $this->condition = $condition; return $this; } public function isVisible(SecurityUser $user, Component $presenter): bool { if ($this->getAclResource() && !$user->isAllowed($this->getAclResource())) { return false; } return $this->condition === null || ($this->condition)($user, $presenter); } }