validateReplyToItemForChoiceConstraintsFromSetReplyToItem()   A
last analyzed

Complexity

Conditions 5
Paths 4

Size

Total Lines 31
Code Lines 23

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 5
eloc 23
nc 4
nop 1
dl 0
loc 31
rs 9.2408
c 0
b 0
f 0
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 NonEmptyArrayOfResponseObjectsType StructType
12
 * @package Ews
13
 * @subpackage Structs
14
 * @author WsdlToPhp <[email protected]>
15
 */
16
class EwsNonEmptyArrayOfResponseObjectsType extends AbstractStructBase
17
{
18
    /**
19
     * The AcceptItem
20
     * Meta information extracted from the WSDL
21
     * - choice: AcceptItem | TentativelyAcceptItem | DeclineItem | ReplyToItem | ForwardItem | ReplyAllToItem | CancelCalendarItem | RemoveItem | SuppressReadReceipt | PostReplyItem | AcceptSharingInvitation | AddItemToMyCalendar | ProposeNewTime
22
     * - choiceMaxOccurs: unbounded
23
     * - choiceMinOccurs: 0
24
     * @var \StructType\EwsAcceptItemType|null
25
     */
26
    protected ?\StructType\EwsAcceptItemType $AcceptItem = null;
27
    /**
28
     * The TentativelyAcceptItem
29
     * Meta information extracted from the WSDL
30
     * - choice: AcceptItem | TentativelyAcceptItem | DeclineItem | ReplyToItem | ForwardItem | ReplyAllToItem | CancelCalendarItem | RemoveItem | SuppressReadReceipt | PostReplyItem | AcceptSharingInvitation | AddItemToMyCalendar | ProposeNewTime
31
     * - choiceMaxOccurs: unbounded
32
     * - choiceMinOccurs: 0
33
     * @var \StructType\EwsTentativelyAcceptItemType|null
34
     */
35
    protected ?\StructType\EwsTentativelyAcceptItemType $TentativelyAcceptItem = null;
36
    /**
37
     * The DeclineItem
38
     * Meta information extracted from the WSDL
39
     * - choice: AcceptItem | TentativelyAcceptItem | DeclineItem | ReplyToItem | ForwardItem | ReplyAllToItem | CancelCalendarItem | RemoveItem | SuppressReadReceipt | PostReplyItem | AcceptSharingInvitation | AddItemToMyCalendar | ProposeNewTime
40
     * - choiceMaxOccurs: unbounded
41
     * - choiceMinOccurs: 0
42
     * @var \StructType\EwsDeclineItemType|null
43
     */
44
    protected ?\StructType\EwsDeclineItemType $DeclineItem = null;
45
    /**
46
     * The ReplyToItem
47
     * Meta information extracted from the WSDL
48
     * - choice: AcceptItem | TentativelyAcceptItem | DeclineItem | ReplyToItem | ForwardItem | ReplyAllToItem | CancelCalendarItem | RemoveItem | SuppressReadReceipt | PostReplyItem | AcceptSharingInvitation | AddItemToMyCalendar | ProposeNewTime
49
     * - choiceMaxOccurs: unbounded
50
     * - choiceMinOccurs: 0
51
     * @var \StructType\EwsReplyToItemType|null
52
     */
53
    protected ?\StructType\EwsReplyToItemType $ReplyToItem = null;
54
    /**
55
     * The ForwardItem
56
     * Meta information extracted from the WSDL
57
     * - choice: AcceptItem | TentativelyAcceptItem | DeclineItem | ReplyToItem | ForwardItem | ReplyAllToItem | CancelCalendarItem | RemoveItem | SuppressReadReceipt | PostReplyItem | AcceptSharingInvitation | AddItemToMyCalendar | ProposeNewTime
58
     * - choiceMaxOccurs: unbounded
59
     * - choiceMinOccurs: 0
60
     * @var \StructType\EwsForwardItemType|null
61
     */
62
    protected ?\StructType\EwsForwardItemType $ForwardItem = null;
63
    /**
64
     * The ReplyAllToItem
65
     * Meta information extracted from the WSDL
66
     * - choice: AcceptItem | TentativelyAcceptItem | DeclineItem | ReplyToItem | ForwardItem | ReplyAllToItem | CancelCalendarItem | RemoveItem | SuppressReadReceipt | PostReplyItem | AcceptSharingInvitation | AddItemToMyCalendar | ProposeNewTime
67
     * - choiceMaxOccurs: unbounded
68
     * - choiceMinOccurs: 0
69
     * @var \StructType\EwsReplyAllToItemType|null
70
     */
71
    protected ?\StructType\EwsReplyAllToItemType $ReplyAllToItem = null;
72
    /**
73
     * The CancelCalendarItem
74
     * Meta information extracted from the WSDL
75
     * - choice: AcceptItem | TentativelyAcceptItem | DeclineItem | ReplyToItem | ForwardItem | ReplyAllToItem | CancelCalendarItem | RemoveItem | SuppressReadReceipt | PostReplyItem | AcceptSharingInvitation | AddItemToMyCalendar | ProposeNewTime
76
     * - choiceMaxOccurs: unbounded
77
     * - choiceMinOccurs: 0
78
     * @var \StructType\EwsCancelCalendarItemType|null
79
     */
80
    protected ?\StructType\EwsCancelCalendarItemType $CancelCalendarItem = null;
81
    /**
82
     * The RemoveItem
83
     * Meta information extracted from the WSDL
84
     * - choice: AcceptItem | TentativelyAcceptItem | DeclineItem | ReplyToItem | ForwardItem | ReplyAllToItem | CancelCalendarItem | RemoveItem | SuppressReadReceipt | PostReplyItem | AcceptSharingInvitation | AddItemToMyCalendar | ProposeNewTime
85
     * - choiceMaxOccurs: unbounded
86
     * - choiceMinOccurs: 0
87
     * @var \StructType\EwsRemoveItemType|null
88
     */
89
    protected ?\StructType\EwsRemoveItemType $RemoveItem = null;
90
    /**
91
     * The SuppressReadReceipt
92
     * Meta information extracted from the WSDL
93
     * - choice: AcceptItem | TentativelyAcceptItem | DeclineItem | ReplyToItem | ForwardItem | ReplyAllToItem | CancelCalendarItem | RemoveItem | SuppressReadReceipt | PostReplyItem | AcceptSharingInvitation | AddItemToMyCalendar | ProposeNewTime
94
     * - choiceMaxOccurs: unbounded
95
     * - choiceMinOccurs: 0
96
     * @var \StructType\EwsSuppressReadReceiptType|null
97
     */
98
    protected ?\StructType\EwsSuppressReadReceiptType $SuppressReadReceipt = null;
99
    /**
100
     * The PostReplyItem
101
     * Meta information extracted from the WSDL
102
     * - choice: AcceptItem | TentativelyAcceptItem | DeclineItem | ReplyToItem | ForwardItem | ReplyAllToItem | CancelCalendarItem | RemoveItem | SuppressReadReceipt | PostReplyItem | AcceptSharingInvitation | AddItemToMyCalendar | ProposeNewTime
103
     * - choiceMaxOccurs: unbounded
104
     * - choiceMinOccurs: 0
105
     * @var \StructType\EwsPostReplyItemType|null
106
     */
107
    protected ?\StructType\EwsPostReplyItemType $PostReplyItem = null;
108
    /**
109
     * The AcceptSharingInvitation
110
     * Meta information extracted from the WSDL
111
     * - choice: AcceptItem | TentativelyAcceptItem | DeclineItem | ReplyToItem | ForwardItem | ReplyAllToItem | CancelCalendarItem | RemoveItem | SuppressReadReceipt | PostReplyItem | AcceptSharingInvitation | AddItemToMyCalendar | ProposeNewTime
112
     * - choiceMaxOccurs: unbounded
113
     * - choiceMinOccurs: 0
114
     * @var \StructType\EwsAcceptSharingInvitationType|null
115
     */
116
    protected ?\StructType\EwsAcceptSharingInvitationType $AcceptSharingInvitation = null;
117
    /**
118
     * The AddItemToMyCalendar
119
     * Meta information extracted from the WSDL
120
     * - choice: AcceptItem | TentativelyAcceptItem | DeclineItem | ReplyToItem | ForwardItem | ReplyAllToItem | CancelCalendarItem | RemoveItem | SuppressReadReceipt | PostReplyItem | AcceptSharingInvitation | AddItemToMyCalendar | ProposeNewTime
121
     * - choiceMaxOccurs: unbounded
122
     * - choiceMinOccurs: 0
123
     * @var \StructType\EwsAddItemToMyCalendarType|null
124
     */
125
    protected ?\StructType\EwsAddItemToMyCalendarType $AddItemToMyCalendar = null;
126
    /**
127
     * The ProposeNewTime
128
     * Meta information extracted from the WSDL
129
     * - choice: AcceptItem | TentativelyAcceptItem | DeclineItem | ReplyToItem | ForwardItem | ReplyAllToItem | CancelCalendarItem | RemoveItem | SuppressReadReceipt | PostReplyItem | AcceptSharingInvitation | AddItemToMyCalendar | ProposeNewTime
130
     * - choiceMaxOccurs: unbounded
131
     * - choiceMinOccurs: 0
132
     * @var \StructType\EwsProposeNewTimeType|null
133
     */
134
    protected ?\StructType\EwsProposeNewTimeType $ProposeNewTime = null;
135
    /**
136
     * Constructor method for NonEmptyArrayOfResponseObjectsType
137
     * @uses EwsNonEmptyArrayOfResponseObjectsType::setAcceptItem()
138
     * @uses EwsNonEmptyArrayOfResponseObjectsType::setTentativelyAcceptItem()
139
     * @uses EwsNonEmptyArrayOfResponseObjectsType::setDeclineItem()
140
     * @uses EwsNonEmptyArrayOfResponseObjectsType::setReplyToItem()
141
     * @uses EwsNonEmptyArrayOfResponseObjectsType::setForwardItem()
142
     * @uses EwsNonEmptyArrayOfResponseObjectsType::setReplyAllToItem()
143
     * @uses EwsNonEmptyArrayOfResponseObjectsType::setCancelCalendarItem()
144
     * @uses EwsNonEmptyArrayOfResponseObjectsType::setRemoveItem()
145
     * @uses EwsNonEmptyArrayOfResponseObjectsType::setSuppressReadReceipt()
146
     * @uses EwsNonEmptyArrayOfResponseObjectsType::setPostReplyItem()
147
     * @uses EwsNonEmptyArrayOfResponseObjectsType::setAcceptSharingInvitation()
148
     * @uses EwsNonEmptyArrayOfResponseObjectsType::setAddItemToMyCalendar()
149
     * @uses EwsNonEmptyArrayOfResponseObjectsType::setProposeNewTime()
150
     * @param \StructType\EwsAcceptItemType $acceptItem
151
     * @param \StructType\EwsTentativelyAcceptItemType $tentativelyAcceptItem
152
     * @param \StructType\EwsDeclineItemType $declineItem
153
     * @param \StructType\EwsReplyToItemType $replyToItem
154
     * @param \StructType\EwsForwardItemType $forwardItem
155
     * @param \StructType\EwsReplyAllToItemType $replyAllToItem
156
     * @param \StructType\EwsCancelCalendarItemType $cancelCalendarItem
157
     * @param \StructType\EwsRemoveItemType $removeItem
158
     * @param \StructType\EwsSuppressReadReceiptType $suppressReadReceipt
159
     * @param \StructType\EwsPostReplyItemType $postReplyItem
160
     * @param \StructType\EwsAcceptSharingInvitationType $acceptSharingInvitation
161
     * @param \StructType\EwsAddItemToMyCalendarType $addItemToMyCalendar
162
     * @param \StructType\EwsProposeNewTimeType $proposeNewTime
163
     */
164
    public function __construct(?\StructType\EwsAcceptItemType $acceptItem = null, ?\StructType\EwsTentativelyAcceptItemType $tentativelyAcceptItem = null, ?\StructType\EwsDeclineItemType $declineItem = null, ?\StructType\EwsReplyToItemType $replyToItem = null, ?\StructType\EwsForwardItemType $forwardItem = null, ?\StructType\EwsReplyAllToItemType $replyAllToItem = null, ?\StructType\EwsCancelCalendarItemType $cancelCalendarItem = null, ?\StructType\EwsRemoveItemType $removeItem = null, ?\StructType\EwsSuppressReadReceiptType $suppressReadReceipt = null, ?\StructType\EwsPostReplyItemType $postReplyItem = null, ?\StructType\EwsAcceptSharingInvitationType $acceptSharingInvitation = null, ?\StructType\EwsAddItemToMyCalendarType $addItemToMyCalendar = null, ?\StructType\EwsProposeNewTimeType $proposeNewTime = null)
165
    {
166
        $this
167
            ->setAcceptItem($acceptItem)
168
            ->setTentativelyAcceptItem($tentativelyAcceptItem)
169
            ->setDeclineItem($declineItem)
170
            ->setReplyToItem($replyToItem)
171
            ->setForwardItem($forwardItem)
172
            ->setReplyAllToItem($replyAllToItem)
173
            ->setCancelCalendarItem($cancelCalendarItem)
174
            ->setRemoveItem($removeItem)
175
            ->setSuppressReadReceipt($suppressReadReceipt)
176
            ->setPostReplyItem($postReplyItem)
177
            ->setAcceptSharingInvitation($acceptSharingInvitation)
178
            ->setAddItemToMyCalendar($addItemToMyCalendar)
179
            ->setProposeNewTime($proposeNewTime);
180
    }
181
    /**
182
     * Get AcceptItem value
183
     * @return \StructType\EwsAcceptItemType|null
184
     */
185
    public function getAcceptItem(): ?\StructType\EwsAcceptItemType
186
    {
187
        return isset($this->AcceptItem) ? $this->AcceptItem : null;
188
    }
189
    /**
190
     * This method is responsible for validating the value passed to the setAcceptItem method
191
     * This method is willingly generated in order to preserve the one-line inline validation within the setAcceptItem method
192
     * This has to validate that the property which is being set is the only one among the given choices
193
     * @param mixed $value
194
     * @return string A non-empty message if the values does not match the validation rules
195
     */
196
    public function validateAcceptItemForChoiceConstraintsFromSetAcceptItem($value): string
197
    {
198
        $message = '';
199
        if (is_null($value)) {
200
            return $message;
201
        }
202
        $properties = [
203
            'TentativelyAcceptItem',
204
            'DeclineItem',
205
            'ReplyToItem',
206
            'ForwardItem',
207
            'ReplyAllToItem',
208
            'CancelCalendarItem',
209
            'RemoveItem',
210
            'SuppressReadReceipt',
211
            'PostReplyItem',
212
            'AcceptSharingInvitation',
213
            'AddItemToMyCalendar',
214
            'ProposeNewTime',
215
        ];
216
        try {
217
            foreach ($properties as $property) {
218
                if (isset($this->{$property})) {
219
                    throw new InvalidArgumentException(sprintf('The property AcceptItem can\'t be set as the property %s is already set. Only one property must be set among these properties: AcceptItem, %s.', $property, implode(', ', $properties)), __LINE__);
220
                }
221
            }
222
        } catch (InvalidArgumentException $e) {
223
            $message = $e->getMessage();
224
        }
225
        
226
        return $message;
227
    }
228
    /**
229
     * Set AcceptItem value
230
     * This property belongs to a choice that allows only one property to exist. It is
231
     * therefore removable from the request, consequently if the value assigned to this
232
     * property is null, the property is removed from this object
233
     * @throws InvalidArgumentException
234
     * @param \StructType\EwsAcceptItemType $acceptItem
235
     * @return \StructType\EwsNonEmptyArrayOfResponseObjectsType
236
     */
237
    public function setAcceptItem(?\StructType\EwsAcceptItemType $acceptItem = null): self
238
    {
239
        // validation for constraint: choice(AcceptItem, TentativelyAcceptItem, DeclineItem, ReplyToItem, ForwardItem, ReplyAllToItem, CancelCalendarItem, RemoveItem, SuppressReadReceipt, PostReplyItem, AcceptSharingInvitation, AddItemToMyCalendar, ProposeNewTime)
240
        if ('' !== ($acceptItemChoiceErrorMessage = self::validateAcceptItemForChoiceConstraintsFromSetAcceptItem($acceptItem))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsNonEmptyAr...intsFromSetAcceptItem() 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

240
        if ('' !== ($acceptItemChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateAcceptItemForChoiceConstraintsFromSetAcceptItem($acceptItem))) {
Loading history...
241
            throw new InvalidArgumentException($acceptItemChoiceErrorMessage, __LINE__);
242
        }
243
        if (is_null($acceptItem) || (is_array($acceptItem) && empty($acceptItem))) {
244
            unset($this->AcceptItem);
245
        } else {
246
            $this->AcceptItem = $acceptItem;
247
        }
248
        
249
        return $this;
250
    }
251
    /**
252
     * Get TentativelyAcceptItem value
253
     * @return \StructType\EwsTentativelyAcceptItemType|null
254
     */
255
    public function getTentativelyAcceptItem(): ?\StructType\EwsTentativelyAcceptItemType
256
    {
257
        return isset($this->TentativelyAcceptItem) ? $this->TentativelyAcceptItem : null;
258
    }
259
    /**
260
     * This method is responsible for validating the value passed to the setTentativelyAcceptItem method
261
     * This method is willingly generated in order to preserve the one-line inline validation within the setTentativelyAcceptItem method
262
     * This has to validate that the property which is being set is the only one among the given choices
263
     * @param mixed $value
264
     * @return string A non-empty message if the values does not match the validation rules
265
     */
266
    public function validateTentativelyAcceptItemForChoiceConstraintsFromSetTentativelyAcceptItem($value): string
267
    {
268
        $message = '';
269
        if (is_null($value)) {
270
            return $message;
271
        }
272
        $properties = [
273
            'AcceptItem',
274
            'DeclineItem',
275
            'ReplyToItem',
276
            'ForwardItem',
277
            'ReplyAllToItem',
278
            'CancelCalendarItem',
279
            'RemoveItem',
280
            'SuppressReadReceipt',
281
            'PostReplyItem',
282
            'AcceptSharingInvitation',
283
            'AddItemToMyCalendar',
284
            'ProposeNewTime',
285
        ];
286
        try {
287
            foreach ($properties as $property) {
288
                if (isset($this->{$property})) {
289
                    throw new InvalidArgumentException(sprintf('The property TentativelyAcceptItem can\'t be set as the property %s is already set. Only one property must be set among these properties: TentativelyAcceptItem, %s.', $property, implode(', ', $properties)), __LINE__);
290
                }
291
            }
292
        } catch (InvalidArgumentException $e) {
293
            $message = $e->getMessage();
294
        }
295
        
296
        return $message;
297
    }
298
    /**
299
     * Set TentativelyAcceptItem value
300
     * This property belongs to a choice that allows only one property to exist. It is
301
     * therefore removable from the request, consequently if the value assigned to this
302
     * property is null, the property is removed from this object
303
     * @throws InvalidArgumentException
304
     * @param \StructType\EwsTentativelyAcceptItemType $tentativelyAcceptItem
305
     * @return \StructType\EwsNonEmptyArrayOfResponseObjectsType
306
     */
307
    public function setTentativelyAcceptItem(?\StructType\EwsTentativelyAcceptItemType $tentativelyAcceptItem = null): self
308
    {
309
        // validation for constraint: choice(AcceptItem, TentativelyAcceptItem, DeclineItem, ReplyToItem, ForwardItem, ReplyAllToItem, CancelCalendarItem, RemoveItem, SuppressReadReceipt, PostReplyItem, AcceptSharingInvitation, AddItemToMyCalendar, ProposeNewTime)
310
        if ('' !== ($tentativelyAcceptItemChoiceErrorMessage = self::validateTentativelyAcceptItemForChoiceConstraintsFromSetTentativelyAcceptItem($tentativelyAcceptItem))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsNonEmptyAr...TentativelyAcceptItem() 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

310
        if ('' !== ($tentativelyAcceptItemChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateTentativelyAcceptItemForChoiceConstraintsFromSetTentativelyAcceptItem($tentativelyAcceptItem))) {
Loading history...
311
            throw new InvalidArgumentException($tentativelyAcceptItemChoiceErrorMessage, __LINE__);
312
        }
313
        if (is_null($tentativelyAcceptItem) || (is_array($tentativelyAcceptItem) && empty($tentativelyAcceptItem))) {
314
            unset($this->TentativelyAcceptItem);
315
        } else {
316
            $this->TentativelyAcceptItem = $tentativelyAcceptItem;
317
        }
318
        
319
        return $this;
320
    }
321
    /**
322
     * Get DeclineItem value
323
     * @return \StructType\EwsDeclineItemType|null
324
     */
325
    public function getDeclineItem(): ?\StructType\EwsDeclineItemType
326
    {
327
        return isset($this->DeclineItem) ? $this->DeclineItem : null;
328
    }
329
    /**
330
     * This method is responsible for validating the value passed to the setDeclineItem method
331
     * This method is willingly generated in order to preserve the one-line inline validation within the setDeclineItem method
332
     * This has to validate that the property which is being set is the only one among the given choices
333
     * @param mixed $value
334
     * @return string A non-empty message if the values does not match the validation rules
335
     */
336
    public function validateDeclineItemForChoiceConstraintsFromSetDeclineItem($value): string
337
    {
338
        $message = '';
339
        if (is_null($value)) {
340
            return $message;
341
        }
342
        $properties = [
343
            'AcceptItem',
344
            'TentativelyAcceptItem',
345
            'ReplyToItem',
346
            'ForwardItem',
347
            'ReplyAllToItem',
348
            'CancelCalendarItem',
349
            'RemoveItem',
350
            'SuppressReadReceipt',
351
            'PostReplyItem',
352
            'AcceptSharingInvitation',
353
            'AddItemToMyCalendar',
354
            'ProposeNewTime',
355
        ];
356
        try {
357
            foreach ($properties as $property) {
358
                if (isset($this->{$property})) {
359
                    throw new InvalidArgumentException(sprintf('The property DeclineItem can\'t be set as the property %s is already set. Only one property must be set among these properties: DeclineItem, %s.', $property, implode(', ', $properties)), __LINE__);
360
                }
361
            }
362
        } catch (InvalidArgumentException $e) {
363
            $message = $e->getMessage();
364
        }
365
        
366
        return $message;
367
    }
368
    /**
369
     * Set DeclineItem value
370
     * This property belongs to a choice that allows only one property to exist. It is
371
     * therefore removable from the request, consequently if the value assigned to this
372
     * property is null, the property is removed from this object
373
     * @throws InvalidArgumentException
374
     * @param \StructType\EwsDeclineItemType $declineItem
375
     * @return \StructType\EwsNonEmptyArrayOfResponseObjectsType
376
     */
377
    public function setDeclineItem(?\StructType\EwsDeclineItemType $declineItem = null): self
378
    {
379
        // validation for constraint: choice(AcceptItem, TentativelyAcceptItem, DeclineItem, ReplyToItem, ForwardItem, ReplyAllToItem, CancelCalendarItem, RemoveItem, SuppressReadReceipt, PostReplyItem, AcceptSharingInvitation, AddItemToMyCalendar, ProposeNewTime)
380
        if ('' !== ($declineItemChoiceErrorMessage = self::validateDeclineItemForChoiceConstraintsFromSetDeclineItem($declineItem))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsNonEmptyAr...ntsFromSetDeclineItem() 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

380
        if ('' !== ($declineItemChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateDeclineItemForChoiceConstraintsFromSetDeclineItem($declineItem))) {
Loading history...
381
            throw new InvalidArgumentException($declineItemChoiceErrorMessage, __LINE__);
382
        }
383
        if (is_null($declineItem) || (is_array($declineItem) && empty($declineItem))) {
384
            unset($this->DeclineItem);
385
        } else {
386
            $this->DeclineItem = $declineItem;
387
        }
388
        
389
        return $this;
390
    }
391
    /**
392
     * Get ReplyToItem value
393
     * @return \StructType\EwsReplyToItemType|null
394
     */
395
    public function getReplyToItem(): ?\StructType\EwsReplyToItemType
396
    {
397
        return isset($this->ReplyToItem) ? $this->ReplyToItem : null;
398
    }
399
    /**
400
     * This method is responsible for validating the value passed to the setReplyToItem method
401
     * This method is willingly generated in order to preserve the one-line inline validation within the setReplyToItem method
402
     * This has to validate that the property which is being set is the only one among the given choices
403
     * @param mixed $value
404
     * @return string A non-empty message if the values does not match the validation rules
405
     */
406
    public function validateReplyToItemForChoiceConstraintsFromSetReplyToItem($value): string
407
    {
408
        $message = '';
409
        if (is_null($value)) {
410
            return $message;
411
        }
412
        $properties = [
413
            'AcceptItem',
414
            'TentativelyAcceptItem',
415
            'DeclineItem',
416
            'ForwardItem',
417
            'ReplyAllToItem',
418
            'CancelCalendarItem',
419
            'RemoveItem',
420
            'SuppressReadReceipt',
421
            'PostReplyItem',
422
            'AcceptSharingInvitation',
423
            'AddItemToMyCalendar',
424
            'ProposeNewTime',
425
        ];
426
        try {
427
            foreach ($properties as $property) {
428
                if (isset($this->{$property})) {
429
                    throw new InvalidArgumentException(sprintf('The property ReplyToItem can\'t be set as the property %s is already set. Only one property must be set among these properties: ReplyToItem, %s.', $property, implode(', ', $properties)), __LINE__);
430
                }
431
            }
432
        } catch (InvalidArgumentException $e) {
433
            $message = $e->getMessage();
434
        }
435
        
436
        return $message;
437
    }
438
    /**
439
     * Set ReplyToItem value
440
     * This property belongs to a choice that allows only one property to exist. It is
441
     * therefore removable from the request, consequently if the value assigned to this
442
     * property is null, the property is removed from this object
443
     * @throws InvalidArgumentException
444
     * @param \StructType\EwsReplyToItemType $replyToItem
445
     * @return \StructType\EwsNonEmptyArrayOfResponseObjectsType
446
     */
447
    public function setReplyToItem(?\StructType\EwsReplyToItemType $replyToItem = null): self
448
    {
449
        // validation for constraint: choice(AcceptItem, TentativelyAcceptItem, DeclineItem, ReplyToItem, ForwardItem, ReplyAllToItem, CancelCalendarItem, RemoveItem, SuppressReadReceipt, PostReplyItem, AcceptSharingInvitation, AddItemToMyCalendar, ProposeNewTime)
450
        if ('' !== ($replyToItemChoiceErrorMessage = self::validateReplyToItemForChoiceConstraintsFromSetReplyToItem($replyToItem))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsNonEmptyAr...ntsFromSetReplyToItem() 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

450
        if ('' !== ($replyToItemChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateReplyToItemForChoiceConstraintsFromSetReplyToItem($replyToItem))) {
Loading history...
451
            throw new InvalidArgumentException($replyToItemChoiceErrorMessage, __LINE__);
452
        }
453
        if (is_null($replyToItem) || (is_array($replyToItem) && empty($replyToItem))) {
454
            unset($this->ReplyToItem);
455
        } else {
456
            $this->ReplyToItem = $replyToItem;
457
        }
458
        
459
        return $this;
460
    }
461
    /**
462
     * Get ForwardItem value
463
     * @return \StructType\EwsForwardItemType|null
464
     */
465
    public function getForwardItem(): ?\StructType\EwsForwardItemType
466
    {
467
        return isset($this->ForwardItem) ? $this->ForwardItem : null;
468
    }
469
    /**
470
     * This method is responsible for validating the value passed to the setForwardItem method
471
     * This method is willingly generated in order to preserve the one-line inline validation within the setForwardItem method
472
     * This has to validate that the property which is being set is the only one among the given choices
473
     * @param mixed $value
474
     * @return string A non-empty message if the values does not match the validation rules
475
     */
476
    public function validateForwardItemForChoiceConstraintsFromSetForwardItem($value): string
477
    {
478
        $message = '';
479
        if (is_null($value)) {
480
            return $message;
481
        }
482
        $properties = [
483
            'AcceptItem',
484
            'TentativelyAcceptItem',
485
            'DeclineItem',
486
            'ReplyToItem',
487
            'ReplyAllToItem',
488
            'CancelCalendarItem',
489
            'RemoveItem',
490
            'SuppressReadReceipt',
491
            'PostReplyItem',
492
            'AcceptSharingInvitation',
493
            'AddItemToMyCalendar',
494
            'ProposeNewTime',
495
        ];
496
        try {
497
            foreach ($properties as $property) {
498
                if (isset($this->{$property})) {
499
                    throw new InvalidArgumentException(sprintf('The property ForwardItem can\'t be set as the property %s is already set. Only one property must be set among these properties: ForwardItem, %s.', $property, implode(', ', $properties)), __LINE__);
500
                }
501
            }
502
        } catch (InvalidArgumentException $e) {
503
            $message = $e->getMessage();
504
        }
505
        
506
        return $message;
507
    }
508
    /**
509
     * Set ForwardItem value
510
     * This property belongs to a choice that allows only one property to exist. It is
511
     * therefore removable from the request, consequently if the value assigned to this
512
     * property is null, the property is removed from this object
513
     * @throws InvalidArgumentException
514
     * @param \StructType\EwsForwardItemType $forwardItem
515
     * @return \StructType\EwsNonEmptyArrayOfResponseObjectsType
516
     */
517
    public function setForwardItem(?\StructType\EwsForwardItemType $forwardItem = null): self
518
    {
519
        // validation for constraint: choice(AcceptItem, TentativelyAcceptItem, DeclineItem, ReplyToItem, ForwardItem, ReplyAllToItem, CancelCalendarItem, RemoveItem, SuppressReadReceipt, PostReplyItem, AcceptSharingInvitation, AddItemToMyCalendar, ProposeNewTime)
520
        if ('' !== ($forwardItemChoiceErrorMessage = self::validateForwardItemForChoiceConstraintsFromSetForwardItem($forwardItem))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsNonEmptyAr...ntsFromSetForwardItem() 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

520
        if ('' !== ($forwardItemChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateForwardItemForChoiceConstraintsFromSetForwardItem($forwardItem))) {
Loading history...
521
            throw new InvalidArgumentException($forwardItemChoiceErrorMessage, __LINE__);
522
        }
523
        if (is_null($forwardItem) || (is_array($forwardItem) && empty($forwardItem))) {
524
            unset($this->ForwardItem);
525
        } else {
526
            $this->ForwardItem = $forwardItem;
527
        }
528
        
529
        return $this;
530
    }
531
    /**
532
     * Get ReplyAllToItem value
533
     * @return \StructType\EwsReplyAllToItemType|null
534
     */
535
    public function getReplyAllToItem(): ?\StructType\EwsReplyAllToItemType
536
    {
537
        return isset($this->ReplyAllToItem) ? $this->ReplyAllToItem : null;
538
    }
539
    /**
540
     * This method is responsible for validating the value passed to the setReplyAllToItem method
541
     * This method is willingly generated in order to preserve the one-line inline validation within the setReplyAllToItem method
542
     * This has to validate that the property which is being set is the only one among the given choices
543
     * @param mixed $value
544
     * @return string A non-empty message if the values does not match the validation rules
545
     */
546
    public function validateReplyAllToItemForChoiceConstraintsFromSetReplyAllToItem($value): string
547
    {
548
        $message = '';
549
        if (is_null($value)) {
550
            return $message;
551
        }
552
        $properties = [
553
            'AcceptItem',
554
            'TentativelyAcceptItem',
555
            'DeclineItem',
556
            'ReplyToItem',
557
            'ForwardItem',
558
            'CancelCalendarItem',
559
            'RemoveItem',
560
            'SuppressReadReceipt',
561
            'PostReplyItem',
562
            'AcceptSharingInvitation',
563
            'AddItemToMyCalendar',
564
            'ProposeNewTime',
565
        ];
566
        try {
567
            foreach ($properties as $property) {
568
                if (isset($this->{$property})) {
569
                    throw new InvalidArgumentException(sprintf('The property ReplyAllToItem can\'t be set as the property %s is already set. Only one property must be set among these properties: ReplyAllToItem, %s.', $property, implode(', ', $properties)), __LINE__);
570
                }
571
            }
572
        } catch (InvalidArgumentException $e) {
573
            $message = $e->getMessage();
574
        }
575
        
576
        return $message;
577
    }
578
    /**
579
     * Set ReplyAllToItem value
580
     * This property belongs to a choice that allows only one property to exist. It is
581
     * therefore removable from the request, consequently if the value assigned to this
582
     * property is null, the property is removed from this object
583
     * @throws InvalidArgumentException
584
     * @param \StructType\EwsReplyAllToItemType $replyAllToItem
585
     * @return \StructType\EwsNonEmptyArrayOfResponseObjectsType
586
     */
587
    public function setReplyAllToItem(?\StructType\EwsReplyAllToItemType $replyAllToItem = null): self
588
    {
589
        // validation for constraint: choice(AcceptItem, TentativelyAcceptItem, DeclineItem, ReplyToItem, ForwardItem, ReplyAllToItem, CancelCalendarItem, RemoveItem, SuppressReadReceipt, PostReplyItem, AcceptSharingInvitation, AddItemToMyCalendar, ProposeNewTime)
590
        if ('' !== ($replyAllToItemChoiceErrorMessage = self::validateReplyAllToItemForChoiceConstraintsFromSetReplyAllToItem($replyAllToItem))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsNonEmptyAr...FromSetReplyAllToItem() 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

590
        if ('' !== ($replyAllToItemChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateReplyAllToItemForChoiceConstraintsFromSetReplyAllToItem($replyAllToItem))) {
Loading history...
591
            throw new InvalidArgumentException($replyAllToItemChoiceErrorMessage, __LINE__);
592
        }
593
        if (is_null($replyAllToItem) || (is_array($replyAllToItem) && empty($replyAllToItem))) {
594
            unset($this->ReplyAllToItem);
595
        } else {
596
            $this->ReplyAllToItem = $replyAllToItem;
597
        }
598
        
599
        return $this;
600
    }
601
    /**
602
     * Get CancelCalendarItem value
603
     * @return \StructType\EwsCancelCalendarItemType|null
604
     */
605
    public function getCancelCalendarItem(): ?\StructType\EwsCancelCalendarItemType
606
    {
607
        return isset($this->CancelCalendarItem) ? $this->CancelCalendarItem : null;
608
    }
609
    /**
610
     * This method is responsible for validating the value passed to the setCancelCalendarItem method
611
     * This method is willingly generated in order to preserve the one-line inline validation within the setCancelCalendarItem method
612
     * This has to validate that the property which is being set is the only one among the given choices
613
     * @param mixed $value
614
     * @return string A non-empty message if the values does not match the validation rules
615
     */
616
    public function validateCancelCalendarItemForChoiceConstraintsFromSetCancelCalendarItem($value): string
617
    {
618
        $message = '';
619
        if (is_null($value)) {
620
            return $message;
621
        }
622
        $properties = [
623
            'AcceptItem',
624
            'TentativelyAcceptItem',
625
            'DeclineItem',
626
            'ReplyToItem',
627
            'ForwardItem',
628
            'ReplyAllToItem',
629
            'RemoveItem',
630
            'SuppressReadReceipt',
631
            'PostReplyItem',
632
            'AcceptSharingInvitation',
633
            'AddItemToMyCalendar',
634
            'ProposeNewTime',
635
        ];
636
        try {
637
            foreach ($properties as $property) {
638
                if (isset($this->{$property})) {
639
                    throw new InvalidArgumentException(sprintf('The property CancelCalendarItem can\'t be set as the property %s is already set. Only one property must be set among these properties: CancelCalendarItem, %s.', $property, implode(', ', $properties)), __LINE__);
640
                }
641
            }
642
        } catch (InvalidArgumentException $e) {
643
            $message = $e->getMessage();
644
        }
645
        
646
        return $message;
647
    }
648
    /**
649
     * Set CancelCalendarItem value
650
     * This property belongs to a choice that allows only one property to exist. It is
651
     * therefore removable from the request, consequently if the value assigned to this
652
     * property is null, the property is removed from this object
653
     * @throws InvalidArgumentException
654
     * @param \StructType\EwsCancelCalendarItemType $cancelCalendarItem
655
     * @return \StructType\EwsNonEmptyArrayOfResponseObjectsType
656
     */
657
    public function setCancelCalendarItem(?\StructType\EwsCancelCalendarItemType $cancelCalendarItem = null): self
658
    {
659
        // validation for constraint: choice(AcceptItem, TentativelyAcceptItem, DeclineItem, ReplyToItem, ForwardItem, ReplyAllToItem, CancelCalendarItem, RemoveItem, SuppressReadReceipt, PostReplyItem, AcceptSharingInvitation, AddItemToMyCalendar, ProposeNewTime)
660
        if ('' !== ($cancelCalendarItemChoiceErrorMessage = self::validateCancelCalendarItemForChoiceConstraintsFromSetCancelCalendarItem($cancelCalendarItem))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsNonEmptyAr...SetCancelCalendarItem() 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

660
        if ('' !== ($cancelCalendarItemChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateCancelCalendarItemForChoiceConstraintsFromSetCancelCalendarItem($cancelCalendarItem))) {
Loading history...
661
            throw new InvalidArgumentException($cancelCalendarItemChoiceErrorMessage, __LINE__);
662
        }
663
        if (is_null($cancelCalendarItem) || (is_array($cancelCalendarItem) && empty($cancelCalendarItem))) {
664
            unset($this->CancelCalendarItem);
665
        } else {
666
            $this->CancelCalendarItem = $cancelCalendarItem;
667
        }
668
        
669
        return $this;
670
    }
671
    /**
672
     * Get RemoveItem value
673
     * @return \StructType\EwsRemoveItemType|null
674
     */
675
    public function getRemoveItem(): ?\StructType\EwsRemoveItemType
676
    {
677
        return isset($this->RemoveItem) ? $this->RemoveItem : null;
678
    }
679
    /**
680
     * This method is responsible for validating the value passed to the setRemoveItem method
681
     * This method is willingly generated in order to preserve the one-line inline validation within the setRemoveItem method
682
     * This has to validate that the property which is being set is the only one among the given choices
683
     * @param mixed $value
684
     * @return string A non-empty message if the values does not match the validation rules
685
     */
686
    public function validateRemoveItemForChoiceConstraintsFromSetRemoveItem($value): string
687
    {
688
        $message = '';
689
        if (is_null($value)) {
690
            return $message;
691
        }
692
        $properties = [
693
            'AcceptItem',
694
            'TentativelyAcceptItem',
695
            'DeclineItem',
696
            'ReplyToItem',
697
            'ForwardItem',
698
            'ReplyAllToItem',
699
            'CancelCalendarItem',
700
            'SuppressReadReceipt',
701
            'PostReplyItem',
702
            'AcceptSharingInvitation',
703
            'AddItemToMyCalendar',
704
            'ProposeNewTime',
705
        ];
706
        try {
707
            foreach ($properties as $property) {
708
                if (isset($this->{$property})) {
709
                    throw new InvalidArgumentException(sprintf('The property RemoveItem can\'t be set as the property %s is already set. Only one property must be set among these properties: RemoveItem, %s.', $property, implode(', ', $properties)), __LINE__);
710
                }
711
            }
712
        } catch (InvalidArgumentException $e) {
713
            $message = $e->getMessage();
714
        }
715
        
716
        return $message;
717
    }
718
    /**
719
     * Set RemoveItem value
720
     * This property belongs to a choice that allows only one property to exist. It is
721
     * therefore removable from the request, consequently if the value assigned to this
722
     * property is null, the property is removed from this object
723
     * @throws InvalidArgumentException
724
     * @param \StructType\EwsRemoveItemType $removeItem
725
     * @return \StructType\EwsNonEmptyArrayOfResponseObjectsType
726
     */
727
    public function setRemoveItem(?\StructType\EwsRemoveItemType $removeItem = null): self
728
    {
729
        // validation for constraint: choice(AcceptItem, TentativelyAcceptItem, DeclineItem, ReplyToItem, ForwardItem, ReplyAllToItem, CancelCalendarItem, RemoveItem, SuppressReadReceipt, PostReplyItem, AcceptSharingInvitation, AddItemToMyCalendar, ProposeNewTime)
730
        if ('' !== ($removeItemChoiceErrorMessage = self::validateRemoveItemForChoiceConstraintsFromSetRemoveItem($removeItem))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsNonEmptyAr...intsFromSetRemoveItem() 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

730
        if ('' !== ($removeItemChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateRemoveItemForChoiceConstraintsFromSetRemoveItem($removeItem))) {
Loading history...
731
            throw new InvalidArgumentException($removeItemChoiceErrorMessage, __LINE__);
732
        }
733
        if (is_null($removeItem) || (is_array($removeItem) && empty($removeItem))) {
734
            unset($this->RemoveItem);
735
        } else {
736
            $this->RemoveItem = $removeItem;
737
        }
738
        
739
        return $this;
740
    }
741
    /**
742
     * Get SuppressReadReceipt value
743
     * @return \StructType\EwsSuppressReadReceiptType|null
744
     */
745
    public function getSuppressReadReceipt(): ?\StructType\EwsSuppressReadReceiptType
746
    {
747
        return isset($this->SuppressReadReceipt) ? $this->SuppressReadReceipt : null;
748
    }
749
    /**
750
     * This method is responsible for validating the value passed to the setSuppressReadReceipt method
751
     * This method is willingly generated in order to preserve the one-line inline validation within the setSuppressReadReceipt method
752
     * This has to validate that the property which is being set is the only one among the given choices
753
     * @param mixed $value
754
     * @return string A non-empty message if the values does not match the validation rules
755
     */
756
    public function validateSuppressReadReceiptForChoiceConstraintsFromSetSuppressReadReceipt($value): string
757
    {
758
        $message = '';
759
        if (is_null($value)) {
760
            return $message;
761
        }
762
        $properties = [
763
            'AcceptItem',
764
            'TentativelyAcceptItem',
765
            'DeclineItem',
766
            'ReplyToItem',
767
            'ForwardItem',
768
            'ReplyAllToItem',
769
            'CancelCalendarItem',
770
            'RemoveItem',
771
            'PostReplyItem',
772
            'AcceptSharingInvitation',
773
            'AddItemToMyCalendar',
774
            'ProposeNewTime',
775
        ];
776
        try {
777
            foreach ($properties as $property) {
778
                if (isset($this->{$property})) {
779
                    throw new InvalidArgumentException(sprintf('The property SuppressReadReceipt can\'t be set as the property %s is already set. Only one property must be set among these properties: SuppressReadReceipt, %s.', $property, implode(', ', $properties)), __LINE__);
780
                }
781
            }
782
        } catch (InvalidArgumentException $e) {
783
            $message = $e->getMessage();
784
        }
785
        
786
        return $message;
787
    }
788
    /**
789
     * Set SuppressReadReceipt value
790
     * This property belongs to a choice that allows only one property to exist. It is
791
     * therefore removable from the request, consequently if the value assigned to this
792
     * property is null, the property is removed from this object
793
     * @throws InvalidArgumentException
794
     * @param \StructType\EwsSuppressReadReceiptType $suppressReadReceipt
795
     * @return \StructType\EwsNonEmptyArrayOfResponseObjectsType
796
     */
797
    public function setSuppressReadReceipt(?\StructType\EwsSuppressReadReceiptType $suppressReadReceipt = null): self
798
    {
799
        // validation for constraint: choice(AcceptItem, TentativelyAcceptItem, DeclineItem, ReplyToItem, ForwardItem, ReplyAllToItem, CancelCalendarItem, RemoveItem, SuppressReadReceipt, PostReplyItem, AcceptSharingInvitation, AddItemToMyCalendar, ProposeNewTime)
800
        if ('' !== ($suppressReadReceiptChoiceErrorMessage = self::validateSuppressReadReceiptForChoiceConstraintsFromSetSuppressReadReceipt($suppressReadReceipt))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsNonEmptyAr...etSuppressReadReceipt() 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

800
        if ('' !== ($suppressReadReceiptChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateSuppressReadReceiptForChoiceConstraintsFromSetSuppressReadReceipt($suppressReadReceipt))) {
Loading history...
801
            throw new InvalidArgumentException($suppressReadReceiptChoiceErrorMessage, __LINE__);
802
        }
803
        if (is_null($suppressReadReceipt) || (is_array($suppressReadReceipt) && empty($suppressReadReceipt))) {
804
            unset($this->SuppressReadReceipt);
805
        } else {
806
            $this->SuppressReadReceipt = $suppressReadReceipt;
807
        }
808
        
809
        return $this;
810
    }
811
    /**
812
     * Get PostReplyItem value
813
     * @return \StructType\EwsPostReplyItemType|null
814
     */
815
    public function getPostReplyItem(): ?\StructType\EwsPostReplyItemType
816
    {
817
        return isset($this->PostReplyItem) ? $this->PostReplyItem : null;
818
    }
819
    /**
820
     * This method is responsible for validating the value passed to the setPostReplyItem method
821
     * This method is willingly generated in order to preserve the one-line inline validation within the setPostReplyItem method
822
     * This has to validate that the property which is being set is the only one among the given choices
823
     * @param mixed $value
824
     * @return string A non-empty message if the values does not match the validation rules
825
     */
826
    public function validatePostReplyItemForChoiceConstraintsFromSetPostReplyItem($value): string
827
    {
828
        $message = '';
829
        if (is_null($value)) {
830
            return $message;
831
        }
832
        $properties = [
833
            'AcceptItem',
834
            'TentativelyAcceptItem',
835
            'DeclineItem',
836
            'ReplyToItem',
837
            'ForwardItem',
838
            'ReplyAllToItem',
839
            'CancelCalendarItem',
840
            'RemoveItem',
841
            'SuppressReadReceipt',
842
            'AcceptSharingInvitation',
843
            'AddItemToMyCalendar',
844
            'ProposeNewTime',
845
        ];
846
        try {
847
            foreach ($properties as $property) {
848
                if (isset($this->{$property})) {
849
                    throw new InvalidArgumentException(sprintf('The property PostReplyItem can\'t be set as the property %s is already set. Only one property must be set among these properties: PostReplyItem, %s.', $property, implode(', ', $properties)), __LINE__);
850
                }
851
            }
852
        } catch (InvalidArgumentException $e) {
853
            $message = $e->getMessage();
854
        }
855
        
856
        return $message;
857
    }
858
    /**
859
     * Set PostReplyItem value
860
     * This property belongs to a choice that allows only one property to exist. It is
861
     * therefore removable from the request, consequently if the value assigned to this
862
     * property is null, the property is removed from this object
863
     * @throws InvalidArgumentException
864
     * @param \StructType\EwsPostReplyItemType $postReplyItem
865
     * @return \StructType\EwsNonEmptyArrayOfResponseObjectsType
866
     */
867
    public function setPostReplyItem(?\StructType\EwsPostReplyItemType $postReplyItem = null): self
868
    {
869
        // validation for constraint: choice(AcceptItem, TentativelyAcceptItem, DeclineItem, ReplyToItem, ForwardItem, ReplyAllToItem, CancelCalendarItem, RemoveItem, SuppressReadReceipt, PostReplyItem, AcceptSharingInvitation, AddItemToMyCalendar, ProposeNewTime)
870
        if ('' !== ($postReplyItemChoiceErrorMessage = self::validatePostReplyItemForChoiceConstraintsFromSetPostReplyItem($postReplyItem))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsNonEmptyAr...sFromSetPostReplyItem() 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

870
        if ('' !== ($postReplyItemChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validatePostReplyItemForChoiceConstraintsFromSetPostReplyItem($postReplyItem))) {
Loading history...
871
            throw new InvalidArgumentException($postReplyItemChoiceErrorMessage, __LINE__);
872
        }
873
        if (is_null($postReplyItem) || (is_array($postReplyItem) && empty($postReplyItem))) {
874
            unset($this->PostReplyItem);
875
        } else {
876
            $this->PostReplyItem = $postReplyItem;
877
        }
878
        
879
        return $this;
880
    }
881
    /**
882
     * Get AcceptSharingInvitation value
883
     * @return \StructType\EwsAcceptSharingInvitationType|null
884
     */
885
    public function getAcceptSharingInvitation(): ?\StructType\EwsAcceptSharingInvitationType
886
    {
887
        return isset($this->AcceptSharingInvitation) ? $this->AcceptSharingInvitation : null;
888
    }
889
    /**
890
     * This method is responsible for validating the value passed to the setAcceptSharingInvitation method
891
     * This method is willingly generated in order to preserve the one-line inline validation within the setAcceptSharingInvitation method
892
     * This has to validate that the property which is being set is the only one among the given choices
893
     * @param mixed $value
894
     * @return string A non-empty message if the values does not match the validation rules
895
     */
896
    public function validateAcceptSharingInvitationForChoiceConstraintsFromSetAcceptSharingInvitation($value): string
897
    {
898
        $message = '';
899
        if (is_null($value)) {
900
            return $message;
901
        }
902
        $properties = [
903
            'AcceptItem',
904
            'TentativelyAcceptItem',
905
            'DeclineItem',
906
            'ReplyToItem',
907
            'ForwardItem',
908
            'ReplyAllToItem',
909
            'CancelCalendarItem',
910
            'RemoveItem',
911
            'SuppressReadReceipt',
912
            'PostReplyItem',
913
            'AddItemToMyCalendar',
914
            'ProposeNewTime',
915
        ];
916
        try {
917
            foreach ($properties as $property) {
918
                if (isset($this->{$property})) {
919
                    throw new InvalidArgumentException(sprintf('The property AcceptSharingInvitation can\'t be set as the property %s is already set. Only one property must be set among these properties: AcceptSharingInvitation, %s.', $property, implode(', ', $properties)), __LINE__);
920
                }
921
            }
922
        } catch (InvalidArgumentException $e) {
923
            $message = $e->getMessage();
924
        }
925
        
926
        return $message;
927
    }
928
    /**
929
     * Set AcceptSharingInvitation value
930
     * This property belongs to a choice that allows only one property to exist. It is
931
     * therefore removable from the request, consequently if the value assigned to this
932
     * property is null, the property is removed from this object
933
     * @throws InvalidArgumentException
934
     * @param \StructType\EwsAcceptSharingInvitationType $acceptSharingInvitation
935
     * @return \StructType\EwsNonEmptyArrayOfResponseObjectsType
936
     */
937
    public function setAcceptSharingInvitation(?\StructType\EwsAcceptSharingInvitationType $acceptSharingInvitation = null): self
938
    {
939
        // validation for constraint: choice(AcceptItem, TentativelyAcceptItem, DeclineItem, ReplyToItem, ForwardItem, ReplyAllToItem, CancelCalendarItem, RemoveItem, SuppressReadReceipt, PostReplyItem, AcceptSharingInvitation, AddItemToMyCalendar, ProposeNewTime)
940
        if ('' !== ($acceptSharingInvitationChoiceErrorMessage = self::validateAcceptSharingInvitationForChoiceConstraintsFromSetAcceptSharingInvitation($acceptSharingInvitation))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsNonEmptyAr...ceptSharingInvitation() 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

940
        if ('' !== ($acceptSharingInvitationChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateAcceptSharingInvitationForChoiceConstraintsFromSetAcceptSharingInvitation($acceptSharingInvitation))) {
Loading history...
941
            throw new InvalidArgumentException($acceptSharingInvitationChoiceErrorMessage, __LINE__);
942
        }
943
        if (is_null($acceptSharingInvitation) || (is_array($acceptSharingInvitation) && empty($acceptSharingInvitation))) {
944
            unset($this->AcceptSharingInvitation);
945
        } else {
946
            $this->AcceptSharingInvitation = $acceptSharingInvitation;
947
        }
948
        
949
        return $this;
950
    }
951
    /**
952
     * Get AddItemToMyCalendar value
953
     * @return \StructType\EwsAddItemToMyCalendarType|null
954
     */
955
    public function getAddItemToMyCalendar(): ?\StructType\EwsAddItemToMyCalendarType
956
    {
957
        return isset($this->AddItemToMyCalendar) ? $this->AddItemToMyCalendar : null;
958
    }
959
    /**
960
     * This method is responsible for validating the value passed to the setAddItemToMyCalendar method
961
     * This method is willingly generated in order to preserve the one-line inline validation within the setAddItemToMyCalendar method
962
     * This has to validate that the property which is being set is the only one among the given choices
963
     * @param mixed $value
964
     * @return string A non-empty message if the values does not match the validation rules
965
     */
966
    public function validateAddItemToMyCalendarForChoiceConstraintsFromSetAddItemToMyCalendar($value): string
967
    {
968
        $message = '';
969
        if (is_null($value)) {
970
            return $message;
971
        }
972
        $properties = [
973
            'AcceptItem',
974
            'TentativelyAcceptItem',
975
            'DeclineItem',
976
            'ReplyToItem',
977
            'ForwardItem',
978
            'ReplyAllToItem',
979
            'CancelCalendarItem',
980
            'RemoveItem',
981
            'SuppressReadReceipt',
982
            'PostReplyItem',
983
            'AcceptSharingInvitation',
984
            'ProposeNewTime',
985
        ];
986
        try {
987
            foreach ($properties as $property) {
988
                if (isset($this->{$property})) {
989
                    throw new InvalidArgumentException(sprintf('The property AddItemToMyCalendar can\'t be set as the property %s is already set. Only one property must be set among these properties: AddItemToMyCalendar, %s.', $property, implode(', ', $properties)), __LINE__);
990
                }
991
            }
992
        } catch (InvalidArgumentException $e) {
993
            $message = $e->getMessage();
994
        }
995
        
996
        return $message;
997
    }
998
    /**
999
     * Set AddItemToMyCalendar value
1000
     * This property belongs to a choice that allows only one property to exist. It is
1001
     * therefore removable from the request, consequently if the value assigned to this
1002
     * property is null, the property is removed from this object
1003
     * @throws InvalidArgumentException
1004
     * @param \StructType\EwsAddItemToMyCalendarType $addItemToMyCalendar
1005
     * @return \StructType\EwsNonEmptyArrayOfResponseObjectsType
1006
     */
1007
    public function setAddItemToMyCalendar(?\StructType\EwsAddItemToMyCalendarType $addItemToMyCalendar = null): self
1008
    {
1009
        // validation for constraint: choice(AcceptItem, TentativelyAcceptItem, DeclineItem, ReplyToItem, ForwardItem, ReplyAllToItem, CancelCalendarItem, RemoveItem, SuppressReadReceipt, PostReplyItem, AcceptSharingInvitation, AddItemToMyCalendar, ProposeNewTime)
1010
        if ('' !== ($addItemToMyCalendarChoiceErrorMessage = self::validateAddItemToMyCalendarForChoiceConstraintsFromSetAddItemToMyCalendar($addItemToMyCalendar))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsNonEmptyAr...etAddItemToMyCalendar() 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

1010
        if ('' !== ($addItemToMyCalendarChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateAddItemToMyCalendarForChoiceConstraintsFromSetAddItemToMyCalendar($addItemToMyCalendar))) {
Loading history...
1011
            throw new InvalidArgumentException($addItemToMyCalendarChoiceErrorMessage, __LINE__);
1012
        }
1013
        if (is_null($addItemToMyCalendar) || (is_array($addItemToMyCalendar) && empty($addItemToMyCalendar))) {
1014
            unset($this->AddItemToMyCalendar);
1015
        } else {
1016
            $this->AddItemToMyCalendar = $addItemToMyCalendar;
1017
        }
1018
        
1019
        return $this;
1020
    }
1021
    /**
1022
     * Get ProposeNewTime value
1023
     * @return \StructType\EwsProposeNewTimeType|null
1024
     */
1025
    public function getProposeNewTime(): ?\StructType\EwsProposeNewTimeType
1026
    {
1027
        return isset($this->ProposeNewTime) ? $this->ProposeNewTime : null;
1028
    }
1029
    /**
1030
     * This method is responsible for validating the value passed to the setProposeNewTime method
1031
     * This method is willingly generated in order to preserve the one-line inline validation within the setProposeNewTime method
1032
     * This has to validate that the property which is being set is the only one among the given choices
1033
     * @param mixed $value
1034
     * @return string A non-empty message if the values does not match the validation rules
1035
     */
1036
    public function validateProposeNewTimeForChoiceConstraintsFromSetProposeNewTime($value): string
1037
    {
1038
        $message = '';
1039
        if (is_null($value)) {
1040
            return $message;
1041
        }
1042
        $properties = [
1043
            'AcceptItem',
1044
            'TentativelyAcceptItem',
1045
            'DeclineItem',
1046
            'ReplyToItem',
1047
            'ForwardItem',
1048
            'ReplyAllToItem',
1049
            'CancelCalendarItem',
1050
            'RemoveItem',
1051
            'SuppressReadReceipt',
1052
            'PostReplyItem',
1053
            'AcceptSharingInvitation',
1054
            'AddItemToMyCalendar',
1055
        ];
1056
        try {
1057
            foreach ($properties as $property) {
1058
                if (isset($this->{$property})) {
1059
                    throw new InvalidArgumentException(sprintf('The property ProposeNewTime can\'t be set as the property %s is already set. Only one property must be set among these properties: ProposeNewTime, %s.', $property, implode(', ', $properties)), __LINE__);
1060
                }
1061
            }
1062
        } catch (InvalidArgumentException $e) {
1063
            $message = $e->getMessage();
1064
        }
1065
        
1066
        return $message;
1067
    }
1068
    /**
1069
     * Set ProposeNewTime value
1070
     * This property belongs to a choice that allows only one property to exist. It is
1071
     * therefore removable from the request, consequently if the value assigned to this
1072
     * property is null, the property is removed from this object
1073
     * @throws InvalidArgumentException
1074
     * @param \StructType\EwsProposeNewTimeType $proposeNewTime
1075
     * @return \StructType\EwsNonEmptyArrayOfResponseObjectsType
1076
     */
1077
    public function setProposeNewTime(?\StructType\EwsProposeNewTimeType $proposeNewTime = null): self
1078
    {
1079
        // validation for constraint: choice(AcceptItem, TentativelyAcceptItem, DeclineItem, ReplyToItem, ForwardItem, ReplyAllToItem, CancelCalendarItem, RemoveItem, SuppressReadReceipt, PostReplyItem, AcceptSharingInvitation, AddItemToMyCalendar, ProposeNewTime)
1080
        if ('' !== ($proposeNewTimeChoiceErrorMessage = self::validateProposeNewTimeForChoiceConstraintsFromSetProposeNewTime($proposeNewTime))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsNonEmptyAr...FromSetProposeNewTime() 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

1080
        if ('' !== ($proposeNewTimeChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateProposeNewTimeForChoiceConstraintsFromSetProposeNewTime($proposeNewTime))) {
Loading history...
1081
            throw new InvalidArgumentException($proposeNewTimeChoiceErrorMessage, __LINE__);
1082
        }
1083
        if (is_null($proposeNewTime) || (is_array($proposeNewTime) && empty($proposeNewTime))) {
1084
            unset($this->ProposeNewTime);
1085
        } else {
1086
            $this->ProposeNewTime = $proposeNewTime;
1087
        }
1088
        
1089
        return $this;
1090
    }
1091
}
1092