AcceptorFilter::filter()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Psi\Component\ResourceBrowser\Filter\Filter;
6
7
use Psi\Component\ResourceBrowser\Filter\AcceptorIterator;
8
use Psi\Component\ResourceBrowser\Filter\AcceptorRegistryInterface;
9
use Psi\Component\ResourceBrowser\Filter\FilterInterface;
10
use Puli\Repository\Api\ResourceIterator;
11
12
/**
13
 * Filter which uses configured "acceptors".
14
 *
15
 * This allows inline filter specifications, e.g.:
16
 *
17
 *     filters:
18
 *         - { type: "name", { "pattern": "^psict:" } }
19
 */
20
class AcceptorFilter implements FilterInterface
21
{
22
    private $registry;
23
    private $configs;
24
25
    public function __construct(AcceptorRegistryInterface $registry, array $configs)
26
    {
27
        $this->registry = $registry;
28
        $this->configs = $configs;
29
    }
30
31
    /**
32
     * {@inheritdoc}
33
     */
34
    public function filter(ResourceIterator $collection): ResourceIterator
35
    {
36
        return new AcceptorIterator($collection, $this->registry, $this->configs);
37
    }
38
}
39