Completed
Pull Request — master (#57)
by Romain
02:13
created

Data::setTag()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 8
ccs 4
cts 4
cp 1
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 4
nc 2
nop 1
crap 2
1
<?php
2
3
namespace Kerox\Messenger\Model;
4
5
use Kerox\Messenger\Model\Data\Value;
6
7
class Data
8
{
9
10
    /**
11
     * @var null|string
12
     */
13
    protected $name;
14
15
    /**
16
     * @var null|string
17
     */
18
    protected $period;
19
20
    /**
21
     * @var array
22
     */
23
    protected $values = [];
24
25
    /**
26
     * @var null|string
27
     */
28
    protected $title;
29
30
    /**
31
     * @var null|string
32
     */
33
    protected $description;
34
35
    /**
36
     * @var null|string
37
     */
38
    protected $id;
39
40
    /**
41
     * @var null|srting
42
     */
43
    protected $tag;
44
45
    /**
46
     * @var array
47
     */
48
    protected $data;
49
50
    /**
51
     * Data constructor.
52
     *
53
     * @param array $data
54
     */
55 5
    public function __construct(array $data)
56
    {
57 5
        $this->setName($data)
58 5
            ->setPeriod($data)
59 5
            ->setValues($data)
60 5
            ->setTitle($data)
61 5
            ->setDescription($data)
62 5
            ->setId($data)
63 5
            ->setTag($data);
64 5
    }
65
66
    /**
67
     * @return null|string
68
     */
69 1
    public function getName()
70
    {
71 1
        return $this->name;
72
    }
73
74
    /**
75
     * @param array $data
76
     * @return \Kerox\Messenger\Model\Data
77
     */
78 5
    public function setName(array $data): Data
79
    {
80 5
        if (isset($data['name'])) {
81 4
            $this->name = $data['name'];
82
        }
83
84 5
        return $this;
85
    }
86
87
    /**
88
     * @return null|string
89
     */
90 1
    public function getPeriod()
91
    {
92 1
        return $this->period;
93
    }
94
95
    /**
96
     * @param array $data
97
     * @return \Kerox\Messenger\Model\Data
98
     */
99 5
    public function setPeriod(array $data): Data
100
    {
101 5
        if (isset($data['period'])) {
102 4
            $this->period = $data['period'];
103
        }
104
105 5
        return $this;
106
    }
107
108
    /**
109
     * @return \Kerox\Messenger\Model\Data\Value[]
110
     */
111 1
    public function getValues(): array
112
    {
113 1
        return $this->values;
114
    }
115
116
    /**
117
     * @param array $data
118
     * @return \Kerox\Messenger\Model\Data
119
     */
120 5
    public function setValues(array $data): Data
121
    {
122 5
        if (isset($data['values']) && !empty($this->data['values'])) {
123
            foreach ($this->data['values'] as $value) {
124
                $this->values[] = new Value($value['value'], $value['end_time']);
125
            }
126
        }
127
128 5
        return $this;
129
    }
130
131
    /**
132
     * @return null|string
133
     */
134 1
    public function getTitle(): string
135
    {
136 1
        return $this->title;
137
    }
138
139
    /**
140
     * @param array $data
141
     * @return \Kerox\Messenger\Model\Data
142
     */
143 5
    public function setTitle(array $data): Data
144
    {
145 5
        if (isset($data['title'])) {
146 4
            $this->title = $data['title'];
147
        }
148
149 5
        return $this;
150
    }
151
152
    /**
153
     * @return null|string
154
     */
155 1
    public function getDescription(): string
156
    {
157 1
        return $this->description;
158
    }
159
160
    /**
161
     * @param array $data
162
     * @return \Kerox\Messenger\Model\Data
163
     */
164 5
    public function setDescription(array $data): Data
165
    {
166 5
        if (isset($data['description'])) {
167 5
            $this->description = $data['description'];
168
        }
169
170 5
        return $this;
171
    }
172
173
    /**
174
     * @return null|string
175
     */
176 1
    public function getId(): string
177
    {
178 1
        return $this->id;
179
    }
180
181
    /**
182
     * @param array $data
183
     * @return \Kerox\Messenger\Model\Data
184
     */
185 5
    public function setId(array $data): Data
186
    {
187 5
        if (isset($data['id'])) {
188 4
            $this->id = $data['id'];
189
        }
190
191 5
        return $this;
192
    }
193
194
    /**
195
     * @return null|string
196
     */
197
    public function getTag(): string
198
    {
199
        return $this->tag;
200
    }
201
202
    /**
203
     * @param array $data
204
     * @return \Kerox\Messenger\Model\Data
205
     */
206 5
    public function setTag(array $data): Data
207
    {
208 5
        if (isset($data['tag'])) {
209 1
            $this->tag = $data['tag'];
210
        }
211
212 5
        return $this;
213
    }
214
215
    /**
216
     * @param array $data
217
     * @return \Kerox\Messenger\Model\Data
218
     */
219 4
    public static function create(array $data): Data
220
    {
221 4
        return new static($data);
222
    }
223
}
224