Elements::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 14
ccs 0
cts 14
cp 0
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 12
nc 1
nop 11
crap 2

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php
2
3
namespace Gueststream\PMS\IQWare\API;
4
5
class Elements
6
{
7
8
    /**
9
     * @var int $ID_Element
10
     */
11
    protected $ID_Element = null;
12
13
    /**
14
     * @var int $PersonCount
15
     */
16
    protected $PersonCount = null;
17
18
    /**
19
     * @var \DateTime $Date
20
     */
21
    protected $Date = null;
22
23
    /**
24
     * @var int $Cat1
25
     */
26
    protected $Cat1 = null;
27
28
    /**
29
     * @var int $Cat2
30
     */
31
    protected $Cat2 = null;
32
33
    /**
34
     * @var int $Cat3
35
     */
36
    protected $Cat3 = null;
37
38
    /**
39
     * @var int $Cat4
40
     */
41
    protected $Cat4 = null;
42
43
    /**
44
     * @var int $Cat5
45
     */
46
    protected $Cat5 = null;
47
48
    /**
49
     * @var int $Cat6
50
     */
51
    protected $Cat6 = null;
52
53
    /**
54
     * @var int $Cat7
55
     */
56
    protected $Cat7 = null;
57
58
    /**
59
     * @var int $Cat8
60
     */
61
    protected $Cat8 = null;
62
63
    /**
64
     * @param int $ID_Element
65
     * @param int $PersonCount
66
     * @param \DateTime $Date
67
     * @param int $Cat1
68
     * @param int $Cat2
69
     * @param int $Cat3
70
     * @param int $Cat4
71
     * @param int $Cat5
72
     * @param int $Cat6
73
     * @param int $Cat7
74
     * @param int $Cat8
75
     */
76
    public function __construct($ID_Element, $PersonCount, \DateTime $Date, $Cat1, $Cat2, $Cat3, $Cat4, $Cat5, $Cat6, $Cat7, $Cat8)
77
    {
78
        $this->ID_Element = $ID_Element;
79
        $this->PersonCount = $PersonCount;
80
        $this->Date = $Date->format(\DateTime::ATOM);
0 ignored issues
show
Documentation Bug introduced by
It seems like $Date->format(\DateTime::ATOM) of type string is incompatible with the declared type object<DateTime> of property $Date.

Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property.

Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property..

Loading history...
81
        $this->Cat1 = $Cat1;
82
        $this->Cat2 = $Cat2;
83
        $this->Cat3 = $Cat3;
84
        $this->Cat4 = $Cat4;
85
        $this->Cat5 = $Cat5;
86
        $this->Cat6 = $Cat6;
87
        $this->Cat7 = $Cat7;
88
        $this->Cat8 = $Cat8;
89
    }
90
91
    /**
92
     * @return int
93
     */
94
    public function getID_Element()
95
    {
96
        return $this->ID_Element;
97
    }
98
99
    /**
100
     * @param int $ID_Element
101
     * @return \Gueststream\PMS\IQWare\API\Elements
102
     */
103
    public function setID_Element($ID_Element)
104
    {
105
        $this->ID_Element = $ID_Element;
106
        return $this;
107
    }
108
109
    /**
110
     * @return int
111
     */
112
    public function getPersonCount()
113
    {
114
        return $this->PersonCount;
115
    }
116
117
    /**
118
     * @param int $PersonCount
119
     * @return \Gueststream\PMS\IQWare\API\Elements
120
     */
121
    public function setPersonCount($PersonCount)
122
    {
123
        $this->PersonCount = $PersonCount;
124
        return $this;
125
    }
126
127
    /**
128
     * @return \DateTime
129
     */
130
    public function getDate()
131
    {
132
        if ($this->Date == null) {
133
            return null;
134
        } else {
135
            try {
136
                return new \DateTime($this->Date);
137
            } catch (\Exception $e) {
138
                return false;
139
            }
140
        }
141
    }
142
143
    /**
144
     * @param \DateTime $Date
145
     * @return \Gueststream\PMS\IQWare\API\Elements
146
     */
147
    public function setDate(\DateTime $Date)
148
    {
149
        $this->Date = $Date->format(\DateTime::ATOM);
0 ignored issues
show
Documentation Bug introduced by
It seems like $Date->format(\DateTime::ATOM) of type string is incompatible with the declared type object<DateTime> of property $Date.

Our type inference engine has found an assignment to a property that is incompatible with the declared type of that property.

Either this assignment is in error or the assigned type should be added to the documentation/type hint for that property..

Loading history...
150
        return $this;
151
    }
152
153
    /**
154
     * @return int
155
     */
156
    public function getCat1()
157
    {
158
        return $this->Cat1;
159
    }
160
161
    /**
162
     * @param int $Cat1
163
     * @return \Gueststream\PMS\IQWare\API\Elements
164
     */
165
    public function setCat1($Cat1)
166
    {
167
        $this->Cat1 = $Cat1;
168
        return $this;
169
    }
170
171
    /**
172
     * @return int
173
     */
174
    public function getCat2()
175
    {
176
        return $this->Cat2;
177
    }
178
179
    /**
180
     * @param int $Cat2
181
     * @return \Gueststream\PMS\IQWare\API\Elements
182
     */
183
    public function setCat2($Cat2)
184
    {
185
        $this->Cat2 = $Cat2;
186
        return $this;
187
    }
188
189
    /**
190
     * @return int
191
     */
192
    public function getCat3()
193
    {
194
        return $this->Cat3;
195
    }
196
197
    /**
198
     * @param int $Cat3
199
     * @return \Gueststream\PMS\IQWare\API\Elements
200
     */
201
    public function setCat3($Cat3)
202
    {
203
        $this->Cat3 = $Cat3;
204
        return $this;
205
    }
206
207
    /**
208
     * @return int
209
     */
210
    public function getCat4()
211
    {
212
        return $this->Cat4;
213
    }
214
215
    /**
216
     * @param int $Cat4
217
     * @return \Gueststream\PMS\IQWare\API\Elements
218
     */
219
    public function setCat4($Cat4)
220
    {
221
        $this->Cat4 = $Cat4;
222
        return $this;
223
    }
224
225
    /**
226
     * @return int
227
     */
228
    public function getCat5()
229
    {
230
        return $this->Cat5;
231
    }
232
233
    /**
234
     * @param int $Cat5
235
     * @return \Gueststream\PMS\IQWare\API\Elements
236
     */
237
    public function setCat5($Cat5)
238
    {
239
        $this->Cat5 = $Cat5;
240
        return $this;
241
    }
242
243
    /**
244
     * @return int
245
     */
246
    public function getCat6()
247
    {
248
        return $this->Cat6;
249
    }
250
251
    /**
252
     * @param int $Cat6
253
     * @return \Gueststream\PMS\IQWare\API\Elements
254
     */
255
    public function setCat6($Cat6)
256
    {
257
        $this->Cat6 = $Cat6;
258
        return $this;
259
    }
260
261
    /**
262
     * @return int
263
     */
264
    public function getCat7()
265
    {
266
        return $this->Cat7;
267
    }
268
269
    /**
270
     * @param int $Cat7
271
     * @return \Gueststream\PMS\IQWare\API\Elements
272
     */
273
    public function setCat7($Cat7)
274
    {
275
        $this->Cat7 = $Cat7;
276
        return $this;
277
    }
278
279
    /**
280
     * @return int
281
     */
282
    public function getCat8()
283
    {
284
        return $this->Cat8;
285
    }
286
287
    /**
288
     * @param int $Cat8
289
     * @return \Gueststream\PMS\IQWare\API\Elements
290
     */
291
    public function setCat8($Cat8)
292
    {
293
        $this->Cat8 = $Cat8;
294
        return $this;
295
    }
296
}
297