__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 18
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 16
nc 1
nop 15
dl 0
loc 18
rs 9.7333
c 0
b 0
f 0

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
declare(strict_types=1);
4
5
namespace StructType;
6
7
use InvalidArgumentException;
8
use WsdlToPhp\PackageBase\AbstractStructBase;
9
10
/**
11
 * This class stands for SyncFolderItemsCreateOrUpdateType StructType
12
 * @package Ews
13
 * @subpackage Structs
14
 * @author WsdlToPhp <[email protected]>
15
 */
16
class EwsSyncFolderItemsCreateOrUpdateType extends AbstractStructBase
17
{
18
    /**
19
     * The Item
20
     * Meta information extracted from the WSDL
21
     * - choice: Item | Message | CalendarItem | Contact | DistributionList | MeetingMessage | MeetingRequest | MeetingResponse | MeetingCancellation | Task | PostItem | RoleMember | Network | Person | Booking
22
     * - choiceMaxOccurs: 1
23
     * - choiceMinOccurs: 1
24
     * @var \StructType\EwsItemType|null
25
     */
26
    protected ?\StructType\EwsItemType $Item = null;
27
    /**
28
     * The Message
29
     * Meta information extracted from the WSDL
30
     * - choice: Item | Message | CalendarItem | Contact | DistributionList | MeetingMessage | MeetingRequest | MeetingResponse | MeetingCancellation | Task | PostItem | RoleMember | Network | Person | Booking
31
     * - choiceMaxOccurs: 1
32
     * - choiceMinOccurs: 1
33
     * @var \StructType\EwsMessageType|null
34
     */
35
    protected ?\StructType\EwsMessageType $Message = null;
36
    /**
37
     * The CalendarItem
38
     * Meta information extracted from the WSDL
39
     * - choice: Item | Message | CalendarItem | Contact | DistributionList | MeetingMessage | MeetingRequest | MeetingResponse | MeetingCancellation | Task | PostItem | RoleMember | Network | Person | Booking
40
     * - choiceMaxOccurs: 1
41
     * - choiceMinOccurs: 1
42
     * @var \StructType\EwsCalendarItemType|null
43
     */
44
    protected ?\StructType\EwsCalendarItemType $CalendarItem = null;
45
    /**
46
     * The Contact
47
     * Meta information extracted from the WSDL
48
     * - choice: Item | Message | CalendarItem | Contact | DistributionList | MeetingMessage | MeetingRequest | MeetingResponse | MeetingCancellation | Task | PostItem | RoleMember | Network | Person | Booking
49
     * - choiceMaxOccurs: 1
50
     * - choiceMinOccurs: 1
51
     * @var \StructType\EwsContactItemType|null
52
     */
53
    protected ?\StructType\EwsContactItemType $Contact = null;
54
    /**
55
     * The DistributionList
56
     * Meta information extracted from the WSDL
57
     * - choice: Item | Message | CalendarItem | Contact | DistributionList | MeetingMessage | MeetingRequest | MeetingResponse | MeetingCancellation | Task | PostItem | RoleMember | Network | Person | Booking
58
     * - choiceMaxOccurs: 1
59
     * - choiceMinOccurs: 1
60
     * @var \StructType\EwsDistributionListType|null
61
     */
62
    protected ?\StructType\EwsDistributionListType $DistributionList = null;
63
    /**
64
     * The MeetingMessage
65
     * Meta information extracted from the WSDL
66
     * - choice: Item | Message | CalendarItem | Contact | DistributionList | MeetingMessage | MeetingRequest | MeetingResponse | MeetingCancellation | Task | PostItem | RoleMember | Network | Person | Booking
67
     * - choiceMaxOccurs: 1
68
     * - choiceMinOccurs: 1
69
     * @var \StructType\EwsMeetingMessageType|null
70
     */
71
    protected ?\StructType\EwsMeetingMessageType $MeetingMessage = null;
72
    /**
73
     * The MeetingRequest
74
     * Meta information extracted from the WSDL
75
     * - choice: Item | Message | CalendarItem | Contact | DistributionList | MeetingMessage | MeetingRequest | MeetingResponse | MeetingCancellation | Task | PostItem | RoleMember | Network | Person | Booking
76
     * - choiceMaxOccurs: 1
77
     * - choiceMinOccurs: 1
78
     * @var \StructType\EwsMeetingRequestMessageType|null
79
     */
80
    protected ?\StructType\EwsMeetingRequestMessageType $MeetingRequest = null;
81
    /**
82
     * The MeetingResponse
83
     * Meta information extracted from the WSDL
84
     * - choice: Item | Message | CalendarItem | Contact | DistributionList | MeetingMessage | MeetingRequest | MeetingResponse | MeetingCancellation | Task | PostItem | RoleMember | Network | Person | Booking
85
     * - choiceMaxOccurs: 1
86
     * - choiceMinOccurs: 1
87
     * @var \StructType\EwsMeetingResponseMessageType|null
88
     */
89
    protected ?\StructType\EwsMeetingResponseMessageType $MeetingResponse = null;
90
    /**
91
     * The MeetingCancellation
92
     * Meta information extracted from the WSDL
93
     * - choice: Item | Message | CalendarItem | Contact | DistributionList | MeetingMessage | MeetingRequest | MeetingResponse | MeetingCancellation | Task | PostItem | RoleMember | Network | Person | Booking
94
     * - choiceMaxOccurs: 1
95
     * - choiceMinOccurs: 1
96
     * @var \StructType\EwsMeetingCancellationMessageType|null
97
     */
98
    protected ?\StructType\EwsMeetingCancellationMessageType $MeetingCancellation = null;
99
    /**
100
     * The Task
101
     * Meta information extracted from the WSDL
102
     * - choice: Item | Message | CalendarItem | Contact | DistributionList | MeetingMessage | MeetingRequest | MeetingResponse | MeetingCancellation | Task | PostItem | RoleMember | Network | Person | Booking
103
     * - choiceMaxOccurs: 1
104
     * - choiceMinOccurs: 1
105
     * @var \StructType\EwsTaskType|null
106
     */
107
    protected ?\StructType\EwsTaskType $Task = null;
108
    /**
109
     * The PostItem
110
     * Meta information extracted from the WSDL
111
     * - choice: Item | Message | CalendarItem | Contact | DistributionList | MeetingMessage | MeetingRequest | MeetingResponse | MeetingCancellation | Task | PostItem | RoleMember | Network | Person | Booking
112
     * - choiceMaxOccurs: 1
113
     * - choiceMinOccurs: 1
114
     * @var \StructType\EwsPostItemType|null
115
     */
116
    protected ?\StructType\EwsPostItemType $PostItem = null;
117
    /**
118
     * The RoleMember
119
     * Meta information extracted from the WSDL
120
     * - choice: Item | Message | CalendarItem | Contact | DistributionList | MeetingMessage | MeetingRequest | MeetingResponse | MeetingCancellation | Task | PostItem | RoleMember | Network | Person | Booking
121
     * - choiceMaxOccurs: 1
122
     * - choiceMinOccurs: 1
123
     * @var \StructType\EwsRoleMemberItemType|null
124
     */
125
    protected ?\StructType\EwsRoleMemberItemType $RoleMember = null;
126
    /**
127
     * The Network
128
     * Meta information extracted from the WSDL
129
     * - choice: Item | Message | CalendarItem | Contact | DistributionList | MeetingMessage | MeetingRequest | MeetingResponse | MeetingCancellation | Task | PostItem | RoleMember | Network | Person | Booking
130
     * - choiceMaxOccurs: 1
131
     * - choiceMinOccurs: 1
132
     * @var \StructType\EwsNetworkItemType|null
133
     */
134
    protected ?\StructType\EwsNetworkItemType $Network = null;
135
    /**
136
     * The Person
137
     * Meta information extracted from the WSDL
138
     * - choice: Item | Message | CalendarItem | Contact | DistributionList | MeetingMessage | MeetingRequest | MeetingResponse | MeetingCancellation | Task | PostItem | RoleMember | Network | Person | Booking
139
     * - choiceMaxOccurs: 1
140
     * - choiceMinOccurs: 1
141
     * @var \StructType\EwsAbchPersonItemType|null
142
     */
143
    protected ?\StructType\EwsAbchPersonItemType $Person = null;
144
    /**
145
     * The Booking
146
     * Meta information extracted from the WSDL
147
     * - choice: Item | Message | CalendarItem | Contact | DistributionList | MeetingMessage | MeetingRequest | MeetingResponse | MeetingCancellation | Task | PostItem | RoleMember | Network | Person | Booking
148
     * - choiceMaxOccurs: 1
149
     * - choiceMinOccurs: 1
150
     * @var \StructType\EwsBookingItemType|null
151
     */
152
    protected ?\StructType\EwsBookingItemType $Booking = null;
153
    /**
154
     * Constructor method for SyncFolderItemsCreateOrUpdateType
155
     * @uses EwsSyncFolderItemsCreateOrUpdateType::setItem()
156
     * @uses EwsSyncFolderItemsCreateOrUpdateType::setMessage()
157
     * @uses EwsSyncFolderItemsCreateOrUpdateType::setCalendarItem()
158
     * @uses EwsSyncFolderItemsCreateOrUpdateType::setContact()
159
     * @uses EwsSyncFolderItemsCreateOrUpdateType::setDistributionList()
160
     * @uses EwsSyncFolderItemsCreateOrUpdateType::setMeetingMessage()
161
     * @uses EwsSyncFolderItemsCreateOrUpdateType::setMeetingRequest()
162
     * @uses EwsSyncFolderItemsCreateOrUpdateType::setMeetingResponse()
163
     * @uses EwsSyncFolderItemsCreateOrUpdateType::setMeetingCancellation()
164
     * @uses EwsSyncFolderItemsCreateOrUpdateType::setTask()
165
     * @uses EwsSyncFolderItemsCreateOrUpdateType::setPostItem()
166
     * @uses EwsSyncFolderItemsCreateOrUpdateType::setRoleMember()
167
     * @uses EwsSyncFolderItemsCreateOrUpdateType::setNetwork()
168
     * @uses EwsSyncFolderItemsCreateOrUpdateType::setPerson()
169
     * @uses EwsSyncFolderItemsCreateOrUpdateType::setBooking()
170
     * @param \StructType\EwsItemType $item
171
     * @param \StructType\EwsMessageType $message
172
     * @param \StructType\EwsCalendarItemType $calendarItem
173
     * @param \StructType\EwsContactItemType $contact
174
     * @param \StructType\EwsDistributionListType $distributionList
175
     * @param \StructType\EwsMeetingMessageType $meetingMessage
176
     * @param \StructType\EwsMeetingRequestMessageType $meetingRequest
177
     * @param \StructType\EwsMeetingResponseMessageType $meetingResponse
178
     * @param \StructType\EwsMeetingCancellationMessageType $meetingCancellation
179
     * @param \StructType\EwsTaskType $task
180
     * @param \StructType\EwsPostItemType $postItem
181
     * @param \StructType\EwsRoleMemberItemType $roleMember
182
     * @param \StructType\EwsNetworkItemType $network
183
     * @param \StructType\EwsAbchPersonItemType $person
184
     * @param \StructType\EwsBookingItemType $booking
185
     */
186
    public function __construct(?\StructType\EwsItemType $item = null, ?\StructType\EwsMessageType $message = null, ?\StructType\EwsCalendarItemType $calendarItem = null, ?\StructType\EwsContactItemType $contact = null, ?\StructType\EwsDistributionListType $distributionList = null, ?\StructType\EwsMeetingMessageType $meetingMessage = null, ?\StructType\EwsMeetingRequestMessageType $meetingRequest = null, ?\StructType\EwsMeetingResponseMessageType $meetingResponse = null, ?\StructType\EwsMeetingCancellationMessageType $meetingCancellation = null, ?\StructType\EwsTaskType $task = null, ?\StructType\EwsPostItemType $postItem = null, ?\StructType\EwsRoleMemberItemType $roleMember = null, ?\StructType\EwsNetworkItemType $network = null, ?\StructType\EwsAbchPersonItemType $person = null, ?\StructType\EwsBookingItemType $booking = null)
187
    {
188
        $this
189
            ->setItem($item)
190
            ->setMessage($message)
191
            ->setCalendarItem($calendarItem)
192
            ->setContact($contact)
193
            ->setDistributionList($distributionList)
194
            ->setMeetingMessage($meetingMessage)
195
            ->setMeetingRequest($meetingRequest)
196
            ->setMeetingResponse($meetingResponse)
197
            ->setMeetingCancellation($meetingCancellation)
198
            ->setTask($task)
199
            ->setPostItem($postItem)
200
            ->setRoleMember($roleMember)
201
            ->setNetwork($network)
202
            ->setPerson($person)
203
            ->setBooking($booking);
204
    }
205
    /**
206
     * Get Item value
207
     * @return \StructType\EwsItemType|null
208
     */
209
    public function getItem(): ?\StructType\EwsItemType
210
    {
211
        return isset($this->Item) ? $this->Item : null;
212
    }
213
    /**
214
     * This method is responsible for validating the value passed to the setItem method
215
     * This method is willingly generated in order to preserve the one-line inline validation within the setItem method
216
     * This has to validate that the property which is being set is the only one among the given choices
217
     * @param mixed $value
218
     * @return string A non-empty message if the values does not match the validation rules
219
     */
220
    public function validateItemForChoiceConstraintsFromSetItem($value): string
221
    {
222
        $message = '';
223
        if (is_null($value)) {
224
            return $message;
225
        }
226
        $properties = [
227
            'Message',
228
            'CalendarItem',
229
            'Contact',
230
            'DistributionList',
231
            'MeetingMessage',
232
            'MeetingRequest',
233
            'MeetingResponse',
234
            'MeetingCancellation',
235
            'Task',
236
            'PostItem',
237
            'RoleMember',
238
            'Network',
239
            'Person',
240
            'Booking',
241
        ];
242
        try {
243
            foreach ($properties as $property) {
244
                if (isset($this->{$property})) {
245
                    throw new InvalidArgumentException(sprintf('The property Item can\'t be set as the property %s is already set. Only one property must be set among these properties: Item, %s.', $property, implode(', ', $properties)), __LINE__);
246
                }
247
            }
248
        } catch (InvalidArgumentException $e) {
249
            $message = $e->getMessage();
250
        }
251
        
252
        return $message;
253
    }
254
    /**
255
     * Set Item value
256
     * This property belongs to a choice that allows only one property to exist. It is
257
     * therefore removable from the request, consequently if the value assigned to this
258
     * property is null, the property is removed from this object
259
     * @throws InvalidArgumentException
260
     * @param \StructType\EwsItemType $item
261
     * @return \StructType\EwsSyncFolderItemsCreateOrUpdateType
262
     */
263
    public function setItem(?\StructType\EwsItemType $item = null): self
264
    {
265
        // validation for constraint: choice(Item, Message, CalendarItem, Contact, DistributionList, MeetingMessage, MeetingRequest, MeetingResponse, MeetingCancellation, Task, PostItem, RoleMember, Network, Person, Booking)
266
        if ('' !== ($itemChoiceErrorMessage = self::validateItemForChoiceConstraintsFromSetItem($item))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsSyncFolder...onstraintsFromSetItem() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

266
        if ('' !== ($itemChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateItemForChoiceConstraintsFromSetItem($item))) {
Loading history...
267
            throw new InvalidArgumentException($itemChoiceErrorMessage, __LINE__);
268
        }
269
        if (is_null($item) || (is_array($item) && empty($item))) {
270
            unset($this->Item);
271
        } else {
272
            $this->Item = $item;
273
        }
274
        
275
        return $this;
276
    }
277
    /**
278
     * Get Message value
279
     * @return \StructType\EwsMessageType|null
280
     */
281
    public function getMessage(): ?\StructType\EwsMessageType
282
    {
283
        return isset($this->Message) ? $this->Message : null;
284
    }
285
    /**
286
     * This method is responsible for validating the value passed to the setMessage method
287
     * This method is willingly generated in order to preserve the one-line inline validation within the setMessage method
288
     * This has to validate that the property which is being set is the only one among the given choices
289
     * @param mixed $value
290
     * @return string A non-empty message if the values does not match the validation rules
291
     */
292
    public function validateMessageForChoiceConstraintsFromSetMessage($value): string
293
    {
294
        $message = '';
295
        if (is_null($value)) {
296
            return $message;
297
        }
298
        $properties = [
299
            'Item',
300
            'CalendarItem',
301
            'Contact',
302
            'DistributionList',
303
            'MeetingMessage',
304
            'MeetingRequest',
305
            'MeetingResponse',
306
            'MeetingCancellation',
307
            'Task',
308
            'PostItem',
309
            'RoleMember',
310
            'Network',
311
            'Person',
312
            'Booking',
313
        ];
314
        try {
315
            foreach ($properties as $property) {
316
                if (isset($this->{$property})) {
317
                    throw new InvalidArgumentException(sprintf('The property Message can\'t be set as the property %s is already set. Only one property must be set among these properties: Message, %s.', $property, implode(', ', $properties)), __LINE__);
318
                }
319
            }
320
        } catch (InvalidArgumentException $e) {
321
            $message = $e->getMessage();
322
        }
323
        
324
        return $message;
325
    }
326
    /**
327
     * Set Message value
328
     * This property belongs to a choice that allows only one property to exist. It is
329
     * therefore removable from the request, consequently if the value assigned to this
330
     * property is null, the property is removed from this object
331
     * @throws InvalidArgumentException
332
     * @param \StructType\EwsMessageType $message
333
     * @return \StructType\EwsSyncFolderItemsCreateOrUpdateType
334
     */
335
    public function setMessage(?\StructType\EwsMessageType $message = null): self
336
    {
337
        // validation for constraint: choice(Item, Message, CalendarItem, Contact, DistributionList, MeetingMessage, MeetingRequest, MeetingResponse, MeetingCancellation, Task, PostItem, RoleMember, Network, Person, Booking)
338
        if ('' !== ($messageChoiceErrorMessage = self::validateMessageForChoiceConstraintsFromSetMessage($message))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsSyncFolder...traintsFromSetMessage() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

338
        if ('' !== ($messageChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateMessageForChoiceConstraintsFromSetMessage($message))) {
Loading history...
339
            throw new InvalidArgumentException($messageChoiceErrorMessage, __LINE__);
340
        }
341
        if (is_null($message) || (is_array($message) && empty($message))) {
342
            unset($this->Message);
343
        } else {
344
            $this->Message = $message;
345
        }
346
        
347
        return $this;
348
    }
349
    /**
350
     * Get CalendarItem value
351
     * @return \StructType\EwsCalendarItemType|null
352
     */
353
    public function getCalendarItem(): ?\StructType\EwsCalendarItemType
354
    {
355
        return isset($this->CalendarItem) ? $this->CalendarItem : null;
356
    }
357
    /**
358
     * This method is responsible for validating the value passed to the setCalendarItem method
359
     * This method is willingly generated in order to preserve the one-line inline validation within the setCalendarItem method
360
     * This has to validate that the property which is being set is the only one among the given choices
361
     * @param mixed $value
362
     * @return string A non-empty message if the values does not match the validation rules
363
     */
364
    public function validateCalendarItemForChoiceConstraintsFromSetCalendarItem($value): string
365
    {
366
        $message = '';
367
        if (is_null($value)) {
368
            return $message;
369
        }
370
        $properties = [
371
            'Item',
372
            'Message',
373
            'Contact',
374
            'DistributionList',
375
            'MeetingMessage',
376
            'MeetingRequest',
377
            'MeetingResponse',
378
            'MeetingCancellation',
379
            'Task',
380
            'PostItem',
381
            'RoleMember',
382
            'Network',
383
            'Person',
384
            'Booking',
385
        ];
386
        try {
387
            foreach ($properties as $property) {
388
                if (isset($this->{$property})) {
389
                    throw new InvalidArgumentException(sprintf('The property CalendarItem can\'t be set as the property %s is already set. Only one property must be set among these properties: CalendarItem, %s.', $property, implode(', ', $properties)), __LINE__);
390
                }
391
            }
392
        } catch (InvalidArgumentException $e) {
393
            $message = $e->getMessage();
394
        }
395
        
396
        return $message;
397
    }
398
    /**
399
     * Set CalendarItem value
400
     * This property belongs to a choice that allows only one property to exist. It is
401
     * therefore removable from the request, consequently if the value assigned to this
402
     * property is null, the property is removed from this object
403
     * @throws InvalidArgumentException
404
     * @param \StructType\EwsCalendarItemType $calendarItem
405
     * @return \StructType\EwsSyncFolderItemsCreateOrUpdateType
406
     */
407
    public function setCalendarItem(?\StructType\EwsCalendarItemType $calendarItem = null): self
408
    {
409
        // validation for constraint: choice(Item, Message, CalendarItem, Contact, DistributionList, MeetingMessage, MeetingRequest, MeetingResponse, MeetingCancellation, Task, PostItem, RoleMember, Network, Person, Booking)
410
        if ('' !== ($calendarItemChoiceErrorMessage = self::validateCalendarItemForChoiceConstraintsFromSetCalendarItem($calendarItem))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsSyncFolder...tsFromSetCalendarItem() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

410
        if ('' !== ($calendarItemChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateCalendarItemForChoiceConstraintsFromSetCalendarItem($calendarItem))) {
Loading history...
411
            throw new InvalidArgumentException($calendarItemChoiceErrorMessage, __LINE__);
412
        }
413
        if (is_null($calendarItem) || (is_array($calendarItem) && empty($calendarItem))) {
414
            unset($this->CalendarItem);
415
        } else {
416
            $this->CalendarItem = $calendarItem;
417
        }
418
        
419
        return $this;
420
    }
421
    /**
422
     * Get Contact value
423
     * @return \StructType\EwsContactItemType|null
424
     */
425
    public function getContact(): ?\StructType\EwsContactItemType
426
    {
427
        return isset($this->Contact) ? $this->Contact : null;
428
    }
429
    /**
430
     * This method is responsible for validating the value passed to the setContact method
431
     * This method is willingly generated in order to preserve the one-line inline validation within the setContact method
432
     * This has to validate that the property which is being set is the only one among the given choices
433
     * @param mixed $value
434
     * @return string A non-empty message if the values does not match the validation rules
435
     */
436
    public function validateContactForChoiceConstraintsFromSetContact($value): string
437
    {
438
        $message = '';
439
        if (is_null($value)) {
440
            return $message;
441
        }
442
        $properties = [
443
            'Item',
444
            'Message',
445
            'CalendarItem',
446
            'DistributionList',
447
            'MeetingMessage',
448
            'MeetingRequest',
449
            'MeetingResponse',
450
            'MeetingCancellation',
451
            'Task',
452
            'PostItem',
453
            'RoleMember',
454
            'Network',
455
            'Person',
456
            'Booking',
457
        ];
458
        try {
459
            foreach ($properties as $property) {
460
                if (isset($this->{$property})) {
461
                    throw new InvalidArgumentException(sprintf('The property Contact can\'t be set as the property %s is already set. Only one property must be set among these properties: Contact, %s.', $property, implode(', ', $properties)), __LINE__);
462
                }
463
            }
464
        } catch (InvalidArgumentException $e) {
465
            $message = $e->getMessage();
466
        }
467
        
468
        return $message;
469
    }
470
    /**
471
     * Set Contact value
472
     * This property belongs to a choice that allows only one property to exist. It is
473
     * therefore removable from the request, consequently if the value assigned to this
474
     * property is null, the property is removed from this object
475
     * @throws InvalidArgumentException
476
     * @param \StructType\EwsContactItemType $contact
477
     * @return \StructType\EwsSyncFolderItemsCreateOrUpdateType
478
     */
479
    public function setContact(?\StructType\EwsContactItemType $contact = null): self
480
    {
481
        // validation for constraint: choice(Item, Message, CalendarItem, Contact, DistributionList, MeetingMessage, MeetingRequest, MeetingResponse, MeetingCancellation, Task, PostItem, RoleMember, Network, Person, Booking)
482
        if ('' !== ($contactChoiceErrorMessage = self::validateContactForChoiceConstraintsFromSetContact($contact))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsSyncFolder...traintsFromSetContact() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

482
        if ('' !== ($contactChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateContactForChoiceConstraintsFromSetContact($contact))) {
Loading history...
483
            throw new InvalidArgumentException($contactChoiceErrorMessage, __LINE__);
484
        }
485
        if (is_null($contact) || (is_array($contact) && empty($contact))) {
486
            unset($this->Contact);
487
        } else {
488
            $this->Contact = $contact;
489
        }
490
        
491
        return $this;
492
    }
493
    /**
494
     * Get DistributionList value
495
     * @return \StructType\EwsDistributionListType|null
496
     */
497
    public function getDistributionList(): ?\StructType\EwsDistributionListType
498
    {
499
        return isset($this->DistributionList) ? $this->DistributionList : null;
500
    }
501
    /**
502
     * This method is responsible for validating the value passed to the setDistributionList method
503
     * This method is willingly generated in order to preserve the one-line inline validation within the setDistributionList method
504
     * This has to validate that the property which is being set is the only one among the given choices
505
     * @param mixed $value
506
     * @return string A non-empty message if the values does not match the validation rules
507
     */
508
    public function validateDistributionListForChoiceConstraintsFromSetDistributionList($value): string
509
    {
510
        $message = '';
511
        if (is_null($value)) {
512
            return $message;
513
        }
514
        $properties = [
515
            'Item',
516
            'Message',
517
            'CalendarItem',
518
            'Contact',
519
            'MeetingMessage',
520
            'MeetingRequest',
521
            'MeetingResponse',
522
            'MeetingCancellation',
523
            'Task',
524
            'PostItem',
525
            'RoleMember',
526
            'Network',
527
            'Person',
528
            'Booking',
529
        ];
530
        try {
531
            foreach ($properties as $property) {
532
                if (isset($this->{$property})) {
533
                    throw new InvalidArgumentException(sprintf('The property DistributionList can\'t be set as the property %s is already set. Only one property must be set among these properties: DistributionList, %s.', $property, implode(', ', $properties)), __LINE__);
534
                }
535
            }
536
        } catch (InvalidArgumentException $e) {
537
            $message = $e->getMessage();
538
        }
539
        
540
        return $message;
541
    }
542
    /**
543
     * Set DistributionList value
544
     * This property belongs to a choice that allows only one property to exist. It is
545
     * therefore removable from the request, consequently if the value assigned to this
546
     * property is null, the property is removed from this object
547
     * @throws InvalidArgumentException
548
     * @param \StructType\EwsDistributionListType $distributionList
549
     * @return \StructType\EwsSyncFolderItemsCreateOrUpdateType
550
     */
551
    public function setDistributionList(?\StructType\EwsDistributionListType $distributionList = null): self
552
    {
553
        // validation for constraint: choice(Item, Message, CalendarItem, Contact, DistributionList, MeetingMessage, MeetingRequest, MeetingResponse, MeetingCancellation, Task, PostItem, RoleMember, Network, Person, Booking)
554
        if ('' !== ($distributionListChoiceErrorMessage = self::validateDistributionListForChoiceConstraintsFromSetDistributionList($distributionList))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsSyncFolder...omSetDistributionList() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

554
        if ('' !== ($distributionListChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateDistributionListForChoiceConstraintsFromSetDistributionList($distributionList))) {
Loading history...
555
            throw new InvalidArgumentException($distributionListChoiceErrorMessage, __LINE__);
556
        }
557
        if (is_null($distributionList) || (is_array($distributionList) && empty($distributionList))) {
558
            unset($this->DistributionList);
559
        } else {
560
            $this->DistributionList = $distributionList;
561
        }
562
        
563
        return $this;
564
    }
565
    /**
566
     * Get MeetingMessage value
567
     * @return \StructType\EwsMeetingMessageType|null
568
     */
569
    public function getMeetingMessage(): ?\StructType\EwsMeetingMessageType
570
    {
571
        return isset($this->MeetingMessage) ? $this->MeetingMessage : null;
572
    }
573
    /**
574
     * This method is responsible for validating the value passed to the setMeetingMessage method
575
     * This method is willingly generated in order to preserve the one-line inline validation within the setMeetingMessage method
576
     * This has to validate that the property which is being set is the only one among the given choices
577
     * @param mixed $value
578
     * @return string A non-empty message if the values does not match the validation rules
579
     */
580
    public function validateMeetingMessageForChoiceConstraintsFromSetMeetingMessage($value): string
581
    {
582
        $message = '';
583
        if (is_null($value)) {
584
            return $message;
585
        }
586
        $properties = [
587
            'Item',
588
            'Message',
589
            'CalendarItem',
590
            'Contact',
591
            'DistributionList',
592
            'MeetingRequest',
593
            'MeetingResponse',
594
            'MeetingCancellation',
595
            'Task',
596
            'PostItem',
597
            'RoleMember',
598
            'Network',
599
            'Person',
600
            'Booking',
601
        ];
602
        try {
603
            foreach ($properties as $property) {
604
                if (isset($this->{$property})) {
605
                    throw new InvalidArgumentException(sprintf('The property MeetingMessage can\'t be set as the property %s is already set. Only one property must be set among these properties: MeetingMessage, %s.', $property, implode(', ', $properties)), __LINE__);
606
                }
607
            }
608
        } catch (InvalidArgumentException $e) {
609
            $message = $e->getMessage();
610
        }
611
        
612
        return $message;
613
    }
614
    /**
615
     * Set MeetingMessage value
616
     * This property belongs to a choice that allows only one property to exist. It is
617
     * therefore removable from the request, consequently if the value assigned to this
618
     * property is null, the property is removed from this object
619
     * @throws InvalidArgumentException
620
     * @param \StructType\EwsMeetingMessageType $meetingMessage
621
     * @return \StructType\EwsSyncFolderItemsCreateOrUpdateType
622
     */
623
    public function setMeetingMessage(?\StructType\EwsMeetingMessageType $meetingMessage = null): self
624
    {
625
        // validation for constraint: choice(Item, Message, CalendarItem, Contact, DistributionList, MeetingMessage, MeetingRequest, MeetingResponse, MeetingCancellation, Task, PostItem, RoleMember, Network, Person, Booking)
626
        if ('' !== ($meetingMessageChoiceErrorMessage = self::validateMeetingMessageForChoiceConstraintsFromSetMeetingMessage($meetingMessage))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsSyncFolder...FromSetMeetingMessage() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

626
        if ('' !== ($meetingMessageChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateMeetingMessageForChoiceConstraintsFromSetMeetingMessage($meetingMessage))) {
Loading history...
627
            throw new InvalidArgumentException($meetingMessageChoiceErrorMessage, __LINE__);
628
        }
629
        if (is_null($meetingMessage) || (is_array($meetingMessage) && empty($meetingMessage))) {
630
            unset($this->MeetingMessage);
631
        } else {
632
            $this->MeetingMessage = $meetingMessage;
633
        }
634
        
635
        return $this;
636
    }
637
    /**
638
     * Get MeetingRequest value
639
     * @return \StructType\EwsMeetingRequestMessageType|null
640
     */
641
    public function getMeetingRequest(): ?\StructType\EwsMeetingRequestMessageType
642
    {
643
        return isset($this->MeetingRequest) ? $this->MeetingRequest : null;
644
    }
645
    /**
646
     * This method is responsible for validating the value passed to the setMeetingRequest method
647
     * This method is willingly generated in order to preserve the one-line inline validation within the setMeetingRequest method
648
     * This has to validate that the property which is being set is the only one among the given choices
649
     * @param mixed $value
650
     * @return string A non-empty message if the values does not match the validation rules
651
     */
652
    public function validateMeetingRequestForChoiceConstraintsFromSetMeetingRequest($value): string
653
    {
654
        $message = '';
655
        if (is_null($value)) {
656
            return $message;
657
        }
658
        $properties = [
659
            'Item',
660
            'Message',
661
            'CalendarItem',
662
            'Contact',
663
            'DistributionList',
664
            'MeetingMessage',
665
            'MeetingResponse',
666
            'MeetingCancellation',
667
            'Task',
668
            'PostItem',
669
            'RoleMember',
670
            'Network',
671
            'Person',
672
            'Booking',
673
        ];
674
        try {
675
            foreach ($properties as $property) {
676
                if (isset($this->{$property})) {
677
                    throw new InvalidArgumentException(sprintf('The property MeetingRequest can\'t be set as the property %s is already set. Only one property must be set among these properties: MeetingRequest, %s.', $property, implode(', ', $properties)), __LINE__);
678
                }
679
            }
680
        } catch (InvalidArgumentException $e) {
681
            $message = $e->getMessage();
682
        }
683
        
684
        return $message;
685
    }
686
    /**
687
     * Set MeetingRequest value
688
     * This property belongs to a choice that allows only one property to exist. It is
689
     * therefore removable from the request, consequently if the value assigned to this
690
     * property is null, the property is removed from this object
691
     * @throws InvalidArgumentException
692
     * @param \StructType\EwsMeetingRequestMessageType $meetingRequest
693
     * @return \StructType\EwsSyncFolderItemsCreateOrUpdateType
694
     */
695
    public function setMeetingRequest(?\StructType\EwsMeetingRequestMessageType $meetingRequest = null): self
696
    {
697
        // validation for constraint: choice(Item, Message, CalendarItem, Contact, DistributionList, MeetingMessage, MeetingRequest, MeetingResponse, MeetingCancellation, Task, PostItem, RoleMember, Network, Person, Booking)
698
        if ('' !== ($meetingRequestChoiceErrorMessage = self::validateMeetingRequestForChoiceConstraintsFromSetMeetingRequest($meetingRequest))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsSyncFolder...FromSetMeetingRequest() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

698
        if ('' !== ($meetingRequestChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateMeetingRequestForChoiceConstraintsFromSetMeetingRequest($meetingRequest))) {
Loading history...
699
            throw new InvalidArgumentException($meetingRequestChoiceErrorMessage, __LINE__);
700
        }
701
        if (is_null($meetingRequest) || (is_array($meetingRequest) && empty($meetingRequest))) {
702
            unset($this->MeetingRequest);
703
        } else {
704
            $this->MeetingRequest = $meetingRequest;
705
        }
706
        
707
        return $this;
708
    }
709
    /**
710
     * Get MeetingResponse value
711
     * @return \StructType\EwsMeetingResponseMessageType|null
712
     */
713
    public function getMeetingResponse(): ?\StructType\EwsMeetingResponseMessageType
714
    {
715
        return isset($this->MeetingResponse) ? $this->MeetingResponse : null;
716
    }
717
    /**
718
     * This method is responsible for validating the value passed to the setMeetingResponse method
719
     * This method is willingly generated in order to preserve the one-line inline validation within the setMeetingResponse method
720
     * This has to validate that the property which is being set is the only one among the given choices
721
     * @param mixed $value
722
     * @return string A non-empty message if the values does not match the validation rules
723
     */
724
    public function validateMeetingResponseForChoiceConstraintsFromSetMeetingResponse($value): string
725
    {
726
        $message = '';
727
        if (is_null($value)) {
728
            return $message;
729
        }
730
        $properties = [
731
            'Item',
732
            'Message',
733
            'CalendarItem',
734
            'Contact',
735
            'DistributionList',
736
            'MeetingMessage',
737
            'MeetingRequest',
738
            'MeetingCancellation',
739
            'Task',
740
            'PostItem',
741
            'RoleMember',
742
            'Network',
743
            'Person',
744
            'Booking',
745
        ];
746
        try {
747
            foreach ($properties as $property) {
748
                if (isset($this->{$property})) {
749
                    throw new InvalidArgumentException(sprintf('The property MeetingResponse can\'t be set as the property %s is already set. Only one property must be set among these properties: MeetingResponse, %s.', $property, implode(', ', $properties)), __LINE__);
750
                }
751
            }
752
        } catch (InvalidArgumentException $e) {
753
            $message = $e->getMessage();
754
        }
755
        
756
        return $message;
757
    }
758
    /**
759
     * Set MeetingResponse value
760
     * This property belongs to a choice that allows only one property to exist. It is
761
     * therefore removable from the request, consequently if the value assigned to this
762
     * property is null, the property is removed from this object
763
     * @throws InvalidArgumentException
764
     * @param \StructType\EwsMeetingResponseMessageType $meetingResponse
765
     * @return \StructType\EwsSyncFolderItemsCreateOrUpdateType
766
     */
767
    public function setMeetingResponse(?\StructType\EwsMeetingResponseMessageType $meetingResponse = null): self
768
    {
769
        // validation for constraint: choice(Item, Message, CalendarItem, Contact, DistributionList, MeetingMessage, MeetingRequest, MeetingResponse, MeetingCancellation, Task, PostItem, RoleMember, Network, Person, Booking)
770
        if ('' !== ($meetingResponseChoiceErrorMessage = self::validateMeetingResponseForChoiceConstraintsFromSetMeetingResponse($meetingResponse))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsSyncFolder...romSetMeetingResponse() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

770
        if ('' !== ($meetingResponseChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateMeetingResponseForChoiceConstraintsFromSetMeetingResponse($meetingResponse))) {
Loading history...
771
            throw new InvalidArgumentException($meetingResponseChoiceErrorMessage, __LINE__);
772
        }
773
        if (is_null($meetingResponse) || (is_array($meetingResponse) && empty($meetingResponse))) {
774
            unset($this->MeetingResponse);
775
        } else {
776
            $this->MeetingResponse = $meetingResponse;
777
        }
778
        
779
        return $this;
780
    }
781
    /**
782
     * Get MeetingCancellation value
783
     * @return \StructType\EwsMeetingCancellationMessageType|null
784
     */
785
    public function getMeetingCancellation(): ?\StructType\EwsMeetingCancellationMessageType
786
    {
787
        return isset($this->MeetingCancellation) ? $this->MeetingCancellation : null;
788
    }
789
    /**
790
     * This method is responsible for validating the value passed to the setMeetingCancellation method
791
     * This method is willingly generated in order to preserve the one-line inline validation within the setMeetingCancellation method
792
     * This has to validate that the property which is being set is the only one among the given choices
793
     * @param mixed $value
794
     * @return string A non-empty message if the values does not match the validation rules
795
     */
796
    public function validateMeetingCancellationForChoiceConstraintsFromSetMeetingCancellation($value): string
797
    {
798
        $message = '';
799
        if (is_null($value)) {
800
            return $message;
801
        }
802
        $properties = [
803
            'Item',
804
            'Message',
805
            'CalendarItem',
806
            'Contact',
807
            'DistributionList',
808
            'MeetingMessage',
809
            'MeetingRequest',
810
            'MeetingResponse',
811
            'Task',
812
            'PostItem',
813
            'RoleMember',
814
            'Network',
815
            'Person',
816
            'Booking',
817
        ];
818
        try {
819
            foreach ($properties as $property) {
820
                if (isset($this->{$property})) {
821
                    throw new InvalidArgumentException(sprintf('The property MeetingCancellation can\'t be set as the property %s is already set. Only one property must be set among these properties: MeetingCancellation, %s.', $property, implode(', ', $properties)), __LINE__);
822
                }
823
            }
824
        } catch (InvalidArgumentException $e) {
825
            $message = $e->getMessage();
826
        }
827
        
828
        return $message;
829
    }
830
    /**
831
     * Set MeetingCancellation value
832
     * This property belongs to a choice that allows only one property to exist. It is
833
     * therefore removable from the request, consequently if the value assigned to this
834
     * property is null, the property is removed from this object
835
     * @throws InvalidArgumentException
836
     * @param \StructType\EwsMeetingCancellationMessageType $meetingCancellation
837
     * @return \StructType\EwsSyncFolderItemsCreateOrUpdateType
838
     */
839
    public function setMeetingCancellation(?\StructType\EwsMeetingCancellationMessageType $meetingCancellation = null): self
840
    {
841
        // validation for constraint: choice(Item, Message, CalendarItem, Contact, DistributionList, MeetingMessage, MeetingRequest, MeetingResponse, MeetingCancellation, Task, PostItem, RoleMember, Network, Person, Booking)
842
        if ('' !== ($meetingCancellationChoiceErrorMessage = self::validateMeetingCancellationForChoiceConstraintsFromSetMeetingCancellation($meetingCancellation))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsSyncFolder...etMeetingCancellation() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

842
        if ('' !== ($meetingCancellationChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateMeetingCancellationForChoiceConstraintsFromSetMeetingCancellation($meetingCancellation))) {
Loading history...
843
            throw new InvalidArgumentException($meetingCancellationChoiceErrorMessage, __LINE__);
844
        }
845
        if (is_null($meetingCancellation) || (is_array($meetingCancellation) && empty($meetingCancellation))) {
846
            unset($this->MeetingCancellation);
847
        } else {
848
            $this->MeetingCancellation = $meetingCancellation;
849
        }
850
        
851
        return $this;
852
    }
853
    /**
854
     * Get Task value
855
     * @return \StructType\EwsTaskType|null
856
     */
857
    public function getTask(): ?\StructType\EwsTaskType
858
    {
859
        return isset($this->Task) ? $this->Task : null;
860
    }
861
    /**
862
     * This method is responsible for validating the value passed to the setTask method
863
     * This method is willingly generated in order to preserve the one-line inline validation within the setTask method
864
     * This has to validate that the property which is being set is the only one among the given choices
865
     * @param mixed $value
866
     * @return string A non-empty message if the values does not match the validation rules
867
     */
868
    public function validateTaskForChoiceConstraintsFromSetTask($value): string
869
    {
870
        $message = '';
871
        if (is_null($value)) {
872
            return $message;
873
        }
874
        $properties = [
875
            'Item',
876
            'Message',
877
            'CalendarItem',
878
            'Contact',
879
            'DistributionList',
880
            'MeetingMessage',
881
            'MeetingRequest',
882
            'MeetingResponse',
883
            'MeetingCancellation',
884
            'PostItem',
885
            'RoleMember',
886
            'Network',
887
            'Person',
888
            'Booking',
889
        ];
890
        try {
891
            foreach ($properties as $property) {
892
                if (isset($this->{$property})) {
893
                    throw new InvalidArgumentException(sprintf('The property Task can\'t be set as the property %s is already set. Only one property must be set among these properties: Task, %s.', $property, implode(', ', $properties)), __LINE__);
894
                }
895
            }
896
        } catch (InvalidArgumentException $e) {
897
            $message = $e->getMessage();
898
        }
899
        
900
        return $message;
901
    }
902
    /**
903
     * Set Task value
904
     * This property belongs to a choice that allows only one property to exist. It is
905
     * therefore removable from the request, consequently if the value assigned to this
906
     * property is null, the property is removed from this object
907
     * @throws InvalidArgumentException
908
     * @param \StructType\EwsTaskType $task
909
     * @return \StructType\EwsSyncFolderItemsCreateOrUpdateType
910
     */
911
    public function setTask(?\StructType\EwsTaskType $task = null): self
912
    {
913
        // validation for constraint: choice(Item, Message, CalendarItem, Contact, DistributionList, MeetingMessage, MeetingRequest, MeetingResponse, MeetingCancellation, Task, PostItem, RoleMember, Network, Person, Booking)
914
        if ('' !== ($taskChoiceErrorMessage = self::validateTaskForChoiceConstraintsFromSetTask($task))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsSyncFolder...onstraintsFromSetTask() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

914
        if ('' !== ($taskChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateTaskForChoiceConstraintsFromSetTask($task))) {
Loading history...
915
            throw new InvalidArgumentException($taskChoiceErrorMessage, __LINE__);
916
        }
917
        if (is_null($task) || (is_array($task) && empty($task))) {
918
            unset($this->Task);
919
        } else {
920
            $this->Task = $task;
921
        }
922
        
923
        return $this;
924
    }
925
    /**
926
     * Get PostItem value
927
     * @return \StructType\EwsPostItemType|null
928
     */
929
    public function getPostItem(): ?\StructType\EwsPostItemType
930
    {
931
        return isset($this->PostItem) ? $this->PostItem : null;
932
    }
933
    /**
934
     * This method is responsible for validating the value passed to the setPostItem method
935
     * This method is willingly generated in order to preserve the one-line inline validation within the setPostItem method
936
     * This has to validate that the property which is being set is the only one among the given choices
937
     * @param mixed $value
938
     * @return string A non-empty message if the values does not match the validation rules
939
     */
940
    public function validatePostItemForChoiceConstraintsFromSetPostItem($value): string
941
    {
942
        $message = '';
943
        if (is_null($value)) {
944
            return $message;
945
        }
946
        $properties = [
947
            'Item',
948
            'Message',
949
            'CalendarItem',
950
            'Contact',
951
            'DistributionList',
952
            'MeetingMessage',
953
            'MeetingRequest',
954
            'MeetingResponse',
955
            'MeetingCancellation',
956
            'Task',
957
            'RoleMember',
958
            'Network',
959
            'Person',
960
            'Booking',
961
        ];
962
        try {
963
            foreach ($properties as $property) {
964
                if (isset($this->{$property})) {
965
                    throw new InvalidArgumentException(sprintf('The property PostItem can\'t be set as the property %s is already set. Only one property must be set among these properties: PostItem, %s.', $property, implode(', ', $properties)), __LINE__);
966
                }
967
            }
968
        } catch (InvalidArgumentException $e) {
969
            $message = $e->getMessage();
970
        }
971
        
972
        return $message;
973
    }
974
    /**
975
     * Set PostItem value
976
     * This property belongs to a choice that allows only one property to exist. It is
977
     * therefore removable from the request, consequently if the value assigned to this
978
     * property is null, the property is removed from this object
979
     * @throws InvalidArgumentException
980
     * @param \StructType\EwsPostItemType $postItem
981
     * @return \StructType\EwsSyncFolderItemsCreateOrUpdateType
982
     */
983
    public function setPostItem(?\StructType\EwsPostItemType $postItem = null): self
984
    {
985
        // validation for constraint: choice(Item, Message, CalendarItem, Contact, DistributionList, MeetingMessage, MeetingRequest, MeetingResponse, MeetingCancellation, Task, PostItem, RoleMember, Network, Person, Booking)
986
        if ('' !== ($postItemChoiceErrorMessage = self::validatePostItemForChoiceConstraintsFromSetPostItem($postItem))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsSyncFolder...raintsFromSetPostItem() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

986
        if ('' !== ($postItemChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validatePostItemForChoiceConstraintsFromSetPostItem($postItem))) {
Loading history...
987
            throw new InvalidArgumentException($postItemChoiceErrorMessage, __LINE__);
988
        }
989
        if (is_null($postItem) || (is_array($postItem) && empty($postItem))) {
990
            unset($this->PostItem);
991
        } else {
992
            $this->PostItem = $postItem;
993
        }
994
        
995
        return $this;
996
    }
997
    /**
998
     * Get RoleMember value
999
     * @return \StructType\EwsRoleMemberItemType|null
1000
     */
1001
    public function getRoleMember(): ?\StructType\EwsRoleMemberItemType
1002
    {
1003
        return isset($this->RoleMember) ? $this->RoleMember : null;
1004
    }
1005
    /**
1006
     * This method is responsible for validating the value passed to the setRoleMember method
1007
     * This method is willingly generated in order to preserve the one-line inline validation within the setRoleMember method
1008
     * This has to validate that the property which is being set is the only one among the given choices
1009
     * @param mixed $value
1010
     * @return string A non-empty message if the values does not match the validation rules
1011
     */
1012
    public function validateRoleMemberForChoiceConstraintsFromSetRoleMember($value): string
1013
    {
1014
        $message = '';
1015
        if (is_null($value)) {
1016
            return $message;
1017
        }
1018
        $properties = [
1019
            'Item',
1020
            'Message',
1021
            'CalendarItem',
1022
            'Contact',
1023
            'DistributionList',
1024
            'MeetingMessage',
1025
            'MeetingRequest',
1026
            'MeetingResponse',
1027
            'MeetingCancellation',
1028
            'Task',
1029
            'PostItem',
1030
            'Network',
1031
            'Person',
1032
            'Booking',
1033
        ];
1034
        try {
1035
            foreach ($properties as $property) {
1036
                if (isset($this->{$property})) {
1037
                    throw new InvalidArgumentException(sprintf('The property RoleMember can\'t be set as the property %s is already set. Only one property must be set among these properties: RoleMember, %s.', $property, implode(', ', $properties)), __LINE__);
1038
                }
1039
            }
1040
        } catch (InvalidArgumentException $e) {
1041
            $message = $e->getMessage();
1042
        }
1043
        
1044
        return $message;
1045
    }
1046
    /**
1047
     * Set RoleMember value
1048
     * This property belongs to a choice that allows only one property to exist. It is
1049
     * therefore removable from the request, consequently if the value assigned to this
1050
     * property is null, the property is removed from this object
1051
     * @throws InvalidArgumentException
1052
     * @param \StructType\EwsRoleMemberItemType $roleMember
1053
     * @return \StructType\EwsSyncFolderItemsCreateOrUpdateType
1054
     */
1055
    public function setRoleMember(?\StructType\EwsRoleMemberItemType $roleMember = null): self
1056
    {
1057
        // validation for constraint: choice(Item, Message, CalendarItem, Contact, DistributionList, MeetingMessage, MeetingRequest, MeetingResponse, MeetingCancellation, Task, PostItem, RoleMember, Network, Person, Booking)
1058
        if ('' !== ($roleMemberChoiceErrorMessage = self::validateRoleMemberForChoiceConstraintsFromSetRoleMember($roleMember))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsSyncFolder...intsFromSetRoleMember() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

1058
        if ('' !== ($roleMemberChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateRoleMemberForChoiceConstraintsFromSetRoleMember($roleMember))) {
Loading history...
1059
            throw new InvalidArgumentException($roleMemberChoiceErrorMessage, __LINE__);
1060
        }
1061
        if (is_null($roleMember) || (is_array($roleMember) && empty($roleMember))) {
1062
            unset($this->RoleMember);
1063
        } else {
1064
            $this->RoleMember = $roleMember;
1065
        }
1066
        
1067
        return $this;
1068
    }
1069
    /**
1070
     * Get Network value
1071
     * @return \StructType\EwsNetworkItemType|null
1072
     */
1073
    public function getNetwork(): ?\StructType\EwsNetworkItemType
1074
    {
1075
        return isset($this->Network) ? $this->Network : null;
1076
    }
1077
    /**
1078
     * This method is responsible for validating the value passed to the setNetwork method
1079
     * This method is willingly generated in order to preserve the one-line inline validation within the setNetwork method
1080
     * This has to validate that the property which is being set is the only one among the given choices
1081
     * @param mixed $value
1082
     * @return string A non-empty message if the values does not match the validation rules
1083
     */
1084
    public function validateNetworkForChoiceConstraintsFromSetNetwork($value): string
1085
    {
1086
        $message = '';
1087
        if (is_null($value)) {
1088
            return $message;
1089
        }
1090
        $properties = [
1091
            'Item',
1092
            'Message',
1093
            'CalendarItem',
1094
            'Contact',
1095
            'DistributionList',
1096
            'MeetingMessage',
1097
            'MeetingRequest',
1098
            'MeetingResponse',
1099
            'MeetingCancellation',
1100
            'Task',
1101
            'PostItem',
1102
            'RoleMember',
1103
            'Person',
1104
            'Booking',
1105
        ];
1106
        try {
1107
            foreach ($properties as $property) {
1108
                if (isset($this->{$property})) {
1109
                    throw new InvalidArgumentException(sprintf('The property Network can\'t be set as the property %s is already set. Only one property must be set among these properties: Network, %s.', $property, implode(', ', $properties)), __LINE__);
1110
                }
1111
            }
1112
        } catch (InvalidArgumentException $e) {
1113
            $message = $e->getMessage();
1114
        }
1115
        
1116
        return $message;
1117
    }
1118
    /**
1119
     * Set Network value
1120
     * This property belongs to a choice that allows only one property to exist. It is
1121
     * therefore removable from the request, consequently if the value assigned to this
1122
     * property is null, the property is removed from this object
1123
     * @throws InvalidArgumentException
1124
     * @param \StructType\EwsNetworkItemType $network
1125
     * @return \StructType\EwsSyncFolderItemsCreateOrUpdateType
1126
     */
1127
    public function setNetwork(?\StructType\EwsNetworkItemType $network = null): self
1128
    {
1129
        // validation for constraint: choice(Item, Message, CalendarItem, Contact, DistributionList, MeetingMessage, MeetingRequest, MeetingResponse, MeetingCancellation, Task, PostItem, RoleMember, Network, Person, Booking)
1130
        if ('' !== ($networkChoiceErrorMessage = self::validateNetworkForChoiceConstraintsFromSetNetwork($network))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsSyncFolder...traintsFromSetNetwork() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

1130
        if ('' !== ($networkChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateNetworkForChoiceConstraintsFromSetNetwork($network))) {
Loading history...
1131
            throw new InvalidArgumentException($networkChoiceErrorMessage, __LINE__);
1132
        }
1133
        if (is_null($network) || (is_array($network) && empty($network))) {
1134
            unset($this->Network);
1135
        } else {
1136
            $this->Network = $network;
1137
        }
1138
        
1139
        return $this;
1140
    }
1141
    /**
1142
     * Get Person value
1143
     * @return \StructType\EwsAbchPersonItemType|null
1144
     */
1145
    public function getPerson(): ?\StructType\EwsAbchPersonItemType
1146
    {
1147
        return isset($this->Person) ? $this->Person : null;
1148
    }
1149
    /**
1150
     * This method is responsible for validating the value passed to the setPerson method
1151
     * This method is willingly generated in order to preserve the one-line inline validation within the setPerson method
1152
     * This has to validate that the property which is being set is the only one among the given choices
1153
     * @param mixed $value
1154
     * @return string A non-empty message if the values does not match the validation rules
1155
     */
1156
    public function validatePersonForChoiceConstraintsFromSetPerson($value): string
1157
    {
1158
        $message = '';
1159
        if (is_null($value)) {
1160
            return $message;
1161
        }
1162
        $properties = [
1163
            'Item',
1164
            'Message',
1165
            'CalendarItem',
1166
            'Contact',
1167
            'DistributionList',
1168
            'MeetingMessage',
1169
            'MeetingRequest',
1170
            'MeetingResponse',
1171
            'MeetingCancellation',
1172
            'Task',
1173
            'PostItem',
1174
            'RoleMember',
1175
            'Network',
1176
            'Booking',
1177
        ];
1178
        try {
1179
            foreach ($properties as $property) {
1180
                if (isset($this->{$property})) {
1181
                    throw new InvalidArgumentException(sprintf('The property Person can\'t be set as the property %s is already set. Only one property must be set among these properties: Person, %s.', $property, implode(', ', $properties)), __LINE__);
1182
                }
1183
            }
1184
        } catch (InvalidArgumentException $e) {
1185
            $message = $e->getMessage();
1186
        }
1187
        
1188
        return $message;
1189
    }
1190
    /**
1191
     * Set Person value
1192
     * This property belongs to a choice that allows only one property to exist. It is
1193
     * therefore removable from the request, consequently if the value assigned to this
1194
     * property is null, the property is removed from this object
1195
     * @throws InvalidArgumentException
1196
     * @param \StructType\EwsAbchPersonItemType $person
1197
     * @return \StructType\EwsSyncFolderItemsCreateOrUpdateType
1198
     */
1199
    public function setPerson(?\StructType\EwsAbchPersonItemType $person = null): self
1200
    {
1201
        // validation for constraint: choice(Item, Message, CalendarItem, Contact, DistributionList, MeetingMessage, MeetingRequest, MeetingResponse, MeetingCancellation, Task, PostItem, RoleMember, Network, Person, Booking)
1202
        if ('' !== ($personChoiceErrorMessage = self::validatePersonForChoiceConstraintsFromSetPerson($person))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsSyncFolder...straintsFromSetPerson() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

1202
        if ('' !== ($personChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validatePersonForChoiceConstraintsFromSetPerson($person))) {
Loading history...
1203
            throw new InvalidArgumentException($personChoiceErrorMessage, __LINE__);
1204
        }
1205
        if (is_null($person) || (is_array($person) && empty($person))) {
1206
            unset($this->Person);
1207
        } else {
1208
            $this->Person = $person;
1209
        }
1210
        
1211
        return $this;
1212
    }
1213
    /**
1214
     * Get Booking value
1215
     * @return \StructType\EwsBookingItemType|null
1216
     */
1217
    public function getBooking(): ?\StructType\EwsBookingItemType
1218
    {
1219
        return isset($this->Booking) ? $this->Booking : null;
1220
    }
1221
    /**
1222
     * This method is responsible for validating the value passed to the setBooking method
1223
     * This method is willingly generated in order to preserve the one-line inline validation within the setBooking method
1224
     * This has to validate that the property which is being set is the only one among the given choices
1225
     * @param mixed $value
1226
     * @return string A non-empty message if the values does not match the validation rules
1227
     */
1228
    public function validateBookingForChoiceConstraintsFromSetBooking($value): string
1229
    {
1230
        $message = '';
1231
        if (is_null($value)) {
1232
            return $message;
1233
        }
1234
        $properties = [
1235
            'Item',
1236
            'Message',
1237
            'CalendarItem',
1238
            'Contact',
1239
            'DistributionList',
1240
            'MeetingMessage',
1241
            'MeetingRequest',
1242
            'MeetingResponse',
1243
            'MeetingCancellation',
1244
            'Task',
1245
            'PostItem',
1246
            'RoleMember',
1247
            'Network',
1248
            'Person',
1249
        ];
1250
        try {
1251
            foreach ($properties as $property) {
1252
                if (isset($this->{$property})) {
1253
                    throw new InvalidArgumentException(sprintf('The property Booking can\'t be set as the property %s is already set. Only one property must be set among these properties: Booking, %s.', $property, implode(', ', $properties)), __LINE__);
1254
                }
1255
            }
1256
        } catch (InvalidArgumentException $e) {
1257
            $message = $e->getMessage();
1258
        }
1259
        
1260
        return $message;
1261
    }
1262
    /**
1263
     * Set Booking value
1264
     * This property belongs to a choice that allows only one property to exist. It is
1265
     * therefore removable from the request, consequently if the value assigned to this
1266
     * property is null, the property is removed from this object
1267
     * @throws InvalidArgumentException
1268
     * @param \StructType\EwsBookingItemType $booking
1269
     * @return \StructType\EwsSyncFolderItemsCreateOrUpdateType
1270
     */
1271
    public function setBooking(?\StructType\EwsBookingItemType $booking = null): self
1272
    {
1273
        // validation for constraint: choice(Item, Message, CalendarItem, Contact, DistributionList, MeetingMessage, MeetingRequest, MeetingResponse, MeetingCancellation, Task, PostItem, RoleMember, Network, Person, Booking)
1274
        if ('' !== ($bookingChoiceErrorMessage = self::validateBookingForChoiceConstraintsFromSetBooking($booking))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsSyncFolder...traintsFromSetBooking() is not static, but was called statically. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

1274
        if ('' !== ($bookingChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateBookingForChoiceConstraintsFromSetBooking($booking))) {
Loading history...
1275
            throw new InvalidArgumentException($bookingChoiceErrorMessage, __LINE__);
1276
        }
1277
        if (is_null($booking) || (is_array($booking) && empty($booking))) {
1278
            unset($this->Booking);
1279
        } else {
1280
            $this->Booking = $booking;
1281
        }
1282
        
1283
        return $this;
1284
    }
1285
}
1286