Completed
Pull Request — 2.0 (#1098)
by
unknown
35:53 queued 32:19
created

FilterSetCollection::getFilterSets()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 12
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 12
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 6
nc 3
nop 0
1
<?php
2
3
/*
4
 * This file is part of the `liip/LiipImagineBundle` project.
5
 *
6
 * (c) https://github.com/liip/LiipImagineBundle/graphs/contributors
7
 *
8
 * For the full copyright and license information, please view the LICENSE.md
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Liip\ImagineBundle\Config;
13
14
use Liip\ImagineBundle\Imagine\Filter\FilterConfiguration;
15
16
final class FilterSetCollection
17
{
18
    /**
19
     * @var array
20
     */
21
    private $filterSets = [];
22
23
    /**
24
     * @var FilterConfiguration
25
     */
26
    private $filterConfiguration;
27
28
    /**
29
     * @var FilterSetBuilderInterface
30
     */
31
    private $filterSetBuilder;
32
33
    /**
34
     * @param FilterConfiguration       $filterConfiguration
35
     * @param FilterSetBuilderInterface $filterSetBuilder
36
     */
37
    public function __construct(FilterConfiguration $filterConfiguration, FilterSetBuilderInterface $filterSetBuilder)
38
    {
39
        $this->filterConfiguration = $filterConfiguration;
40
        $this->filterSetBuilder = $filterSetBuilder;
41
    }
42
43
    /**
44
     * @return FilterSetInterface[]
45
     */
46
    public function getFilterSets()
47
    {
48
        if (!empty($this->filterSets)) {
49
            return $this->filterSets;
50
        }
51
52
        foreach ($this->filterConfiguration->all() as $filterSetName => $filterSetData) {
53
            $this->filterSets[] = $this->filterSetBuilder->build($filterSetName, $filterSetData);
54
        }
55
56
        return $this->filterSets;
57
    }
58
}
59