validateIndexedPageItemViewForChoiceConstraintsFromSetIndexedPageItemView()   A
last analyzed

Complexity

Conditions 5
Paths 4

Size

Total Lines 23
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 5
eloc 15
nc 4
nop 1
dl 0
loc 23
rs 9.4555
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 FindItemType StructType
12
 * @package Ews
13
 * @subpackage Structs
14
 * @author WsdlToPhp <[email protected]>
15
 */
16
class EwsFindItemType extends EwsBaseRequestType
17
{
18
    /**
19
     * The Traversal
20
     * Meta information extracted from the WSDL
21
     * - use: required
22
     * @var string
23
     */
24
    protected string $Traversal;
25
    /**
26
     * The ItemShape
27
     * @var \StructType\EwsItemResponseShapeType|null
28
     */
29
    protected ?\StructType\EwsItemResponseShapeType $ItemShape = null;
30
    /**
31
     * The IndexedPageItemView
32
     * Meta information extracted from the WSDL
33
     * - choice: IndexedPageItemView | FractionalPageItemView | SeekToConditionPageItemView | CalendarView | ContactsView
34
     * - choiceMaxOccurs: 1
35
     * - choiceMinOccurs: 0
36
     * @var \StructType\EwsIndexedPageViewType|null
37
     */
38
    protected ?\StructType\EwsIndexedPageViewType $IndexedPageItemView = null;
39
    /**
40
     * The FractionalPageItemView
41
     * Meta information extracted from the WSDL
42
     * - choice: IndexedPageItemView | FractionalPageItemView | SeekToConditionPageItemView | CalendarView | ContactsView
43
     * - choiceMaxOccurs: 1
44
     * - choiceMinOccurs: 0
45
     * @var \StructType\EwsFractionalPageViewType|null
46
     */
47
    protected ?\StructType\EwsFractionalPageViewType $FractionalPageItemView = null;
48
    /**
49
     * The SeekToConditionPageItemView
50
     * Meta information extracted from the WSDL
51
     * - choice: IndexedPageItemView | FractionalPageItemView | SeekToConditionPageItemView | CalendarView | ContactsView
52
     * - choiceMaxOccurs: 1
53
     * - choiceMinOccurs: 0
54
     * @var \StructType\EwsSeekToConditionPageViewType|null
55
     */
56
    protected ?\StructType\EwsSeekToConditionPageViewType $SeekToConditionPageItemView = null;
57
    /**
58
     * The CalendarView
59
     * Meta information extracted from the WSDL
60
     * - choice: IndexedPageItemView | FractionalPageItemView | SeekToConditionPageItemView | CalendarView | ContactsView
61
     * - choiceMaxOccurs: 1
62
     * - choiceMinOccurs: 0
63
     * @var \StructType\EwsCalendarViewType|null
64
     */
65
    protected ?\StructType\EwsCalendarViewType $CalendarView = null;
66
    /**
67
     * The ContactsView
68
     * Meta information extracted from the WSDL
69
     * - choice: IndexedPageItemView | FractionalPageItemView | SeekToConditionPageItemView | CalendarView | ContactsView
70
     * - choiceMaxOccurs: 1
71
     * - choiceMinOccurs: 0
72
     * @var \StructType\EwsContactsViewType|null
73
     */
74
    protected ?\StructType\EwsContactsViewType $ContactsView = null;
75
    /**
76
     * The GroupBy
77
     * Meta information extracted from the WSDL
78
     * - choice: GroupBy | DistinguishedGroupBy
79
     * - choiceMaxOccurs: 1
80
     * - choiceMinOccurs: 0
81
     * @var \StructType\EwsGroupByType|null
82
     */
83
    protected ?\StructType\EwsGroupByType $GroupBy = null;
84
    /**
85
     * The DistinguishedGroupBy
86
     * Meta information extracted from the WSDL
87
     * - choice: GroupBy | DistinguishedGroupBy
88
     * - choiceMaxOccurs: 1
89
     * - choiceMinOccurs: 0
90
     * @var \StructType\EwsDistinguishedGroupByType|null
91
     */
92
    protected ?\StructType\EwsDistinguishedGroupByType $DistinguishedGroupBy = null;
93
    /**
94
     * The Restriction
95
     * Meta information extracted from the WSDL
96
     * - minOccurs: 0
97
     * @var \StructType\EwsRestrictionType|null
98
     */
99
    protected ?\StructType\EwsRestrictionType $Restriction = null;
100
    /**
101
     * The SortOrder
102
     * Meta information extracted from the WSDL
103
     * - minOccurs: 0
104
     * @var \ArrayType\EwsNonEmptyArrayOfFieldOrdersType|null
105
     */
106
    protected ?\ArrayType\EwsNonEmptyArrayOfFieldOrdersType $SortOrder = null;
107
    /**
108
     * The ParentFolderIds
109
     * @var \StructType\EwsNonEmptyArrayOfBaseFolderIdsType|null
110
     */
111
    protected ?\StructType\EwsNonEmptyArrayOfBaseFolderIdsType $ParentFolderIds = null;
112
    /**
113
     * The QueryString
114
     * Meta information extracted from the WSDL
115
     * - maxOccurs: 1
116
     * - minOccurs: 0
117
     * @var \StructType\EwsQueryStringType|null
118
     */
119
    protected ?\StructType\EwsQueryStringType $QueryString = null;
120
    /**
121
     * Constructor method for FindItemType
122
     * @uses EwsFindItemType::setTraversal()
123
     * @uses EwsFindItemType::setItemShape()
124
     * @uses EwsFindItemType::setIndexedPageItemView()
125
     * @uses EwsFindItemType::setFractionalPageItemView()
126
     * @uses EwsFindItemType::setSeekToConditionPageItemView()
127
     * @uses EwsFindItemType::setCalendarView()
128
     * @uses EwsFindItemType::setContactsView()
129
     * @uses EwsFindItemType::setGroupBy()
130
     * @uses EwsFindItemType::setDistinguishedGroupBy()
131
     * @uses EwsFindItemType::setRestriction()
132
     * @uses EwsFindItemType::setSortOrder()
133
     * @uses EwsFindItemType::setParentFolderIds()
134
     * @uses EwsFindItemType::setQueryString()
135
     * @param string $traversal
136
     * @param \StructType\EwsItemResponseShapeType $itemShape
137
     * @param \StructType\EwsIndexedPageViewType $indexedPageItemView
138
     * @param \StructType\EwsFractionalPageViewType $fractionalPageItemView
139
     * @param \StructType\EwsSeekToConditionPageViewType $seekToConditionPageItemView
140
     * @param \StructType\EwsCalendarViewType $calendarView
141
     * @param \StructType\EwsContactsViewType $contactsView
142
     * @param \StructType\EwsGroupByType $groupBy
143
     * @param \StructType\EwsDistinguishedGroupByType $distinguishedGroupBy
144
     * @param \StructType\EwsRestrictionType $restriction
145
     * @param \ArrayType\EwsNonEmptyArrayOfFieldOrdersType $sortOrder
146
     * @param \StructType\EwsNonEmptyArrayOfBaseFolderIdsType $parentFolderIds
147
     * @param \StructType\EwsQueryStringType $queryString
148
     */
149
    public function __construct(string $traversal, ?\StructType\EwsItemResponseShapeType $itemShape = null, ?\StructType\EwsIndexedPageViewType $indexedPageItemView = null, ?\StructType\EwsFractionalPageViewType $fractionalPageItemView = null, ?\StructType\EwsSeekToConditionPageViewType $seekToConditionPageItemView = null, ?\StructType\EwsCalendarViewType $calendarView = null, ?\StructType\EwsContactsViewType $contactsView = null, ?\StructType\EwsGroupByType $groupBy = null, ?\StructType\EwsDistinguishedGroupByType $distinguishedGroupBy = null, ?\StructType\EwsRestrictionType $restriction = null, ?\ArrayType\EwsNonEmptyArrayOfFieldOrdersType $sortOrder = null, ?\StructType\EwsNonEmptyArrayOfBaseFolderIdsType $parentFolderIds = null, ?\StructType\EwsQueryStringType $queryString = null)
150
    {
151
        $this
152
            ->setTraversal($traversal)
153
            ->setItemShape($itemShape)
154
            ->setIndexedPageItemView($indexedPageItemView)
155
            ->setFractionalPageItemView($fractionalPageItemView)
156
            ->setSeekToConditionPageItemView($seekToConditionPageItemView)
157
            ->setCalendarView($calendarView)
158
            ->setContactsView($contactsView)
159
            ->setGroupBy($groupBy)
160
            ->setDistinguishedGroupBy($distinguishedGroupBy)
161
            ->setRestriction($restriction)
162
            ->setSortOrder($sortOrder)
163
            ->setParentFolderIds($parentFolderIds)
164
            ->setQueryString($queryString);
165
    }
166
    /**
167
     * Get Traversal value
168
     * @return string
169
     */
170
    public function getTraversal(): string
171
    {
172
        return $this->Traversal;
173
    }
174
    /**
175
     * Set Traversal value
176
     * @uses \EnumType\EwsItemQueryTraversalType::valueIsValid()
177
     * @uses \EnumType\EwsItemQueryTraversalType::getValidValues()
178
     * @throws InvalidArgumentException
179
     * @param string $traversal
180
     * @return \StructType\EwsFindItemType
181
     */
182
    public function setTraversal(string $traversal): self
183
    {
184
        // validation for constraint: enumeration
185
        if (!\EnumType\EwsItemQueryTraversalType::valueIsValid($traversal)) {
186
            throw new InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\EwsItemQueryTraversalType', is_array($traversal) ? implode(', ', $traversal) : var_export($traversal, true), implode(', ', \EnumType\EwsItemQueryTraversalType::getValidValues())), __LINE__);
0 ignored issues
show
introduced by
The condition is_array($traversal) is always false.
Loading history...
187
        }
188
        $this->Traversal = $traversal;
189
        
190
        return $this;
191
    }
192
    /**
193
     * Get ItemShape value
194
     * @return \StructType\EwsItemResponseShapeType|null
195
     */
196
    public function getItemShape(): ?\StructType\EwsItemResponseShapeType
197
    {
198
        return $this->ItemShape;
199
    }
200
    /**
201
     * Set ItemShape value
202
     * @param \StructType\EwsItemResponseShapeType $itemShape
203
     * @return \StructType\EwsFindItemType
204
     */
205
    public function setItemShape(?\StructType\EwsItemResponseShapeType $itemShape = null): self
206
    {
207
        $this->ItemShape = $itemShape;
208
        
209
        return $this;
210
    }
211
    /**
212
     * Get IndexedPageItemView value
213
     * @return \StructType\EwsIndexedPageViewType|null
214
     */
215
    public function getIndexedPageItemView(): ?\StructType\EwsIndexedPageViewType
216
    {
217
        return isset($this->IndexedPageItemView) ? $this->IndexedPageItemView : null;
218
    }
219
    /**
220
     * This method is responsible for validating the value passed to the setIndexedPageItemView method
221
     * This method is willingly generated in order to preserve the one-line inline validation within the setIndexedPageItemView method
222
     * This has to validate that the property which is being set is the only one among the given choices
223
     * @param mixed $value
224
     * @return string A non-empty message if the values does not match the validation rules
225
     */
226
    public function validateIndexedPageItemViewForChoiceConstraintsFromSetIndexedPageItemView($value): string
227
    {
228
        $message = '';
229
        if (is_null($value)) {
230
            return $message;
231
        }
232
        $properties = [
233
            'FractionalPageItemView',
234
            'SeekToConditionPageItemView',
235
            'CalendarView',
236
            'ContactsView',
237
        ];
238
        try {
239
            foreach ($properties as $property) {
240
                if (isset($this->{$property})) {
241
                    throw new InvalidArgumentException(sprintf('The property IndexedPageItemView can\'t be set as the property %s is already set. Only one property must be set among these properties: IndexedPageItemView, %s.', $property, implode(', ', $properties)), __LINE__);
242
                }
243
            }
244
        } catch (InvalidArgumentException $e) {
245
            $message = $e->getMessage();
246
        }
247
        
248
        return $message;
249
    }
250
    /**
251
     * Set IndexedPageItemView value
252
     * This property belongs to a choice that allows only one property to exist. It is
253
     * therefore removable from the request, consequently if the value assigned to this
254
     * property is null, the property is removed from this object
255
     * @throws InvalidArgumentException
256
     * @param \StructType\EwsIndexedPageViewType $indexedPageItemView
257
     * @return \StructType\EwsFindItemType
258
     */
259
    public function setIndexedPageItemView(?\StructType\EwsIndexedPageViewType $indexedPageItemView = null): self
260
    {
261
        // validation for constraint: choice(IndexedPageItemView, FractionalPageItemView, SeekToConditionPageItemView, CalendarView, ContactsView)
262
        if ('' !== ($indexedPageItemViewChoiceErrorMessage = self::validateIndexedPageItemViewForChoiceConstraintsFromSetIndexedPageItemView($indexedPageItemView))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsFindItemTy...etIndexedPageItemView() 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

262
        if ('' !== ($indexedPageItemViewChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateIndexedPageItemViewForChoiceConstraintsFromSetIndexedPageItemView($indexedPageItemView))) {
Loading history...
263
            throw new InvalidArgumentException($indexedPageItemViewChoiceErrorMessage, __LINE__);
264
        }
265
        if (is_null($indexedPageItemView) || (is_array($indexedPageItemView) && empty($indexedPageItemView))) {
266
            unset($this->IndexedPageItemView);
267
        } else {
268
            $this->IndexedPageItemView = $indexedPageItemView;
269
        }
270
        
271
        return $this;
272
    }
273
    /**
274
     * Get FractionalPageItemView value
275
     * @return \StructType\EwsFractionalPageViewType|null
276
     */
277
    public function getFractionalPageItemView(): ?\StructType\EwsFractionalPageViewType
278
    {
279
        return isset($this->FractionalPageItemView) ? $this->FractionalPageItemView : null;
280
    }
281
    /**
282
     * This method is responsible for validating the value passed to the setFractionalPageItemView method
283
     * This method is willingly generated in order to preserve the one-line inline validation within the setFractionalPageItemView method
284
     * This has to validate that the property which is being set is the only one among the given choices
285
     * @param mixed $value
286
     * @return string A non-empty message if the values does not match the validation rules
287
     */
288
    public function validateFractionalPageItemViewForChoiceConstraintsFromSetFractionalPageItemView($value): string
289
    {
290
        $message = '';
291
        if (is_null($value)) {
292
            return $message;
293
        }
294
        $properties = [
295
            'IndexedPageItemView',
296
            'SeekToConditionPageItemView',
297
            'CalendarView',
298
            'ContactsView',
299
        ];
300
        try {
301
            foreach ($properties as $property) {
302
                if (isset($this->{$property})) {
303
                    throw new InvalidArgumentException(sprintf('The property FractionalPageItemView can\'t be set as the property %s is already set. Only one property must be set among these properties: FractionalPageItemView, %s.', $property, implode(', ', $properties)), __LINE__);
304
                }
305
            }
306
        } catch (InvalidArgumentException $e) {
307
            $message = $e->getMessage();
308
        }
309
        
310
        return $message;
311
    }
312
    /**
313
     * Set FractionalPageItemView value
314
     * This property belongs to a choice that allows only one property to exist. It is
315
     * therefore removable from the request, consequently if the value assigned to this
316
     * property is null, the property is removed from this object
317
     * @throws InvalidArgumentException
318
     * @param \StructType\EwsFractionalPageViewType $fractionalPageItemView
319
     * @return \StructType\EwsFindItemType
320
     */
321
    public function setFractionalPageItemView(?\StructType\EwsFractionalPageViewType $fractionalPageItemView = null): self
322
    {
323
        // validation for constraint: choice(IndexedPageItemView, FractionalPageItemView, SeekToConditionPageItemView, CalendarView, ContactsView)
324
        if ('' !== ($fractionalPageItemViewChoiceErrorMessage = self::validateFractionalPageItemViewForChoiceConstraintsFromSetFractionalPageItemView($fractionalPageItemView))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsFindItemTy...ractionalPageItemView() 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

324
        if ('' !== ($fractionalPageItemViewChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateFractionalPageItemViewForChoiceConstraintsFromSetFractionalPageItemView($fractionalPageItemView))) {
Loading history...
325
            throw new InvalidArgumentException($fractionalPageItemViewChoiceErrorMessage, __LINE__);
326
        }
327
        if (is_null($fractionalPageItemView) || (is_array($fractionalPageItemView) && empty($fractionalPageItemView))) {
328
            unset($this->FractionalPageItemView);
329
        } else {
330
            $this->FractionalPageItemView = $fractionalPageItemView;
331
        }
332
        
333
        return $this;
334
    }
335
    /**
336
     * Get SeekToConditionPageItemView value
337
     * @return \StructType\EwsSeekToConditionPageViewType|null
338
     */
339
    public function getSeekToConditionPageItemView(): ?\StructType\EwsSeekToConditionPageViewType
340
    {
341
        return isset($this->SeekToConditionPageItemView) ? $this->SeekToConditionPageItemView : null;
342
    }
343
    /**
344
     * This method is responsible for validating the value passed to the setSeekToConditionPageItemView method
345
     * This method is willingly generated in order to preserve the one-line inline validation within the setSeekToConditionPageItemView method
346
     * This has to validate that the property which is being set is the only one among the given choices
347
     * @param mixed $value
348
     * @return string A non-empty message if the values does not match the validation rules
349
     */
350
    public function validateSeekToConditionPageItemViewForChoiceConstraintsFromSetSeekToConditionPageItemView($value): string
351
    {
352
        $message = '';
353
        if (is_null($value)) {
354
            return $message;
355
        }
356
        $properties = [
357
            'IndexedPageItemView',
358
            'FractionalPageItemView',
359
            'CalendarView',
360
            'ContactsView',
361
        ];
362
        try {
363
            foreach ($properties as $property) {
364
                if (isset($this->{$property})) {
365
                    throw new InvalidArgumentException(sprintf('The property SeekToConditionPageItemView can\'t be set as the property %s is already set. Only one property must be set among these properties: SeekToConditionPageItemView, %s.', $property, implode(', ', $properties)), __LINE__);
366
                }
367
            }
368
        } catch (InvalidArgumentException $e) {
369
            $message = $e->getMessage();
370
        }
371
        
372
        return $message;
373
    }
374
    /**
375
     * Set SeekToConditionPageItemView value
376
     * This property belongs to a choice that allows only one property to exist. It is
377
     * therefore removable from the request, consequently if the value assigned to this
378
     * property is null, the property is removed from this object
379
     * @throws InvalidArgumentException
380
     * @param \StructType\EwsSeekToConditionPageViewType $seekToConditionPageItemView
381
     * @return \StructType\EwsFindItemType
382
     */
383
    public function setSeekToConditionPageItemView(?\StructType\EwsSeekToConditionPageViewType $seekToConditionPageItemView = null): self
384
    {
385
        // validation for constraint: choice(IndexedPageItemView, FractionalPageItemView, SeekToConditionPageItemView, CalendarView, ContactsView)
386
        if ('' !== ($seekToConditionPageItemViewChoiceErrorMessage = self::validateSeekToConditionPageItemViewForChoiceConstraintsFromSetSeekToConditionPageItemView($seekToConditionPageItemView))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsFindItemTy...ConditionPageItemView() 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

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

448
        if ('' !== ($calendarViewChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateCalendarViewForChoiceConstraintsFromSetCalendarView($calendarView))) {
Loading history...
449
            throw new InvalidArgumentException($calendarViewChoiceErrorMessage, __LINE__);
450
        }
451
        if (is_null($calendarView) || (is_array($calendarView) && empty($calendarView))) {
452
            unset($this->CalendarView);
453
        } else {
454
            $this->CalendarView = $calendarView;
455
        }
456
        
457
        return $this;
458
    }
459
    /**
460
     * Get ContactsView value
461
     * @return \StructType\EwsContactsViewType|null
462
     */
463
    public function getContactsView(): ?\StructType\EwsContactsViewType
464
    {
465
        return isset($this->ContactsView) ? $this->ContactsView : null;
466
    }
467
    /**
468
     * This method is responsible for validating the value passed to the setContactsView method
469
     * This method is willingly generated in order to preserve the one-line inline validation within the setContactsView method
470
     * This has to validate that the property which is being set is the only one among the given choices
471
     * @param mixed $value
472
     * @return string A non-empty message if the values does not match the validation rules
473
     */
474
    public function validateContactsViewForChoiceConstraintsFromSetContactsView($value): string
475
    {
476
        $message = '';
477
        if (is_null($value)) {
478
            return $message;
479
        }
480
        $properties = [
481
            'IndexedPageItemView',
482
            'FractionalPageItemView',
483
            'SeekToConditionPageItemView',
484
            'CalendarView',
485
        ];
486
        try {
487
            foreach ($properties as $property) {
488
                if (isset($this->{$property})) {
489
                    throw new InvalidArgumentException(sprintf('The property ContactsView can\'t be set as the property %s is already set. Only one property must be set among these properties: ContactsView, %s.', $property, implode(', ', $properties)), __LINE__);
490
                }
491
            }
492
        } catch (InvalidArgumentException $e) {
493
            $message = $e->getMessage();
494
        }
495
        
496
        return $message;
497
    }
498
    /**
499
     * Set ContactsView value
500
     * This property belongs to a choice that allows only one property to exist. It is
501
     * therefore removable from the request, consequently if the value assigned to this
502
     * property is null, the property is removed from this object
503
     * @throws InvalidArgumentException
504
     * @param \StructType\EwsContactsViewType $contactsView
505
     * @return \StructType\EwsFindItemType
506
     */
507
    public function setContactsView(?\StructType\EwsContactsViewType $contactsView = null): self
508
    {
509
        // validation for constraint: choice(IndexedPageItemView, FractionalPageItemView, SeekToConditionPageItemView, CalendarView, ContactsView)
510
        if ('' !== ($contactsViewChoiceErrorMessage = self::validateContactsViewForChoiceConstraintsFromSetContactsView($contactsView))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsFindItemTy...tsFromSetContactsView() 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

510
        if ('' !== ($contactsViewChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateContactsViewForChoiceConstraintsFromSetContactsView($contactsView))) {
Loading history...
511
            throw new InvalidArgumentException($contactsViewChoiceErrorMessage, __LINE__);
512
        }
513
        if (is_null($contactsView) || (is_array($contactsView) && empty($contactsView))) {
514
            unset($this->ContactsView);
515
        } else {
516
            $this->ContactsView = $contactsView;
517
        }
518
        
519
        return $this;
520
    }
521
    /**
522
     * Get GroupBy value
523
     * @return \StructType\EwsGroupByType|null
524
     */
525
    public function getGroupBy(): ?\StructType\EwsGroupByType
526
    {
527
        return isset($this->GroupBy) ? $this->GroupBy : null;
528
    }
529
    /**
530
     * This method is responsible for validating the value passed to the setGroupBy method
531
     * This method is willingly generated in order to preserve the one-line inline validation within the setGroupBy method
532
     * This has to validate that the property which is being set is the only one among the given choices
533
     * @param mixed $value
534
     * @return string A non-empty message if the values does not match the validation rules
535
     */
536
    public function validateGroupByForChoiceConstraintsFromSetGroupBy($value): string
537
    {
538
        $message = '';
539
        if (is_null($value)) {
540
            return $message;
541
        }
542
        $properties = [
543
            'DistinguishedGroupBy',
544
        ];
545
        try {
546
            foreach ($properties as $property) {
547
                if (isset($this->{$property})) {
548
                    throw new InvalidArgumentException(sprintf('The property GroupBy can\'t be set as the property %s is already set. Only one property must be set among these properties: GroupBy, %s.', $property, implode(', ', $properties)), __LINE__);
549
                }
550
            }
551
        } catch (InvalidArgumentException $e) {
552
            $message = $e->getMessage();
553
        }
554
        
555
        return $message;
556
    }
557
    /**
558
     * Set GroupBy value
559
     * This property belongs to a choice that allows only one property to exist. It is
560
     * therefore removable from the request, consequently if the value assigned to this
561
     * property is null, the property is removed from this object
562
     * @throws InvalidArgumentException
563
     * @param \StructType\EwsGroupByType $groupBy
564
     * @return \StructType\EwsFindItemType
565
     */
566
    public function setGroupBy(?\StructType\EwsGroupByType $groupBy = null): self
567
    {
568
        // validation for constraint: choice(GroupBy, DistinguishedGroupBy)
569
        if ('' !== ($groupByChoiceErrorMessage = self::validateGroupByForChoiceConstraintsFromSetGroupBy($groupBy))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsFindItemTy...traintsFromSetGroupBy() 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

569
        if ('' !== ($groupByChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateGroupByForChoiceConstraintsFromSetGroupBy($groupBy))) {
Loading history...
570
            throw new InvalidArgumentException($groupByChoiceErrorMessage, __LINE__);
571
        }
572
        if (is_null($groupBy) || (is_array($groupBy) && empty($groupBy))) {
573
            unset($this->GroupBy);
574
        } else {
575
            $this->GroupBy = $groupBy;
576
        }
577
        
578
        return $this;
579
    }
580
    /**
581
     * Get DistinguishedGroupBy value
582
     * @return \StructType\EwsDistinguishedGroupByType|null
583
     */
584
    public function getDistinguishedGroupBy(): ?\StructType\EwsDistinguishedGroupByType
585
    {
586
        return isset($this->DistinguishedGroupBy) ? $this->DistinguishedGroupBy : null;
587
    }
588
    /**
589
     * This method is responsible for validating the value passed to the setDistinguishedGroupBy method
590
     * This method is willingly generated in order to preserve the one-line inline validation within the setDistinguishedGroupBy method
591
     * This has to validate that the property which is being set is the only one among the given choices
592
     * @param mixed $value
593
     * @return string A non-empty message if the values does not match the validation rules
594
     */
595
    public function validateDistinguishedGroupByForChoiceConstraintsFromSetDistinguishedGroupBy($value): string
596
    {
597
        $message = '';
598
        if (is_null($value)) {
599
            return $message;
600
        }
601
        $properties = [
602
            'GroupBy',
603
        ];
604
        try {
605
            foreach ($properties as $property) {
606
                if (isset($this->{$property})) {
607
                    throw new InvalidArgumentException(sprintf('The property DistinguishedGroupBy can\'t be set as the property %s is already set. Only one property must be set among these properties: DistinguishedGroupBy, %s.', $property, implode(', ', $properties)), __LINE__);
608
                }
609
            }
610
        } catch (InvalidArgumentException $e) {
611
            $message = $e->getMessage();
612
        }
613
        
614
        return $message;
615
    }
616
    /**
617
     * Set DistinguishedGroupBy value
618
     * This property belongs to a choice that allows only one property to exist. It is
619
     * therefore removable from the request, consequently if the value assigned to this
620
     * property is null, the property is removed from this object
621
     * @throws InvalidArgumentException
622
     * @param \StructType\EwsDistinguishedGroupByType $distinguishedGroupBy
623
     * @return \StructType\EwsFindItemType
624
     */
625
    public function setDistinguishedGroupBy(?\StructType\EwsDistinguishedGroupByType $distinguishedGroupBy = null): self
626
    {
627
        // validation for constraint: choice(GroupBy, DistinguishedGroupBy)
628
        if ('' !== ($distinguishedGroupByChoiceErrorMessage = self::validateDistinguishedGroupByForChoiceConstraintsFromSetDistinguishedGroupBy($distinguishedGroupBy))) {
0 ignored issues
show
Bug Best Practice introduced by
The method StructType\EwsFindItemTy...tDistinguishedGroupBy() 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

628
        if ('' !== ($distinguishedGroupByChoiceErrorMessage = self::/** @scrutinizer ignore-call */ validateDistinguishedGroupByForChoiceConstraintsFromSetDistinguishedGroupBy($distinguishedGroupBy))) {
Loading history...
629
            throw new InvalidArgumentException($distinguishedGroupByChoiceErrorMessage, __LINE__);
630
        }
631
        if (is_null($distinguishedGroupBy) || (is_array($distinguishedGroupBy) && empty($distinguishedGroupBy))) {
632
            unset($this->DistinguishedGroupBy);
633
        } else {
634
            $this->DistinguishedGroupBy = $distinguishedGroupBy;
635
        }
636
        
637
        return $this;
638
    }
639
    /**
640
     * Get Restriction value
641
     * @return \StructType\EwsRestrictionType|null
642
     */
643
    public function getRestriction(): ?\StructType\EwsRestrictionType
644
    {
645
        return $this->Restriction;
646
    }
647
    /**
648
     * Set Restriction value
649
     * @param \StructType\EwsRestrictionType $restriction
650
     * @return \StructType\EwsFindItemType
651
     */
652
    public function setRestriction(?\StructType\EwsRestrictionType $restriction = null): self
653
    {
654
        $this->Restriction = $restriction;
655
        
656
        return $this;
657
    }
658
    /**
659
     * Get SortOrder value
660
     * @return \ArrayType\EwsNonEmptyArrayOfFieldOrdersType|null
661
     */
662
    public function getSortOrder(): ?\ArrayType\EwsNonEmptyArrayOfFieldOrdersType
663
    {
664
        return $this->SortOrder;
665
    }
666
    /**
667
     * Set SortOrder value
668
     * @param \ArrayType\EwsNonEmptyArrayOfFieldOrdersType $sortOrder
669
     * @return \StructType\EwsFindItemType
670
     */
671
    public function setSortOrder(?\ArrayType\EwsNonEmptyArrayOfFieldOrdersType $sortOrder = null): self
672
    {
673
        $this->SortOrder = $sortOrder;
674
        
675
        return $this;
676
    }
677
    /**
678
     * Get ParentFolderIds value
679
     * @return \StructType\EwsNonEmptyArrayOfBaseFolderIdsType|null
680
     */
681
    public function getParentFolderIds(): ?\StructType\EwsNonEmptyArrayOfBaseFolderIdsType
682
    {
683
        return $this->ParentFolderIds;
684
    }
685
    /**
686
     * Set ParentFolderIds value
687
     * @param \StructType\EwsNonEmptyArrayOfBaseFolderIdsType $parentFolderIds
688
     * @return \StructType\EwsFindItemType
689
     */
690
    public function setParentFolderIds(?\StructType\EwsNonEmptyArrayOfBaseFolderIdsType $parentFolderIds = null): self
691
    {
692
        $this->ParentFolderIds = $parentFolderIds;
693
        
694
        return $this;
695
    }
696
    /**
697
     * Get QueryString value
698
     * @return \StructType\EwsQueryStringType|null
699
     */
700
    public function getQueryString(): ?\StructType\EwsQueryStringType
701
    {
702
        return $this->QueryString;
703
    }
704
    /**
705
     * Set QueryString value
706
     * @param \StructType\EwsQueryStringType $queryString
707
     * @return \StructType\EwsFindItemType
708
     */
709
    public function setQueryString(?\StructType\EwsQueryStringType $queryString = null): self
710
    {
711
        $this->QueryString = $queryString;
712
        
713
        return $this;
714
    }
715
}
716