Completed
Pull Request — master (#93)
by Krzysztof
07:55 queued 04:53
created

CriteriaBuilderCollection   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 3
Bugs 0 Features 1
Metric Value
wmc 5
c 3
b 0
f 1
lcom 1
cbo 2
dl 0
loc 49
ccs 15
cts 15
cp 1
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A addCriteriaBuilder() 0 4 1
A getCriteriaBuilders() 0 4 1
A getCriteriaBuildersForContext() 0 10 1
A isItemValid() 0 4 1
1
<?php
2
3
namespace KGzocha\Searcher\CriteriaBuilder\Collection;
4
5
use KGzocha\Searcher\AbstractCollection;
6
use KGzocha\Searcher\Context\SearchingContextInterface;
7
use KGzocha\Searcher\CriteriaBuilder\CriteriaBuilderInterface;
8
9
/**
10
 * @author Krzysztof Gzocha <[email protected]>
11
 */
12
class CriteriaBuilderCollection extends AbstractCollection implements
13
    CriteriaBuilderCollectionInterface
14
{
15
    /**
16
     * @param CriteriaBuilderInterface[] $builders array or \Traversable object
17
     */
18 9
    public function __construct($builders = [])
19
    {
20 9
        parent::__construct($builders);
21 4
    }
22
23
    /**
24
     * {@inheritdoc}
25
     */
26 1
    public function addCriteriaBuilder(CriteriaBuilderInterface $criteriaBuilder)
27
    {
28 1
        return $this->addItem($criteriaBuilder);
29
    }
30
31
    /**
32
     * {@inheritdoc}
33
     */
34 1
    public function getCriteriaBuilders()
35
    {
36 1
        return $this->getItems();
37
    }
38
39
    /**
40
     * {@inheritdoc}
41
     */
42 2
    public function getCriteriaBuildersForContext(
43
        SearchingContextInterface $searchingContext
44
    ) {
45 2
        return new self(array_filter(
46 2
            $this->getItems(),
47 2
            function(CriteriaBuilderInterface $criteriaBuilder) use ($searchingContext) {
48 2
                return $criteriaBuilder->supportsSearchingContext($searchingContext);
49 2
            }
50
        ));
51
    }
52
53
    /**
54
     * {@inheritdoc}
55
     */
56 3
    protected function isItemValid($item)
57
    {
58 3
        return $item instanceof CriteriaBuilderInterface;
59
    }
60
}
61