__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 15
ccs 0
cts 15
cp 0
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 13
nc 1
nop 12
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 WebRes_GetGroupAvailabilityAndPricing
6
{
7
8
    /**
9
     * @var int $guid
10
     */
11
    protected $guid = null;
12
13
    /**
14
     * @var int $GuestCount
15
     */
16
    protected $GuestCount = null;
17
18
    /**
19
     * @var string $Childrens
20
     */
21
    protected $Childrens = null;
22
23
    /**
24
     * @var int $RoomQty
25
     */
26
    protected $RoomQty = null;
27
28
    /**
29
     * @var string $strListOfRoomTypes
30
     */
31
    protected $strListOfRoomTypes = null;
32
33
    /**
34
     * @var string $LanguageCode
35
     */
36
    protected $LanguageCode = null;
37
38
    /**
39
     * @var string $GrpID
40
     */
41
    protected $GrpID = null;
42
43
    /**
44
     * @var \DateTime $StartDate
45
     */
46
    protected $StartDate = null;
47
48
    /**
49
     * @var \DateTime $EndDate
50
     */
51
    protected $EndDate = null;
52
53
    /**
54
     * @var TGroupBlocType $BlocType
55
     */
56
    protected $BlocType = null;
57
58
    /**
59
     * @var TGroupBlocQtyType $BlocQtyType
60
     */
61
    protected $BlocQtyType = null;
62
63
    /**
64
     * @var IAB2BMode $BackToBackMode
65
     */
66
    protected $BackToBackMode = null;
67
68
    /**
69
     * @param int $guid
70
     * @param int $GuestCount
71
     * @param string $Childrens
72
     * @param int $RoomQty
73
     * @param string $strListOfRoomTypes
74
     * @param string $LanguageCode
75
     * @param string $GrpID
76
     * @param \DateTime $StartDate
77
     * @param \DateTime $EndDate
78
     * @param TGroupBlocType $BlocType
79
     * @param TGroupBlocQtyType $BlocQtyType
80
     * @param IAB2BMode $BackToBackMode
81
     */
82
    public function __construct($guid, $GuestCount, $Childrens, $RoomQty, $strListOfRoomTypes, $LanguageCode, $GrpID, \DateTime $StartDate, \DateTime $EndDate, $BlocType, $BlocQtyType, $BackToBackMode)
83
    {
84
        $this->guid = $guid;
85
        $this->GuestCount = $GuestCount;
86
        $this->Childrens = $Childrens;
87
        $this->RoomQty = $RoomQty;
88
        $this->strListOfRoomTypes = $strListOfRoomTypes;
89
        $this->LanguageCode = $LanguageCode;
90
        $this->GrpID = $GrpID;
91
        $this->StartDate = $StartDate->format(\DateTime::ATOM);
0 ignored issues
show
Documentation Bug introduced by
It seems like $StartDate->format(\DateTime::ATOM) of type string is incompatible with the declared type object<DateTime> of property $StartDate.

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...
92
        $this->EndDate = $EndDate->format(\DateTime::ATOM);
0 ignored issues
show
Documentation Bug introduced by
It seems like $EndDate->format(\DateTime::ATOM) of type string is incompatible with the declared type object<DateTime> of property $EndDate.

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...
93
        $this->BlocType = $BlocType;
94
        $this->BlocQtyType = $BlocQtyType;
95
        $this->BackToBackMode = $BackToBackMode;
96
    }
97
98
    /**
99
     * @return int
100
     */
101
    public function getGuid()
102
    {
103
        return $this->guid;
104
    }
105
106
    /**
107
     * @param int $guid
108
     * @return \Gueststream\PMS\IQWare\API\WebRes_GetGroupAvailabilityAndPricing
109
     */
110
    public function setGuid($guid)
111
    {
112
        $this->guid = $guid;
113
        return $this;
114
    }
115
116
    /**
117
     * @return int
118
     */
119
    public function getGuestCount()
120
    {
121
        return $this->GuestCount;
122
    }
123
124
    /**
125
     * @param int $GuestCount
126
     * @return \Gueststream\PMS\IQWare\API\WebRes_GetGroupAvailabilityAndPricing
127
     */
128
    public function setGuestCount($GuestCount)
129
    {
130
        $this->GuestCount = $GuestCount;
131
        return $this;
132
    }
133
134
    /**
135
     * @return string
136
     */
137
    public function getChildrens()
138
    {
139
        return $this->Childrens;
140
    }
141
142
    /**
143
     * @param string $Childrens
144
     * @return \Gueststream\PMS\IQWare\API\WebRes_GetGroupAvailabilityAndPricing
145
     */
146
    public function setChildrens($Childrens)
147
    {
148
        $this->Childrens = $Childrens;
149
        return $this;
150
    }
151
152
    /**
153
     * @return int
154
     */
155
    public function getRoomQty()
156
    {
157
        return $this->RoomQty;
158
    }
159
160
    /**
161
     * @param int $RoomQty
162
     * @return \Gueststream\PMS\IQWare\API\WebRes_GetGroupAvailabilityAndPricing
163
     */
164
    public function setRoomQty($RoomQty)
165
    {
166
        $this->RoomQty = $RoomQty;
167
        return $this;
168
    }
169
170
    /**
171
     * @return string
172
     */
173
    public function getStrListOfRoomTypes()
174
    {
175
        return $this->strListOfRoomTypes;
176
    }
177
178
    /**
179
     * @param string $strListOfRoomTypes
180
     * @return \Gueststream\PMS\IQWare\API\WebRes_GetGroupAvailabilityAndPricing
181
     */
182
    public function setStrListOfRoomTypes($strListOfRoomTypes)
183
    {
184
        $this->strListOfRoomTypes = $strListOfRoomTypes;
185
        return $this;
186
    }
187
188
    /**
189
     * @return string
190
     */
191
    public function getLanguageCode()
192
    {
193
        return $this->LanguageCode;
194
    }
195
196
    /**
197
     * @param string $LanguageCode
198
     * @return \Gueststream\PMS\IQWare\API\WebRes_GetGroupAvailabilityAndPricing
199
     */
200
    public function setLanguageCode($LanguageCode)
201
    {
202
        $this->LanguageCode = $LanguageCode;
203
        return $this;
204
    }
205
206
    /**
207
     * @return string
208
     */
209
    public function getGrpID()
210
    {
211
        return $this->GrpID;
212
    }
213
214
    /**
215
     * @param string $GrpID
216
     * @return \Gueststream\PMS\IQWare\API\WebRes_GetGroupAvailabilityAndPricing
217
     */
218
    public function setGrpID($GrpID)
219
    {
220
        $this->GrpID = $GrpID;
221
        return $this;
222
    }
223
224
    /**
225
     * @return \DateTime
226
     */
227
    public function getStartDate()
228
    {
229
        if ($this->StartDate == null) {
230
            return null;
231
        } else {
232
            try {
233
                return new \DateTime($this->StartDate);
234
            } catch (\Exception $e) {
235
                return false;
236
            }
237
        }
238
    }
239
240
    /**
241
     * @param \DateTime $StartDate
242
     * @return \Gueststream\PMS\IQWare\API\WebRes_GetGroupAvailabilityAndPricing
243
     */
244
    public function setStartDate(\DateTime $StartDate)
245
    {
246
        $this->StartDate = $StartDate->format(\DateTime::ATOM);
0 ignored issues
show
Documentation Bug introduced by
It seems like $StartDate->format(\DateTime::ATOM) of type string is incompatible with the declared type object<DateTime> of property $StartDate.

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...
247
        return $this;
248
    }
249
250
    /**
251
     * @return \DateTime
252
     */
253
    public function getEndDate()
254
    {
255
        if ($this->EndDate == null) {
256
            return null;
257
        } else {
258
            try {
259
                return new \DateTime($this->EndDate);
260
            } catch (\Exception $e) {
261
                return false;
262
            }
263
        }
264
    }
265
266
    /**
267
     * @param \DateTime $EndDate
268
     * @return \Gueststream\PMS\IQWare\API\WebRes_GetGroupAvailabilityAndPricing
269
     */
270
    public function setEndDate(\DateTime $EndDate)
271
    {
272
        $this->EndDate = $EndDate->format(\DateTime::ATOM);
0 ignored issues
show
Documentation Bug introduced by
It seems like $EndDate->format(\DateTime::ATOM) of type string is incompatible with the declared type object<DateTime> of property $EndDate.

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...
273
        return $this;
274
    }
275
276
    /**
277
     * @return TGroupBlocType
278
     */
279
    public function getBlocType()
280
    {
281
        return $this->BlocType;
282
    }
283
284
    /**
285
     * @param TGroupBlocType $BlocType
286
     * @return \Gueststream\PMS\IQWare\API\WebRes_GetGroupAvailabilityAndPricing
287
     */
288
    public function setBlocType($BlocType)
289
    {
290
        $this->BlocType = $BlocType;
291
        return $this;
292
    }
293
294
    /**
295
     * @return TGroupBlocQtyType
296
     */
297
    public function getBlocQtyType()
298
    {
299
        return $this->BlocQtyType;
300
    }
301
302
    /**
303
     * @param TGroupBlocQtyType $BlocQtyType
304
     * @return \Gueststream\PMS\IQWare\API\WebRes_GetGroupAvailabilityAndPricing
305
     */
306
    public function setBlocQtyType($BlocQtyType)
307
    {
308
        $this->BlocQtyType = $BlocQtyType;
309
        return $this;
310
    }
311
312
    /**
313
     * @return IAB2BMode
314
     */
315
    public function getBackToBackMode()
316
    {
317
        return $this->BackToBackMode;
318
    }
319
320
    /**
321
     * @param IAB2BMode $BackToBackMode
322
     * @return \Gueststream\PMS\IQWare\API\WebRes_GetGroupAvailabilityAndPricing
323
     */
324
    public function setBackToBackMode($BackToBackMode)
325
    {
326
        $this->BackToBackMode = $BackToBackMode;
327
        return $this;
328
    }
329
}
330