Completed
Push — master ( ad518d...0b0f4b )
by Matthew
05:51
created

BaseRunManager::getRepository()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 2
1
<?php
2
3
namespace Dtc\QueueBundle\Doctrine;
4
5
use Doctrine\Common\Persistence\ObjectManager;
6
use Doctrine\Common\Persistence\ObjectRepository;
7
use Dtc\QueueBundle\Model\Job;
8
use Dtc\QueueBundle\Model\RunManager;
9
10
abstract class BaseRunManager extends RunManager
11
{
12
    /** @var ObjectManager */
13
    protected $objectManager;
14
15
    /** @var string|null */
16
    protected $runArchiveClass;
17
18
    /**
19
     * @return ObjectManager
20
     */
21 3
    public function getObjectManager()
22
    {
23 3
        return $this->objectManager;
24
    }
25
26
    /**
27
     * @param ObjectManager $objectManager
28
     */
29 8
    public function setObjectManager(ObjectManager $objectManager)
30
    {
31 8
        $this->objectManager = $objectManager;
32 8
    }
33
34
    /**
35
     * @return ObjectRepository
36
     */
37
    public function getRepository()
38
    {
39
        return $this->objectManager->getRepository($this->getRunClass());
40
    }
41
42
    /**
43
     * @return null|string
44
     */
45 7
    public function getRunArchiveClass()
46
    {
47 7
        return $this->runArchiveClass;
48
    }
49
50
    /**
51
     * @param null|string $runArchiveClass
52
     */
53 8
    public function setRunArchiveClass($runArchiveClass)
54
    {
55 8
        $this->runArchiveClass = $runArchiveClass;
56 8
    }
57
58 2
    public function recordJobRun(Job $job)
59
    {
60 2
        parent::recordJobRun($job);
61
62 2
        $finishedAt = $job->getFinishedAt();
63 2
        if (null === $finishedAt) {
64
            $finishedAt = new \DateTime();
65
        }
66 2
        $jobTiming = new $this->jobTimingClass();
67 2
        $jobTiming->setFinishedAt($finishedAt);
68 2
        $this->objectManager->persist($jobTiming);
69 2
        $this->objectManager->flush();
70 2
    }
71
}
72