Completed
Push — master ( 38f90d...223a4c )
by Peter
02:18
created

ListenerCollection   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 0
dl 0
loc 41
c 0
b 0
f 0
ccs 0
cts 18
cp 0
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 2
A getIterator() 0 4 1
A add() 0 4 1
A count() 0 4 1
1
<?php
2
/**
3
 * GpsLab component.
4
 *
5
 * @author    Peter Gribanov <[email protected]>
6
 * @copyright Copyright (c) 2016, Peter Gribanov
7
 * @license   http://opensource.org/licenses/MIT
8
 */
9
namespace GpsLab\Domain\Event\Listener;
10
11
class ListenerCollection implements \IteratorAggregate, \Countable
12
{
13
    /**
14
     * @var ListenerInterface[]
15
     */
16
    private $listeners = [];
17
18
    /**
19
     * @param ListenerInterface[] $listeners
20
     */
21
    public function __construct(array $listeners = [])
22
    {
23
        foreach ($listeners as $listener) {
24
            $this->add($listener);
25
        }
26
    }
27
28
    /**
29
     * @return ListenerInterface[]
30
     */
31
    public function getIterator()
32
    {
33
        return new \ArrayIterator($this->listeners);
34
    }
35
36
    /**
37
     * @param ListenerInterface $listener
38
     */
39
    public function add(ListenerInterface $listener)
40
    {
41
        $this->listeners[] = $listener;
42
    }
43
44
    /**
45
     * @return int
46
     */
47
    public function count()
48
    {
49
        return count($this->listeners);
50
    }
51
}
52