AbstractEntityEvent::getEntityManager()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Arp\DoctrineEntityRepository\Persistence\Event;
6
7
use Arp\DoctrineEntityRepository\Persistence\PersistServiceInterface;
8
use Arp\EventDispatcher\Event\NamedEvent;
9
use Doctrine\ORM\EntityManagerInterface;
10
use Psr\Log\LoggerInterface;
11
12
/**
13
 * @author  Alex Patterson <[email protected]>
14
 * @package Arp\DoctrineEntityRepository\Persistence\Event
15
 */
16
abstract class AbstractEntityEvent extends NamedEvent
17
{
18
    /**
19
     * @var PersistServiceInterface
20
     */
21
    private PersistServiceInterface $persistService;
22
23
    /**
24
     * @var EntityManagerInterface
25
     */
26
    private EntityManagerInterface $entityManager;
27
28
    /**
29
     * @var LoggerInterface
30
     */
31
    private LoggerInterface $logger;
32
33
    /**
34
     * @param string                   $eventName
35
     * @param PersistServiceInterface  $persistService
36
     * @param EntityManagerInterface   $entityManager
37
     * @param LoggerInterface          $logger
38
     * @param array<string|int, mixed> $params
39
     */
40
    public function __construct(
41
        string $eventName,
42
        PersistServiceInterface $persistService,
43
        EntityManagerInterface $entityManager,
44
        LoggerInterface $logger,
45
        array $params = []
46
    ) {
47
        $this->persistService = $persistService;
48
        $this->entityManager = $entityManager;
49
        $this->logger = $logger;
50
51
        parent::__construct($eventName, $params);
52
    }
53
54
    /**
55
     * @return string
56
     */
57
    public function getEntityName(): string
58
    {
59
        return $this->persistService->getEntityName();
60
    }
61
62
    /**
63
     * @return PersistServiceInterface
64
     */
65
    public function getPersistService(): PersistServiceInterface
66
    {
67
        return $this->persistService;
68
    }
69
70
    /**
71
     * @return EntityManagerInterface
72
     */
73
    public function getEntityManager(): EntityManagerInterface
74
    {
75
        return $this->entityManager;
76
    }
77
78
    /**
79
     * @param string $name
80
     * @param mixed  $default
81
     *
82
     * @return mixed
83
     */
84
    public function getParam(string $name, $default = null)
85
    {
86
        return $this->getParameters()->getParam($name, $default);
87
    }
88
89
    /**
90
     * @return LoggerInterface
91
     */
92
    public function getLogger(): LoggerInterface
93
    {
94
        return $this->logger;
95
    }
96
97
    /**
98
     * @param LoggerInterface $logger
99
     */
100
    public function setLogger(LoggerInterface $logger): void
101
    {
102
        $this->logger = $logger;
103
    }
104
}
105