Semester::second()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
ccs 0
cts 2
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Adlogix\EventScheduler\TemporalExpression;
6
7
use Adlogix\EventScheduler\ValueObject\Semester as SemesterValueObject;
8
use DateTimeInterface;
9
10
/**
11
 * @author Toni Van de Voorde <[email protected]>
12
 */
13
final class Semester implements TemporalExpressionInterface
14
{
15
    /**
16
     * @var SemesterValueObject
17
     */
18
    protected $semester;
19
20
    /**
21
     * @param SemesterValueObject $semester
22
     */
23
    private function __construct(SemesterValueObject $semester)
24
    {
25
        $this->semester = $semester;
26
    }
27
28
    /**
29
     * @return Semester
30
     */
31
    public static function first(): self
32
    {
33
        return new self(SemesterValueObject::first());
34
    }
35
36
    /**
37
     * @return Semester
38
     */
39
    public static function second(): self
40
    {
41
        return new self(SemesterValueObject::second());
42
    }
43
44
    /**
45
     * {@inheritdoc}
46
     */
47 12
    public function includes(DateTimeInterface $dateTime): bool
48
    {
49 12
        return $this->semester->equals(SemesterValueObject::fromDateTime($dateTime));
50
    }
51
}
52