Completed
Pull Request — master (#30)
by Matthew
48:21 queued 02:09
created

JobTimingManager   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 86.67%

Importance

Changes 0
Metric Value
wmc 6
c 0
b 0
f 0
lcom 1
cbo 1
dl 0
loc 56
ccs 13
cts 15
cp 0.8667
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A performRecording() 0 3 1
A recordTiming() 0 7 2
A getJobTimingClass() 0 4 1
A pruneJobTimings() 0 4 1
1
<?php
2
3
namespace Dtc\QueueBundle\Manager;
4
5
use Dtc\QueueBundle\Exception\UnsupportedException;
6
7
class JobTimingManager
8
{
9
    /** @var string */
10
    protected $jobTimingClass;
11
12
    /** @var bool */
13
    protected $recordTimings;
14
15 39
    public function __construct($jobTimingClass, $recordTimings)
16
    {
17 39
        $this->jobTimingClass = $jobTimingClass;
18 39
        $this->recordTimings = $recordTimings;
19 39
    }
20
21
    /**
22
     * @param \DateTime $olderThan
23
     *
24
     * @throws UnsupportedException
25
     *
26
     * @return int Number of archived runs pruned
27
     */
28 1
    public function pruneJobTimings(\DateTime $olderThan)
29
    {
30 1
        throw new UnsupportedException('not supported');
31
    }
32
33
    /**
34
     * Subclasses should overrride this function instead of recordTiming.
35
     *
36
     * @param $status
37
     * @param \DateTime|null $dateTime
38
     */
39
    protected function performRecording($status, \DateTime $dateTime = null)
40
    {
41
    }
42
43
    /**
44
     * @param $status
45
     * @param \DateTime|null $dateTime
46
     */
47 80
    public function recordTiming($status, \DateTime $dateTime = null)
48
    {
49 80
        if (!$this->recordTimings) {
50 36
            return;
51
        }
52 44
        $this->performRecording($status, $dateTime);
53 44
    }
54
55
    /**
56
     * @return string
57
     */
58 1
    public function getJobTimingClass()
59
    {
60 1
        return $this->jobTimingClass;
61
    }
62
}
63