AcceptorFilter   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 19
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 1
dl 0
loc 19
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A filter() 0 4 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