Completed
Push — master ( 965a67...27eb1e )
by Krzysztof
06:05 queued 03:13
created

DateTimeRangeCriteria   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 75
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 7
c 2
b 0
f 0
lcom 1
cbo 0
dl 0
loc 75
ccs 17
cts 17
cp 1
rs 10

6 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 7 1
A getStartingDateTime() 0 4 1
A setStartingDateTime() 0 7 1
A getEndingDateTime() 0 4 1
A setEndingDateTime() 0 7 1
A shouldBeApplied() 0 5 2
1
<?php
2
3
namespace KGzocha\Searcher\Criteria;
4
5
/**
6
 * Class DateTimeRangeFilterModel.
7
 */
8
class DateTimeRangeCriteria implements CriteriaInterface
9
{
10
    /**
11
     * @var \DateTime
12
     */
13
    private $startingDateTime;
14
15
    /**
16
     * @var \DateTime
17
     */
18
    private $endingDateTime;
19
20
    /**
21
     * @param \DateTime $startingDateTime
22
     * @param \DateTime $endingDateTime
23
     */
24 3
    public function __construct(
25
        \DateTime $startingDateTime = null,
26
        \DateTime $endingDateTime = null
27
    ) {
28 3
        $this->startingDateTime = $startingDateTime;
29 3
        $this->endingDateTime = $endingDateTime;
30 3
    }
31
32
    /**
33
     * @return \DateTime
34
     */
35 1
    public function getStartingDateTime()
36
    {
37 1
        return $this->startingDateTime;
38
    }
39
40
    /**
41
     * @param \DateTime|null $startingDateTime
42
     *
43
     * @return DateTimeRangeCriteria
44
     */
45 1
    public function setStartingDateTime(
46
        \DateTime $startingDateTime = null
47
    ) {
48 1
        $this->startingDateTime = $startingDateTime;
49
50 1
        return $this;
51
    }
52
53
    /**
54
     * @return \DateTime
55
     */
56 1
    public function getEndingDateTime()
57
    {
58 1
        return $this->endingDateTime;
59
    }
60
61
    /**
62
     * @param \DateTime|null $endingDateTime
63
     *
64
     * @return DateTimeRangeCriteria
65
     */
66 1
    public function setEndingDateTime(
67
        \DateTime $endingDateTime = null
68
    ) {
69 1
        $this->endingDateTime = $endingDateTime;
70
71 1
        return $this;
72
    }
73
74
    /**
75
     * {@inheritdoc}
76
     */
77 2
    public function shouldBeApplied()
78
    {
79 2
        return $this->startingDateTime instanceof \DateTime
80 2
            || $this->endingDateTime instanceof \DateTime;
81
    }
82
}
83