Completed
Push — master-4.0 ( 71618b...2eaeb5 )
by Krzysztof
03:06 queued 03:01
created

CriteriaBuilderCollection::checkType()   A

Complexity

Conditions 4
Paths 2

Size

Total Lines 12
Code Lines 7

Duplication

Lines 12
Ratio 100 %

Code Coverage

Tests 7
CRAP Score 4

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 12
loc 12
rs 9.2
ccs 7
cts 7
cp 1
cc 4
eloc 7
nc 2
nop 1
crap 4
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