Day::setPmOpen()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
crap 1
1
<?php
2
3
namespace Bpost\BpostApiClient\Geo6;
4
5
use Bpost\BpostApiClient\Exception\BpostLogicException\BpostInvalidDayException;
6
7
/**
8
 * Geo6 class
9
 *
10
 * @author    Tijs Verkoyen <[email protected]>
11
 * @version   3.0.0
12
 * @copyright Copyright (c), Tijs Verkoyen. All rights reserved.
13
 * @license   BSD License
14
 */
15
class Day
16
{
17
18
    const DAY_INDEX_MONDAY = 1;
19
    const DAY_INDEX_TUESDAY = 2;
20
    const DAY_INDEX_WEDNESDAY = 3;
21
    const DAY_INDEX_THURSDAY = 4;
22
    const DAY_INDEX_FRIDAY = 5;
23
    const DAY_INDEX_SATURDAY = 6;
24
    const DAY_INDEX_SUNDAY = 7;
25
26
    const DAY_NAME_MONDAY = 'Monday';
27
    const DAY_NAME_TUESDAY = 'Tuesday';
28
    const DAY_NAME_WEDNESDAY = 'Wednesday';
29
    const DAY_NAME_THURSDAY = 'Thursday';
30
    const DAY_NAME_FRIDAY = 'Friday';
31
    const DAY_NAME_SATURDAY = 'Saturday';
32
    const DAY_NAME_SUNDAY = 'Sunday';
33
34
    private static $dayMap = array(
35
        self::DAY_NAME_MONDAY => self::DAY_INDEX_MONDAY,
36
        self::DAY_NAME_TUESDAY => self::DAY_INDEX_TUESDAY,
37
        self::DAY_NAME_WEDNESDAY => self::DAY_INDEX_WEDNESDAY,
38
        self::DAY_NAME_THURSDAY => self::DAY_INDEX_THURSDAY,
39
        self::DAY_NAME_FRIDAY => self::DAY_INDEX_FRIDAY,
40
        self::DAY_NAME_SATURDAY => self::DAY_INDEX_SATURDAY,
41
        self::DAY_NAME_SUNDAY => self::DAY_INDEX_SUNDAY,
42
    );
43
44
    /**
45
     * @var string
46
     */
47
    private $amOpen;
48
49
    /**
50
     * @var string
51
     */
52
    private $amClose;
53
54
    /**
55
     * @var string
56
     */
57
    private $pmOpen;
58
59
    /**
60
     * @var string
61
     */
62
    private $pmClose;
63
64
    /**
65
     * @var string
66
     */
67
    private $day;
68
69
    /**
70
     * @param string $amClose
71
     */
72 1
    public function setAmClose($amClose)
73
    {
74 1
        $this->amClose = $amClose;
75 1
    }
76
77
    /**
78
     * @return string
79
     */
80 2
    public function getAmClose()
81
    {
82 2
        return $this->amClose;
83
    }
84
85
    /**
86
     * @param string $amOpen
87
     */
88 3
    public function setAmOpen($amOpen)
89
    {
90 3
        $this->amOpen = $amOpen;
91 3
    }
92
93
    /**
94
     * @return string
95
     */
96 2
    public function getAmOpen()
97
    {
98 2
        return $this->amOpen;
99
    }
100
101
    /**
102
     * @param string $day
103
     */
104 4
    public function setDay($day)
105
    {
106 4
        $this->day = $day;
107 4
    }
108
109
    /**
110
     * @return string
111
     */
112 1
    public function getDay()
113
    {
114 1
        return $this->day;
115
    }
116
117
    /**
118
     * Get the index for a day
119
     * @return int
120
     * @throws BpostInvalidDayException
121
     */
122 1
    public function getDayIndex()
123
    {
124 1
        $day = ucfirst(strtolower($this->getDay()));
125
126 1
        if (isset(self::$dayMap[$day])) {
127 1
            return self::$dayMap[$day];
128
        }
129
130 1
        throw new BpostInvalidDayException($day, array_keys(self::$dayMap));
131
    }
132
133
    /**
134
     * @param string $pmClose
135
     */
136 3
    public function setPmClose($pmClose)
137
    {
138 3
        $this->pmClose = $pmClose;
139 3
    }
140
141
    /**
142
     * @return string
143
     */
144 2
    public function getPmClose()
145
    {
146 2
        return $this->pmClose;
147
    }
148
149
    /**
150
     * @param string $pmOpen
151
     */
152 1
    public function setPmOpen($pmOpen)
153
    {
154 1
        $this->pmOpen = $pmOpen;
155 1
    }
156
157
    /**
158
     * @return string
159
     */
160 2
    public function getPmOpen()
161
    {
162 2
        return $this->pmOpen;
163
    }
164
165
    /**
166
     * @param  \SimpleXMLElement $xml
167
     * @return Day
168
     */
169 3
    public static function createFromXML(\SimpleXMLElement $xml)
170
    {
171 3
        $day = new Day();
172 3
        $day->setDay($xml->getName());
173
174 3
        if (isset($xml->AMOpen) && $xml->AMOpen != '') {
175 3
            $day->setAmOpen((string) $xml->AMOpen);
176 3
        }
177 3
        if (isset($xml->AMClose) && $xml->AMClose != '') {
178 1
            $day->setAmClose((string) $xml->AMClose);
179 1
        }
180 3
        if (isset($xml->PMOpen) && $xml->PMOpen != '') {
181 1
            $day->setPmOpen((string) $xml->PMOpen);
182 1
        }
183 3
        if (isset($xml->PMClose) && $xml->PMClose != '') {
184 3
            $day->setPmClose((string) $xml->PMClose);
185 3
        }
186
187 3
        return $day;
188
    }
189
}
190