LockManager   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 74
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 3

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 1 Features 0
Metric Value
wmc 6
c 1
b 1
f 0
lcom 2
cbo 3
dl 0
loc 74
ccs 0
cts 30
cp 0
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A save() 0 5 1
A delete() 0 5 1
A createNew() 0 6 1
A getLock() 0 11 2
1
<?php
2
3
namespace Itkg\DelayEventBundle\DomainManager;
4
5
use Doctrine\Common\Persistence\ObjectManager;
6
use Itkg\DelayEventBundle\Model\Lock;
7
use Itkg\DelayEventBundle\Repository\LockRepository;
8
9
/**
10
 * Class LockManager
11
 */
12
class LockManager implements LockManagerInterface
13
{
14
    /**
15
     * @var string
16
     */
17
    protected $class;
18
19
    /**
20
     * @var ObjectManager
21
     */
22
    protected $om;
23
24
    /**
25
     * @var LockRepository
26
     */
27
    protected $lockRepository;
28
29
    /**
30
     * @param string         $class
31
     * @param ObjectManager  $om
32
     * @param LockRepository $lockRepository
33
     */
34
    public function __construct($class, ObjectManager $om, LockRepository $lockRepository)
35
    {
36
        $this->class = $class;
37
        $this->om = $om;
38
        $this->lockRepository = $lockRepository;
39
    }
40
41
    /**
42
     * @param Lock $Lock
43
     */
44
    public function save(Lock $Lock)
45
    {
46
        $this->om->persist($Lock);
47
        $this->om->flush($Lock);
48
    }
49
50
    /**
51
     * @param Lock $Lock
52
     */
53
    public function delete(Lock $Lock)
54
    {
55
        $this->om->remove($Lock);
56
        $this->om->flush($Lock);
57
    }
58
59
    /**
60
     * @return Lock
61
     */
62
    public function createNew()
63
    {
64
        $class = $this->class;
65
66
        return new $class;
67
    }
68
69
    /**
70
     * @param string $channel
71
     *
72
     * @return Lock
73
     */
74
    public function getLock($channel)
75
    {
76
        $lock = $this->lockRepository->findByChannel($channel);
77
78
        if (!$lock) {
79
            $lock = $this->createNew();
80
            $lock->setChannel($channel);
81
        }
82
83
        return $lock;
84
    }
85
}
86