ILIAS  release_7 Revision v7.30-3-g800a261c036
AbstractBaseItem.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
21
26use Closure;
27
32abstract class AbstractBaseItem implements isItem
33{
35
39 protected $renderer;
43 protected $position = 0;
56
62 {
63 $this->provider_identification = $provider_identification;
64 $this->renderer = new BaseMetaBarItemRenderer();
65 }
66
70 public function getRenderer() : MetaBarItemRenderer
71 {
72 return $this->renderer;
73 }
74
79 {
81 }
82
86 public function withVisibilityCallable(callable $is_visible) : isItem
87 {
88 $clone = clone($this);
89 $clone->visiblility_callable = $is_visible;
90
91 return $clone;
92 }
93
97 public function isVisible() : bool
98 {
99 if (!$this->isAvailable()) {
100 return false;
101 }
102 if (is_callable($this->visiblility_callable)) {
103 $callable = $this->visiblility_callable;
104
105 $value = $callable();
106
107 return $value;
108 }
109
110 return true;
111 }
112
116 public function withAvailableCallable(callable $is_available) : isItem
117 {
118 $clone = clone($this);
119 $clone->available_callable = $is_available;
120
121 return $clone;
122 }
123
127 public function isAvailable() : bool
128 {
129 if (is_callable($this->available_callable)) {
130 $callable = $this->available_callable;
131
132 $value = $callable();
133
134 return $value;
135 }
136
137 return true;
138 }
139
143 public function getPosition() : int
144 {
145 return $this->position;
146 }
147
151 public function withPosition(int $position) : isItem
152 {
153 $clone = clone($this);
154 $clone->position = $position;
155
156 return $clone;
157 }
158}
An exception for terminatinating execution or to throw for unit testing.
__construct(IdentificationInterface $provider_identification)
AbstractBaseItem constructor.