Completed
Push — master ( 77f666...54a2d4 )
by Mike
03:21
created

EventBusinessFactory::createEventProvider()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
ccs 3
cts 3
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
4
namespace Xervice\Event\Business;
5
6
7
use Xervice\Core\Business\Model\Factory\AbstractBusinessFactory;
8
use Xervice\Event\Business\Model\Listener\ListenerProvider;
9
use Xervice\Event\Business\Model\Listener\ListenerProviderInterface;
10
use Xervice\Event\Business\Model\Provider\DefaultEventProvider;
11
use Xervice\Event\Business\Model\Provider\EventProviderInterface;
12
use Xervice\Event\EventDependencyProvider;
13
14
class EventBusinessFactory extends AbstractBusinessFactory
15
{
16
    private $eventProvider;
17
18
    private $listenerProvider;
19
20
    /**
21
     * @return \Xervice\Event\Business\Model\Provider\EventProviderInterface
22
     */
23 1
    public function createEventProvider(): EventProviderInterface
24
    {
25 1
        return new DefaultEventProvider(
26 1
            $this->createListenerProvider()
27
        );
28
    }
29
30
    /**
31
     * @return \Xervice\Event\Business\Model\Listener\ListenerProviderInterface
32
     */
33 2
    public function createListenerProvider(): ListenerProviderInterface
34
    {
35 2
        return new ListenerProvider(
36 2
            $this->getListener()
37
        );
38
    }
39
40
    /**
41
     * @return \Xervice\Event\Business\Model\Provider\EventProviderInterface
42
     */
43 1
    public function getEventProvider(): EventProviderInterface
44
    {
45 1
        if ($this->eventProvider === null) {
46 1
            $this->eventProvider = $this->createEventProvider();
47
        }
48
49 1
        return $this->eventProvider;
50
    }
51
52
    /**
53
     * @return \Xervice\Event\Business\Model\Listener\ListenerProviderInterface
54
     */
55 1
    public function getListenerProvider(): ListenerProviderInterface
56
    {
57 1
        if ($this->listenerProvider === null) {
58 1
            $this->listenerProvider = $this->createListenerProvider();
59
        }
60
61 1
        return $this->listenerProvider;
62
    }
63
64
    /**
65
     * @return array
66
     */
67 2
    public function getListener(): array
68
    {
69 2
        return $this->getDependency(EventDependencyProvider::LISTENER);
70
    }
71
}