|
8 | 8 | use InvalidArgumentException; |
9 | 9 | use Traversable; |
10 | 10 | use Yiisoft\Arrays\ArrayHelper; |
11 | | -use Yiisoft\Data\Reader\DataReaderException; |
12 | 11 | use Yiisoft\Data\Reader\DataReaderInterface; |
13 | 12 | use Yiisoft\Data\Reader\Filter\All; |
14 | | -use Yiisoft\Data\Reader\FilterHandlerInterface; |
15 | 13 | use Yiisoft\Data\Reader\FilterInterface; |
16 | 14 | use Yiisoft\Data\Reader\Iterable\FilterHandler\AllHandler; |
17 | 15 | use Yiisoft\Data\Reader\Iterable\FilterHandler\AndXHandler; |
|
34 | 32 | use function array_merge; |
35 | 33 | use function count; |
36 | 34 | use function iterator_to_array; |
37 | | -use function sprintf; |
38 | 35 | use function uasort; |
39 | 36 |
|
40 | 37 | /** |
@@ -97,10 +94,7 @@ public function __construct( |
97 | 94 | $this->filter = new All(); |
98 | 95 | } |
99 | 96 |
|
100 | | - /** |
101 | | - * @psalm-return $this |
102 | | - */ |
103 | | - public function withAddedFilterHandlers(FilterHandlerInterface ...$filterHandlers): static |
| 97 | + public function withAddedFilterHandlers(IterableFilterHandlerInterface ...$filterHandlers): self |
104 | 98 | { |
105 | 99 | $new = clone $this; |
106 | 100 | $new->context = new Context( |
@@ -294,28 +288,17 @@ static function (array|object $itemA, array|object $itemB) use ($criteria) { |
294 | 288 | } |
295 | 289 |
|
296 | 290 | /** |
297 | | - * @param FilterHandlerInterface[] $filterHandlers |
| 291 | + * @param IterableFilterHandlerInterface[] $filterHandlers |
298 | 292 | * |
299 | 293 | * @return IterableFilterHandlerInterface[] |
300 | 294 | * @psalm-return array<string, IterableFilterHandlerInterface> |
301 | 295 | */ |
302 | 296 | private function prepareFilterHandlers(array $filterHandlers): array |
303 | 297 | { |
304 | 298 | $result = []; |
305 | | - |
306 | 299 | foreach ($filterHandlers as $filterHandler) { |
307 | | - if (!$filterHandler instanceof IterableFilterHandlerInterface) { |
308 | | - throw new DataReaderException( |
309 | | - sprintf( |
310 | | - '%s::withFilterHandlers() accepts instances of %s only.', |
311 | | - self::class, |
312 | | - IterableFilterHandlerInterface::class, |
313 | | - ), |
314 | | - ); |
315 | | - } |
316 | 300 | $result[$filterHandler->getFilterClass()] = $filterHandler; |
317 | 301 | } |
318 | | - |
319 | 302 | return $result; |
320 | 303 | } |
321 | 304 |
|
|
0 commit comments