Passed
Push — master ( 461a97...e7ae09 )
by SignpostMarv
02:31
created

CreativeWork::GetDatePublished()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 0
dl 0
loc 12
ccs 0
cts 8
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
* @author SignpostMarv
4
*/
5
declare(strict_types=1);
6
7
namespace SignpostMarv\DaftObject\SchemaOrg;
8
9
use SignpostMarv\DaftObject\SchemaOrg\CreativeWork\Comment;
10
use SignpostMarv\DaftObject\SchemaOrg\CreativeWork\Comment\CorrectionComment;
11
use SignpostMarv\DaftObject\SchemaOrg\CreativeWork\MediaObject;
12
use SignpostMarv\DaftObject\SchemaOrg\CreativeWork\MediaObject\AudioObject;
13
use SignpostMarv\DaftObject\SchemaOrg\CreativeWork\MediaObject\VideoObject;
14
use SignpostMarv\DaftObject\SchemaOrg\DataTypes\Date;
15
use SignpostMarv\DaftObject\SchemaOrg\DataTypes\DateTime;
16
use SignpostMarv\DaftObject\SchemaOrg\Event\PublicationEvent;
17
use SignpostMarv\DaftObject\SchemaOrg\Intangible\AlignmentObject;
18
use SignpostMarv\DaftObject\SchemaOrg\Intangible\Quantity\Duration;
19
use SignpostMarv\DaftObject\SchemaOrg\Intangible\Rating;
20
use SignpostMarv\DaftObject\SchemaOrg\Intangible\StructuredValue\InteractionCounter;
21
22
/**
23
* @property array<int, Thing> $aboutThing
24
* @property array<int, string> $accessMode
25
* @property array<int, string> $accessModeSufficient
26
* @property array<int, string> $accessibilityAPI
27
* @property array<int, string> $accessibilityControl
28
* @property array<int, string> $accessibilityFeature
29
* @property array<int, string> $accessibilityHazard
30
* @property array<int, string> $accessibilitySummary
31
* @property array<int, Person> $accountablePerson
32
* @property array<int, AggregateRating> $aggregateRating
33
* @property array<int, string> $alternativeHeadline
34
* @property array<int, MediaObject> $associatedMedia
35
* @property array<int, Audience> $audience
36
* @property array<int, AudioObject> $audio
37
* @property array<int, \SignpostMarv\DaftObject\SchemaOrg\Organization|\SignpostMarv\DaftObject\SchemaOrg\Person> $author
38
* @property array<int, string> $award
39
* @property array<int, Person> $character
40
* @property array<int, string|CreativeWork> $citation
41
* @property array<int, Comment> $comment
42
* @property array<int, int> $commentCount
43
* @property array<int, Place> $contentLocation
44
* @property array<int, Rating> $contentRating
45
* @property array<int, DateTime> $contentReferenceTime
46
* @property array<int, Organization|Person> $contributor
47
* @property array<int, Organization|Person> $copyrightHolder
48
* @property array<int, int> $copyrightYear
49
* @property array<int, string|CorrectionComment> $correction
50
* @property array<int, Organization|Person> $creator
51
* @property array<int, Date|DateTime> $dateCreated
52
* @property array<int, Date|DateTime> $dateModified
53
* @property array<int, Date|DateTime> $datePublished
54
* @property array<int, string> $discussionUrl
55
* @property array<int, Person> $editor
56
* @property array<int, AlignmentObject> $educationalAlignment
57
* @property array<int, string> $educationalUse
58
* @property array<int, MediaObject> $encoding
59
* @property array<int, string> $encodingFormat
60
* @property array<int, CreativeWork> $exampleOfWork
61
* @property array<int, Date> $expires
62
* @property array<int, \SignpostMarv\DaftObject\SchemaOrg\Organization|\SignpostMarv\DaftObject\SchemaOrg\Person> $funder
63
* @property array<int, string> $genre
64
* @property array<int, CreativeWork|Intangible\Trip> $hasPart
65
* @property array<int, string> $headline
66
* @property array<int, string|Language> $inLanguage
67
* @property array<int, InteractionCounter> $interactionStatistic
68
* @property array<int, string> $interactivityType
69
* @property array<int, bool> $isAccessibleForFree
70
* @property array<int, string|CreativeWork|Product> $isBasedOn
71
* @property array<int, bool> $isFamilyFriendly
72
* @property array<int, CreativeWork|Intangible\Trip> $isPartOf
73
* @property array<int, string> $keywords
74
* @property array<int, string> $learningResourceType
75
* @property array<int, string|CreativeWork> $license
76
* @property array<int, string|Place|PostalAddress> $location
77
* @property array<int, Place> $locationCreated
78
* @property array<int, Thing> $mainEntity
79
* @property array<int, Product> $material
80
* @property array<int, Thing> $mentions
81
* @property array<int, Offer> $offers
82
* @property array<int, int|string> $position
83
* @property array<int, Organization|Person> $producer
84
* @property array<int, \SignpostMarv\DaftObject\SchemaOrg\Organization|\SignpostMarv\DaftObject\SchemaOrg\Person> $provider
85
* @property array<int, PublicationEvent> $publication
86
* @property array<int, Organization|Person> $publisher
87
* @property array<int, Organization> $publisherImprint
88
* @property array<int, string|CreativeWork> $publishingPrinciples
89
* @property array<int, Event> $recordedAt
90
* @property array<int, PublicationEvent> $releasedEvent
91
* @property array<int, Review> $review
92
* @property array<int, string> $schemaVersion
93
* @property array<int, Date> $sdDatePublished
94
* @property array<int, string|CreativeWork> $sdLicense
95
* @property array<int, Organization|Person> $sdPublisher
96
* @property array<int, Organization> $sourceOrganization
97
* @property array<int, Place> $spatialCoverage
98
* @property array<int, \SignpostMarv\DaftObject\SchemaOrg\Organization|\SignpostMarv\DaftObject\SchemaOrg\Person> $sponsor
99
* @property array<int, string|DateTime> $temporalCoverage
100
* @property array<int, string> $text
101
* @property array<int, string> $thumbnailUrl
102
* @property array<int, Duration> $timeRequired
103
* @property array<int, CreativeWork> $translationOfWork
104
* @property array<int, \SignpostMarv\DaftObject\SchemaOrg\Organization|\SignpostMarv\DaftObject\SchemaOrg\Person> $translators
105
* @property array<int, string> $typicalAgeRange
106
* @property array<int, int|string> $version
107
* @property array<int, VideoObject> $video
108
* @property array<int, CreativeWork> $workExample
109
* @property array<int, CreativeWork> $workTranslation
110
*/
111
class CreativeWork extends Thing
112
{
113
    use DaftObjectTraits\HasAboutThing;
114
    use DaftObjectTraits\HasAggregateRating;
115
    use DaftObjectTraits\HasAudience;
116
    use DaftObjectTraits\HasAuthor;
117
    use DaftObjectTraits\HasAward;
118
    use DaftObjectTraits\HasFunder;
119
    use DaftObjectTraits\Genre;
120
    use DaftObjectTraits\HasHasPart;
121
    use DaftObjectTraits\HasInLanguage;
122
    use DaftObjectTraits\HasIsAccessibleForFree;
123
    use DaftObjectTraits\HasMaterial;
124
    use DaftObjectTraits\HasOffers;
125
    use DaftObjectTraits\HasProvider;
126
    use DaftObjectTraits\HasPublishingPrinciples;
127
    use DaftObjectTraits\HasReview;
128
    use DaftObjectTraits\HasSponsors;
129
    use DaftObjectTraits\HasTranslators;
130
    use DaftObjectTraits\HasTypicalAgeRanges;
131
132
    const SCHEMA_ORG_TYPE = 'CreativeWork';
133
134
    const PROPERTIES = [
135
        'about',
136
        'accessMode',
137
        'accessModeSufficient',
138
        'accessibilityAPI',
139
        'accessibilityControl',
140
        'accessibilityFeature',
141
        'accessibilityHazard',
142
        'accessibilitySummary',
143
        'accountablePerson',
144
        'aggregateRating',
145
        'alternativeHeadline',
146
        'associatedMedia',
147
        'audience',
148
        'audio',
149
        'author',
150
        'award',
151
        'character',
152
        'citation',
153
        'comment',
154
        'commentCount',
155
        'contentLocation',
156
        'contentRating',
157
        'contentReferenceTime',
158
        'contributor',
159
        'copyrightHolder',
160
        'copyrightYear',
161
        'correction',
162
        'creator',
163
        'dateCreated',
164
        'dateModified',
165
        'datePublished',
166
        'discussionUrl',
167
        'editor',
168
        'educationalAlignment',
169
        'educationalUse',
170
        'encoding',
171
        'encodingFormat',
172
        'exampleOfWork',
173
        'expires',
174
        'funder',
175
        'genre',
176
        'hasPart',
177
        'headline',
178
        'inLanguage',
179
        'interactionStatistic',
180
        'interactivityType',
181
        'isAccessibleForFree',
182
        'isBasedOn',
183
        'isFamilyFriendly',
184
        'isPartOf',
185
        'keywords',
186
        'learningResourceType',
187
        'license',
188
        'locationCreated',
189
        'mainEntity',
190
        'material',
191
        'mentions',
192
        'offers',
193
        'position',
194
        'producer',
195
        'provider',
196
        'publication',
197
        'publisher',
198
        'publisherImprint',
199
        'publishingPrinciples',
200
        'recordedAt',
201
        'releasedEvent',
202
        'review',
203
        'schemaVersion',
204
        'sdDatePublished',
205
        'sdLicense',
206
        'sdPublisher',
207
        'sourceOrganization',
208
        'spatialCoverage',
209
        'sponsor',
210
        'temporalCoverage',
211
        'text',
212
        'thumbnailUrl',
213
        'timeRequired',
214
        'translationOfWork',
215
        'translator',
216
        'typicalAgeRange',
217
        'version',
218
        'video',
219
        'workExample',
220
        'workTranslation',
221
    ];
222
223
    const PROPERTIES_WITH_MULTI_TYPED_ARRAYS = [
224
        'aboutThing' => TypeUtilities::MULTI_TYPE_DICT__aboutThing,
225
        'accessMode' => [
226
            'string',
227
        ],
228
        'accessModeSufficient' => [
229
            'string',
230
        ],
231
        'accessibilityAPI' => [
232
            'string',
233
        ],
234
        'accessibilityControl' => [
235
            'string',
236
        ],
237
        'accessibilityFeature' => [
238
            'string',
239
        ],
240
        'accessibilityHazard' => [
241
            'string',
242
        ],
243
        'accessibilitySummary' => [
244
            'string',
245
        ],
246
        'accountablePerson' => [
247
            Person::class,
248
        ],
249
        'aggregateRating' => TypeUtilities::MULTI_TYPE_DICT__aggregateRating,
250
        'alternativeHeadline' => [
251
            'string',
252
        ],
253
        'associatedMedia' => [
254
            MediaObject::class,
255
        ],
256
        'audience' => TypeUtilities::MULTI_TYPE_DICT__audience,
257
        'audio' => [
258
            AudioObject::class,
259
        ],
260
        'author' => TypeUtilities::MULTI_TYPE_DICT__author,
261
        'award' => TypeUtilities::MULTI_TYPE_DICT__award,
262
        'character' => [
263
            Person::class,
264
        ],
265
        'citation' => [
266
            'string',
267
            CreativeWork::class,
268
        ],
269
        'comment' => [
270
            Comment::class,
271
        ],
272
        'commentCount' => [
273
            'integer',
274
        ],
275
        'contentLocation' => [
276
            Place::class,
277
        ],
278
        'contentRating' => [
279
            Rating::class,
280
        ],
281
        'contentReferenceTime' => [
282
            DateTime::class,
283
        ],
284
        'contributor' => [
285
            Organization::class,
286
            Person::class,
287
        ],
288
        'copyrightHolder' => [
289
            Organization::class,
290
            Person::class,
291
        ],
292
        'copyrightYear' => [
293
            'integer',
294
        ],
295
        'correction' => [
296
            'string',
297
            CorrectionComment::class,
298
        ],
299
        'creator' => [
300
            Organization::class,
301
            Person::class,
302
        ],
303
        'dateCreated' => [
304
            Date::class,
305
            DateTime::class,
306
        ],
307
        'dateModified' => [
308
            Date::class,
309
            DateTime::class,
310
        ],
311
        'datePublished' => [
312
            Date::class,
313
            DateTime::class,
314
        ],
315
        'discussionUrl' => [
316
            'string',
317
        ],
318
        'editor' => [
319
            Person::class,
320
        ],
321
        'educationalAlignment' => [
322
            AlignmentObject::class,
323
        ],
324
        'educationalUse' => [
325
            'string',
326
        ],
327
        'encoding' => [
328
            MediaObject::class,
329
        ],
330
        'encodingFormat' => [
331
            'string',
332
        ],
333
        'exampleOfWork' => [
334
            CreativeWork::class,
335
        ],
336
        'expires' => [
337
            Date::class,
338
        ],
339
        'funder' => TypeUtilities::MULTI_TYPE_DICT__funder,
340
        'genre' => TypeUtilities::MULTI_TYPE_DICT__genre,
341
        'hasPart' => TypeUtilities::MULTI_TYPE_DICT__hasPart,
342
        'headline' => [
343
            'string',
344
        ],
345
        'inLanguage' => [
346
            'string',
347
            Intangible\Language::class,
348
        ],
349
        'interactionStatistic' => [
350
            InteractionCounter::class,
351
        ],
352
        'interactivityType' => [
353
            'string',
354
        ],
355
        'isAccessibleForFree' => TypeUtilities::MULTI_TYPE_DICT__isAccessibleForFree,
356
        'isBasedOn' => [
357
            'string',
358
            CreativeWork::class,
359
            Product::class,
360
        ],
361
        'isFamilyFriendly' => [
362
            'boolean',
363
        ],
364
        'keywords' => [
365
            'string',
366
        ],
367
        'learningResourceType' => [
368
            'string',
369
        ],
370
        'license' => [
371
            'string',
372
            CreativeWork::class,
373
        ],
374
        'location' => TypeUtilities::MULTI_TYPE_DICT__location,
375
        'locationCreated' => [
376
            Place::class,
377
        ],
378
        'mainEntity' => [
379
            Thing::class,
380
        ],
381
        'material' => TypeUtilities::MULTI_TYPE_DICT__material,
382
        'mentions' => [
383
            Thing::class,
384
        ],
385
        'offers' => TypeUtilities::MULTI_TYPE_DICT__offers,
386
        'position' => [
387
            'integer',
388
            'string',
389
        ],
390
        'producer' => [
391
            Organization::class,
392
            Person::class,
393
        ],
394
        'provider' => TypeUtilities::MULTI_TYPE_DICT__provider,
395
        'publication' => [
396
            PublicationEvent::class,
397
        ],
398
        'publisher' => [
399
            Organization::class,
400
            Person::class,
401
        ],
402
        'publisherImprint' => [
403
            Organization::class,
404
        ],
405
        'publishingPrinciples' => TypeUtilities::MULTI_TYPE_DICT__publishingPrinciples,
406
        'recordedAt' => [
407
            Event::class,
408
        ],
409
        'releasedEvent' => [
410
            PublicationEvent::class,
411
        ],
412
        'review' => TypeUtilities::MULTI_TYPE_DICT__review,
413
        'schemaVersion' => [
414
            'string',
415
        ],
416
        'sdDatePublished' => [
417
            Date::class,
418
        ],
419
        'sdLicense' => [
420
            'string',
421
            CreativeWork::class,
422
        ],
423
        'sdPublisher' => [
424
            Organization::class,
425
            Person::class,
426
        ],
427
        'sourceOrganization' => [
428
            Organization::class,
429
        ],
430
        'spatialCoverage' => [
431
            Place::class,
432
        ],
433
        'sponsor' => TypeUtilities::MULTI_TYPE_DICT__sponsor,
434
        'temporalCoverage' => [
435
            'string',
436
            DateTime::class,
437
        ],
438
        'text' => [
439
            'string',
440
        ],
441
        'thumbnailUrl' => [
442
            'string',
443
        ],
444
        'timeRequired' => [
445
            Duration::class,
446
        ],
447
        'translationOfWork' => [
448
            CreativeWork::class,
449
        ],
450
        'translators' => [
451
            Organization::class,
452
            Person::class,
453
        ],
454
        'typicalAgeRange' => TypeUtilities::MULTI_TYPE_DICT__typicalAgeRange,
455
        'version' => [
456
            'integer',
457
            'string',
458
        ],
459
        'video' => [
460
            VideoObject::class,
461
        ],
462
        'workExample' => [
463
            CreativeWork::class,
464
        ],
465
        'workTranslation' => [
466
            CreativeWork::class,
467
        ],
468
    ];
469
470
    /**
471
    * @return array<int, string>
472
    */
473
    public function GetAccessMode() : array
474
    {
475
        /**
476
        * @var array<int, string>
477
        */
478
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
479
            'accessMode',
480
            $this->RetrievePropertyValueFromData('accessMode'),
481
            static::class
482
        );
483
484
        return $out;
485
    }
486
487
    /**
488
    * @param array<int, string> $value
489
    */
490
    public function SetAccessMode(array $value) : void
491
    {
492
        $this->NudgePropertyValue(
493
            'accessMode',
494
            $value,
495
            true
496
        );
497
    }
498
499
    /**
500
    * @return array<int, string>
501
    */
502
    public function GetAccessModeSufficient() : array
503
    {
504
        /**
505
        * @var array<int, string>
506
        */
507
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
508
            'accessModeSufficient',
509
            $this->RetrievePropertyValueFromData('accessModeSufficient'),
510
            static::class
511
        );
512
513
        return $out;
514
    }
515
516
    /**
517
    * @param array<int, string> $value
518
    */
519
    public function SetAccessModeSufficient(array $value) : void
520
    {
521
        $this->NudgePropertyValue(
522
            'accessModeSufficient',
523
            $value,
524
            true
525
        );
526
    }
527
528
    /**
529
    * @return array<int, string>
530
    */
531
    public function GetAccessibilityAPI() : array
532
    {
533
        /**
534
        * @var array<int, string>
535
        */
536
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
537
            'accessibilityAPI',
538
            $this->RetrievePropertyValueFromData('accessibilityAPI'),
539
            static::class
540
        );
541
542
        return $out;
543
    }
544
545
    /**
546
    * @param array<int, string> $value
547
    */
548
    public function SetAccessibilityAPI(array $value) : void
549
    {
550
        $this->NudgePropertyValue(
551
            'accessibilityAPI',
552
            $value,
553
            true
554
        );
555
    }
556
557
    /**
558
    * @return array<int, string>
559
    */
560
    public function GetAccessibilityControl() : array
561
    {
562
        /**
563
        * @var array<int, string>
564
        */
565
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
566
            'accessibilityControl',
567
            $this->RetrievePropertyValueFromData('accessibilityControl'),
568
            static::class
569
        );
570
571
        return $out;
572
    }
573
574
    /**
575
    * @param array<int, string> $value
576
    */
577
    public function SetAccessibilityControl(array $value) : void
578
    {
579
        $this->NudgePropertyValue(
580
            'accessibilityControl',
581
            $value,
582
            true
583
        );
584
    }
585
586
    /**
587
    * @return array<int, string>
588
    */
589
    public function GetAccessibilityFeature() : array
590
    {
591
        /**
592
        * @var array<int, string>
593
        */
594
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
595
            'accessibilityFeature',
596
            $this->RetrievePropertyValueFromData('accessibilityFeature'),
597
            static::class
598
        );
599
600
        return $out;
601
    }
602
603
    /**
604
    * @param array<int, string> $value
605
    */
606
    public function SetAccessibilityFeature(array $value) : void
607
    {
608
        $this->NudgePropertyValue(
609
            'accessibilityFeature',
610
            $value,
611
            true
612
        );
613
    }
614
615
    /**
616
    * @return array<int, string>
617
    */
618
    public function GetAccessibilityHazard() : array
619
    {
620
        /**
621
        * @var array<int, string>
622
        */
623
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
624
            'accessibilityHazard',
625
            $this->RetrievePropertyValueFromData('accessibilityHazard'),
626
            static::class
627
        );
628
629
        return $out;
630
    }
631
632
    /**
633
    * @param array<int, string> $value
634
    */
635
    public function SetAccessibilityHazard(array $value) : void
636
    {
637
        $this->NudgePropertyValue(
638
            'accessibilityHazard',
639
            $value,
640
            true
641
        );
642
    }
643
644
    /**
645
    * @return array<int, string>
646
    */
647
    public function GetAccessibilitySummary() : array
648
    {
649
        /**
650
        * @var array<int, string>
651
        */
652
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
653
            'accessibilitySummary',
654
            $this->RetrievePropertyValueFromData('accessibilitySummary'),
655
            static::class
656
        );
657
658
        return $out;
659
    }
660
661
    /**
662
    * @param array<int, string> $value
663
    */
664
    public function SetAccessibilitySummary(array $value) : void
665
    {
666
        $this->NudgePropertyValue(
667
            'accessibilitySummary',
668
            $value,
669
            true
670
        );
671
    }
672
673
    /**
674
    * @return array<int, Person>
675
    */
676
    public function GetAccountablePerson() : array
677
    {
678
        /**
679
        * @var array<int, Person>
680
        */
681
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
682
            'accountablePerson',
683
            $this->RetrievePropertyValueFromData('accountablePerson'),
684
            static::class
685
        );
686
687
        return $out;
688
    }
689
690
    /**
691
    * @param array<int, Person> $value
692
    */
693
    public function SetAccountablePerson(array $value) : void
694
    {
695
        $this->NudgePropertyValue('accountablePerson', $value, true);
696
    }
697
698
    /**
699
    * @return array<int, string>
700
    */
701
    public function GetAlternativeHeadline() : array
702
    {
703
        /**
704
        * @var array<int, string>
705
        */
706
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
707
            'alternativeHeadline',
708
            $this->RetrievePropertyValueFromData('alternativeHeadline'),
709
            static::class
710
        );
711
712
        return $out;
713
    }
714
715
    /**
716
    * @param array<int, string> $value
717
    */
718
    public function SetAlternativeHeadline(array $value) : void
719
    {
720
        $this->NudgePropertyValue(
721
            'alternativeHeadline',
722
            $value,
723
            true
724
        );
725
    }
726
727
    /**
728
    * @return array<int, MediaObject>
729
    */
730
    public function GetAssociatedMedia() : array
731
    {
732
        /**
733
        * @var array<int, MediaObject>
734
        */
735
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
736
            'associatedMedia',
737
            $this->RetrievePropertyValueFromData('associatedMedia'),
738
            static::class
739
        );
740
741
        return $out;
742
    }
743
744
    /**
745
    * @param array<int, MediaObject> $value
746
    */
747
    public function SetAssociatedMedia(array $value) : void
748
    {
749
        $this->NudgePropertyValue(
750
            'associatedMedia',
751
            $value,
752
            true
753
        );
754
    }
755
756
    /**
757
    * @return array<int, AudioObject>
758
    */
759
    public function GetAudio() : array
760
    {
761
        /**
762
        * @var array<int, AudioObject>
763
        */
764
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
765
            'audio',
766
            $this->RetrievePropertyValueFromData('audio'),
767
            static::class
768
        );
769
770
        return $out;
771
    }
772
773
    /**
774
    * @param array<int, AudioObject> $value
775
    */
776
    public function SetAudio(array $value) : void
777
    {
778
        $this->NudgePropertyValue(
779
            'audio',
780
            $value,
781
            true
782
        );
783
    }
784
785
    /**
786
    * @return array<int, Person>
787
    */
788
    public function GetCharacter() : array
789
    {
790
        /**
791
        * @var array<int, Person>
792
        */
793
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
794
            'character',
795
            $this->RetrievePropertyValueFromData('character'),
796
            static::class
797
        );
798
799
        return $out;
800
    }
801
802
    /**
803
    * @param array<int, Person> $value
804
    */
805
    public function SetCharacter(array $value) : void
806
    {
807
        $this->NudgePropertyValue('character', $value, true);
808
    }
809
810
    /**
811
    * @return array<int, string|CreativeWork>
812
    */
813
    public function GetCitation() : array
814
    {
815
        /**
816
        * @var array<int, string|CreativeWork>
817
        */
818
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
819
            'citation',
820
            $this->RetrievePropertyValueFromData('citation'),
821
            static::class
822
        );
823
824
        return $out;
825
    }
826
827
    /**
828
    * @param array<int, string|CreativeWork> $value
829
    */
830
    public function SetCitation(array $value) : void
831
    {
832
        $this->NudgePropertyValue(
833
            'citation',
834
            $value,
835
            true
836
        );
837
    }
838
839
    /**
840
    * @return array<int, Comment>
841
    */
842
    public function GetComment() : array
843
    {
844
        /**
845
        * @var array<int, Comment>
846
        */
847
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
848
            'comment',
849
            $this->RetrievePropertyValueFromData('comment'),
850
            static::class
851
        );
852
853
        return $out;
854
    }
855
856
    /**
857
    * @param array<int, Comment> $value
858
    */
859
    public function SetComment(array $value) : void
860
    {
861
        $this->NudgePropertyValue(
862
            'comment',
863
            $value,
864
            true
865
        );
866
    }
867
868
    /**
869
    * @return array<int, int>
870
    */
871
    public function GetCommentCount() : array
872
    {
873
        /**
874
        * @var array<int, int>
875
        */
876
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
877
            'commentCount',
878
            $this->RetrievePropertyValueFromData('commentCount'),
879
            static::class
880
        );
881
882
        return $out;
883
    }
884
885
    /**
886
    * @param array<int, int> $value
887
    */
888
    public function SetCommentCount(array $value) : void
889
    {
890
        $this->NudgePropertyWithUniqueIntegers('commentCount', __METHOD__, $value);
891
    }
892
893
    /**
894
    * @return array<int, Place>
895
    */
896
    public function GetContentLocation() : array
897
    {
898
        /**
899
        * @var array<int, Place>
900
        */
901
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
902
            'contentLocation',
903
            $this->RetrievePropertyValueFromData('contentLocation'),
904
            static::class
905
        );
906
907
        return $out;
908
    }
909
910
    /**
911
    * @param array<int, Place> $value
912
    */
913
    public function SetContentLocation(array $value) : void
914
    {
915
        $this->NudgePropertyValue('contentLocation', $value, true);
916
    }
917
918
    /**
919
    * @return array<int, Rating>
920
    */
921
    public function GetContentRating() : array
922
    {
923
        /**
924
        * @var array<int, Rating>
925
        */
926
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
927
            'contentRating',
928
            $this->RetrievePropertyValueFromData('contentRating'),
929
            static::class
930
        );
931
932
        return $out;
933
    }
934
935
    /**
936
    * @param array<int, Rating> $value
937
    */
938
    public function SetContentRating(array $value) : void
939
    {
940
        $this->NudgePropertyValue(
941
            'contentRating',
942
            $value,
943
            true
944
        );
945
    }
946
947
    /**
948
    * @return array<int, DateTime>
949
    */
950
    public function GetContentReferenceTime() : array
951
    {
952
        /**
953
        * @var array<int, DateTime>
954
        */
955
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
956
            'contentReferenceTime',
957
            $this->RetrievePropertyValueFromData('contentReferenceTime'),
958
            static::class
959
        );
960
961
        return $out;
962
    }
963
964
    /**
965
    * @param array<int, DateTime> $value
966
    */
967
    public function SetContentReferenceTime(array $value) : void
968
    {
969
        $this->NudgePropertyValue('contentReferenceTime', $value, true);
970
    }
971
972
    /**
973
    * @return array<int, Organization|Person>
974
    */
975
    public function GetContributor() : array
976
    {
977
        /**
978
        * @var array<int, Organization|Person>
979
        */
980
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
981
            'contributor',
982
            $this->RetrievePropertyValueFromData('contributor'),
983
            static::class
984
        );
985
986
        return $out;
987
    }
988
989
    /**
990
    * @param array<int, Organization|Person> $value
991
    */
992
    public function SetContributor(array $value) : void
993
    {
994
        $this->NudgePropertyValue('contributor', $value, true);
995
    }
996
997
    /**
998
    * @return array<int, Organization|Person>
999
    */
1000
    public function GetCopyrightHolder() : array
1001
    {
1002
        /**
1003
        * @var array<int, Organization|Person>
1004
        */
1005
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1006
            'copyrightHolder',
1007
            $this->RetrievePropertyValueFromData('copyrightHolder'),
1008
            static::class
1009
        );
1010
1011
        return $out;
1012
    }
1013
1014
    /**
1015
    * @param array<int, Organization|Person> $value
1016
    */
1017
    public function SetCopyrightHolder(array $value) : void
1018
    {
1019
        $this->NudgePropertyValue(
1020
            'copyrightHolder',
1021
            $value,
1022
            true
1023
        );
1024
    }
1025
1026
    /**
1027
    * @return array<int, int>
1028
    */
1029
    public function GetCopyrightYear() : array
1030
    {
1031
        /**
1032
        * @var array<int, int>
1033
        */
1034
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1035
            'copyrightYear',
1036
            $this->RetrievePropertyValueFromData('copyrightYear'),
1037
            static::class
1038
        );
1039
1040
        return $out;
1041
    }
1042
1043
    /**
1044
    * @param array<int, int> $value
1045
    */
1046
    public function SetCopyrightYear(array $value) : void
1047
    {
1048
        $this->NudgePropertyWithUniqueIntegers('copyrightYear', __METHOD__, $value);
1049
    }
1050
1051
    /**
1052
    * @return array<int, string|CorrectionComment>
1053
    */
1054
    public function GetCorrection() : array
1055
    {
1056
        /**
1057
        * @var array<int, string|CorrectionComment>
1058
        */
1059
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1060
            'correction',
1061
            $this->RetrievePropertyValueFromData('correction'),
1062
            static::class
1063
        );
1064
1065
        return $out;
1066
    }
1067
1068
    /**
1069
    * @param array<int, string|CorrectionComment> $value
1070
    */
1071
    public function SetCorrection(array $value) : void
1072
    {
1073
        $this->NudgePropertyValue(
1074
            'correction',
1075
            $value,
1076
            true
1077
        );
1078
    }
1079
1080
    /**
1081
    * @return array<int, Organization|Person>
1082
    */
1083
    public function GetCreator() : array
1084
    {
1085
        /**
1086
        * @var array<int, Organization|Person>
1087
        */
1088
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1089
            'creator',
1090
            $this->RetrievePropertyValueFromData('creator'),
1091
            static::class
1092
        );
1093
1094
        return $out;
1095
    }
1096
1097
    /**
1098
    * @param array<int, Organization|Person> $value
1099
    */
1100
    public function SetCreator(array $value) : void
1101
    {
1102
        $this->NudgePropertyValue('creator', $value, true);
1103
    }
1104
1105
    /**
1106
    * @return array<int, Date|DateTime>
1107
    */
1108
    public function GetDateCreated() : array
1109
    {
1110
        /**
1111
        * @var array<int, Date|DateTime>
1112
        */
1113
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1114
            'dateCreated',
1115
            $this->RetrievePropertyValueFromData('dateCreated'),
1116
            static::class
1117
        );
1118
1119
        return $out;
1120
    }
1121
1122
    /**
1123
    * @param array<int, Date|DateTime> $value
1124
    */
1125
    public function SetDateCreated(array $value) : void
1126
    {
1127
        $this->NudgePropertyValue('dateCreated', $value, true);
1128
    }
1129
1130
    /**
1131
    * @return array<int, Date|DateTime>
1132
    */
1133
    public function GetDateModified() : array
1134
    {
1135
        /**
1136
        * @var array<int, Date|DateTime>
1137
        */
1138
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1139
            'dateModified',
1140
            $this->RetrievePropertyValueFromData('dateModified'),
1141
            static::class
1142
        );
1143
1144
        return $out;
1145
    }
1146
1147
    /**
1148
    * @param array<int, Date|DateTime> $value
1149
    */
1150
    public function SetDateModified(array $value) : void
1151
    {
1152
        $this->NudgePropertyValue('dateModified', $value, true);
1153
    }
1154
1155
    /**
1156
    * @return array<int, Date|DateTime>
1157
    */
1158
    public function GetDatePublished() : array
1159
    {
1160
        /**
1161
        * @var array<int, Date|DateTime>
1162
        */
1163
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1164
            'datePublished',
1165
            $this->RetrievePropertyValueFromData('datePublished'),
1166
            static::class
1167
        );
1168
1169
        return $out;
1170
    }
1171
1172
    /**
1173
    * @param array<int, Date|DateTime> $value
1174
    */
1175
    public function SetDatePublished(array $value) : void
1176
    {
1177
        $this->NudgePropertyValue('datePublished', $value, true);
1178
    }
1179
1180
    /**
1181
    * @return array<int, string>
1182
    */
1183
    public function GetDiscussionUrl() : array
1184
    {
1185
        /**
1186
        * @var array<int, string>
1187
        */
1188
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1189
            'discussionUrl',
1190
            $this->RetrievePropertyValueFromData('discussionUrl'),
1191
            static::class
1192
        );
1193
1194
        return $out;
1195
    }
1196
1197
    /**
1198
    * @param array<int, string> $value
1199
    */
1200
    public function SetDiscussionUrl(array $value) : void
1201
    {
1202
        $this->NudgePropertyValue(
1203
            'discussionUrl',
1204
            $value,
1205
            true
1206
        );
1207
    }
1208
1209
    /**
1210
    * @return array<int, Person>
1211
    */
1212
    public function GetEditor() : array
1213
    {
1214
        /**
1215
        * @var array<int, Person>
1216
        */
1217
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1218
            'editor',
1219
            $this->RetrievePropertyValueFromData('editor'),
1220
            static::class
1221
        );
1222
1223
        return $out;
1224
    }
1225
1226
    /**
1227
    * @param array<int, Person> $value
1228
    */
1229
    public function SetEditor(array $value) : void
1230
    {
1231
        $this->NudgePropertyValue('editor', $value, true);
1232
    }
1233
1234
    /**
1235
    * @return array<int, AlignmentObject>
1236
    */
1237
    public function GetEducationalAlignment() : array
1238
    {
1239
        /**
1240
        * @var array<int, AlignmentObject>
1241
        */
1242
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1243
            'educationalAlignment',
1244
            $this->RetrievePropertyValueFromData('educationalAlignment'),
1245
            static::class
1246
        );
1247
1248
        return $out;
1249
    }
1250
1251
    /**
1252
    * @param array<int, AlignmentObject> $value
1253
    */
1254
    public function SetEducationalAlignment(array $value) : void
1255
    {
1256
        $this->NudgePropertyValue(
1257
            'educationalAlignment',
1258
            $value,
1259
            true
1260
        );
1261
    }
1262
1263
    /**
1264
    * @return array<int, string>
1265
    */
1266
    public function GetEducationalUse() : array
1267
    {
1268
        /**
1269
        * @var array<int, string>
1270
        */
1271
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1272
            'educationalUse',
1273
            $this->RetrievePropertyValueFromData('educationalUse'),
1274
            static::class
1275
        );
1276
1277
        return $out;
1278
    }
1279
1280
    /**
1281
    * @param array<int, string> $value
1282
    */
1283
    public function SetEducationalUse(array $value) : void
1284
    {
1285
        $this->NudgePropertyValue(
1286
            'educationalUse',
1287
            $value,
1288
            true
1289
        );
1290
    }
1291
1292
    /**
1293
    * @return array<int, MediaObject>
1294
    */
1295
    public function GetEncoding() : array
1296
    {
1297
        /**
1298
        * @var array<int, MediaObject>
1299
        */
1300
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1301
            'encoding',
1302
            $this->RetrievePropertyValueFromData('encoding'),
1303
            static::class
1304
        );
1305
1306
        return $out;
1307
    }
1308
1309
    /**
1310
    * @param array<int, MediaObject> $value
1311
    */
1312
    public function SetEncoding(array $value) : void
1313
    {
1314
        $this->NudgePropertyValue(
1315
            'encoding',
1316
            $value,
1317
            true
1318
        );
1319
    }
1320
1321
    /**
1322
    * @return array<int, string>
1323
    */
1324
    public function GetEncodingFormat() : array
1325
    {
1326
        /**
1327
        * @var array<int, string>
1328
        */
1329
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1330
            'encodingFormat',
1331
            $this->RetrievePropertyValueFromData('encodingFormat'),
1332
            static::class
1333
        );
1334
1335
        return $out;
1336
    }
1337
1338
    /**
1339
    * @param array<int, string> $value
1340
    */
1341
    public function SetEncodingFormat(array $value) : void
1342
    {
1343
        $this->NudgePropertyValue(
1344
            'encodingFormat',
1345
            $value,
1346
            true
1347
        );
1348
    }
1349
1350
    /**
1351
    * @return array<int, CreativeWork>
1352
    */
1353
    public function GetExampleOfWork() : array
1354
    {
1355
        /**
1356
        * @var array<int, CreativeWork>
1357
        */
1358
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1359
            'exampleOfWork',
1360
            $this->RetrievePropertyValueFromData('exampleOfWork'),
1361
            static::class
1362
        );
1363
1364
        return $out;
1365
    }
1366
1367
    /**
1368
    * @param array<int, CreativeWork> $value
1369
    */
1370
    public function SetExampleOfWork(array $value) : void
1371
    {
1372
        $this->NudgePropertyValue(
1373
            'exampleOfWork',
1374
            $value,
1375
            true
1376
        );
1377
    }
1378
1379
    /**
1380
    * @return array<int, Date>
1381
    */
1382
    public function GetExpires() : array
1383
    {
1384
        /**
1385
        * @var array<int, Date>
1386
        */
1387
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1388
            'expires',
1389
            $this->RetrievePropertyValueFromData('expires'),
1390
            static::class
1391
        );
1392
1393
        return $out;
1394
    }
1395
1396
    /**
1397
    * @param array<int, Date> $value
1398
    */
1399
    public function SetExpires(array $value) : void
1400
    {
1401
        $this->NudgePropertyValue(
1402
            'expires',
1403
            $value,
1404
            true
1405
        );
1406
    }
1407
1408
    /**
1409
    * @return array<int, string>
1410
    */
1411
    public function GetHeadline() : array
1412
    {
1413
        /**
1414
        * @var array<int, string>
1415
        */
1416
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1417
            'headline',
1418
            $this->RetrievePropertyValueFromData('headline'),
1419
            static::class
1420
        );
1421
1422
        return $out;
1423
    }
1424
1425
    /**
1426
    * @param array<int, string> $value
1427
    */
1428
    public function SetHeadline(array $value) : void
1429
    {
1430
        $this->NudgePropertyValue(
1431
            'headline',
1432
            $value,
1433
            true
1434
        );
1435
    }
1436
1437
    /**
1438
    * @return array<int, InteractionCounter>
1439
    */
1440
    public function GetInteractionStatistic() : array
1441
    {
1442
        /**
1443
        * @var array<int, InteractionCounter>
1444
        */
1445
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1446
            'interactionStatistic',
1447
            $this->RetrievePropertyValueFromData('interactionStatistic'),
1448
            static::class
1449
        );
1450
1451
        return $out;
1452
    }
1453
1454
    /**
1455
    * @param array<int, InteractionCounter> $value
1456
    */
1457
    public function SetInteractionStatistic(array $value) : void
1458
    {
1459
        $this->NudgePropertyValue(
1460
            'interactionStatistic',
1461
            $value,
1462
            true
1463
        );
1464
    }
1465
1466
    /**
1467
    * @return array<int, string>
1468
    */
1469
    public function GetInteractivityType() : array
1470
    {
1471
        /**
1472
        * @var array<int, string>
1473
        */
1474
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1475
            'interactivityType',
1476
            $this->RetrievePropertyValueFromData('interactivityType'),
1477
            static::class
1478
        );
1479
1480
        return $out;
1481
    }
1482
1483
    /**
1484
    * @param array<int, string> $value
1485
    */
1486
    public function SetInteractivityType(array $value) : void
1487
    {
1488
        $this->NudgePropertyValue(
1489
            'interactivityType',
1490
            $value,
1491
            true
1492
        );
1493
    }
1494
1495
    /**
1496
    * @return array<int, string|CreativeWork|Product>
1497
    */
1498
    public function GetIsBasedOn() : array
1499
    {
1500
        /**
1501
        * @var array<int, string|CreativeWork|Product>
1502
        */
1503
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1504
            'isBasedOn',
1505
            $this->RetrievePropertyValueFromData('isBasedOn'),
1506
            static::class
1507
        );
1508
1509
        return $out;
1510
    }
1511
1512
    /**
1513
    * @param array<int, string|CreativeWork|Product> $value
1514
    */
1515
    public function SetIsBasedOn(array $value) : void
1516
    {
1517
        $this->NudgePropertyValue(
1518
            'isBasedOn',
1519
            $value,
1520
            true
1521
        );
1522
    }
1523
1524
    /**
1525
    * @return array<int, bool>
1526
    */
1527
    public function GetIsFamilyFriendly() : array
1528
    {
1529
        /**
1530
        * @var array<int, bool>
1531
        */
1532
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1533
            'isFamilyFriendly',
1534
            $this->RetrievePropertyValueFromData('isFamilyFriendly'),
1535
            static::class
1536
        );
1537
1538
        return $out;
1539
    }
1540
1541
    /**
1542
    * @param array<int, bool> $value
1543
    */
1544
    public function SetIsFamilyFriendly(array $value) : void
1545
    {
1546
        $this->NudgePropertyWithUniqueBooleans(
1547
            'isFamilyFriendly',
1548
            $value
1549
        );
1550
    }
1551
1552
    /**
1553
    * @return array<int, string>
1554
    */
1555
    public function GetKeywords() : array
1556
    {
1557
        /**
1558
        * @var array<int, string>
1559
        */
1560
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1561
            'keywords',
1562
            $this->RetrievePropertyValueFromData('keywords'),
1563
            static::class
1564
        );
1565
1566
        return $out;
1567
    }
1568
1569
    /**
1570
    * @param array<int, string> $value
1571
    */
1572
    public function SetKeywords(array $value) : void
1573
    {
1574
        $this->NudgePropertyValue(
1575
            'keywords',
1576
            $value,
1577
            true
1578
        );
1579
    }
1580
1581
    /**
1582
    * @return array<int, string>
1583
    */
1584
    public function GetLearningResourceType() : array
1585
    {
1586
        /**
1587
        * @var array<int, string>
1588
        */
1589
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1590
            'learningResourceType',
1591
            $this->RetrievePropertyValueFromData('learningResourceType'),
1592
            static::class
1593
        );
1594
1595
        return $out;
1596
    }
1597
1598
    /**
1599
    * @param array<int, string> $value
1600
    */
1601
    public function SetLearningResourceType(array $value) : void
1602
    {
1603
        $this->NudgePropertyValue(
1604
            'learningResourceType',
1605
            $value,
1606
            true
1607
        );
1608
    }
1609
1610
    /**
1611
    * @return array<int, string|CreativeWork>
1612
    */
1613
    public function GetLicense() : array
1614
    {
1615
        /**
1616
        * @var array<int, string|CreativeWork>
1617
        */
1618
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1619
            'license',
1620
            $this->RetrievePropertyValueFromData('license'),
1621
            static::class
1622
        );
1623
1624
        return $out;
1625
    }
1626
1627
    /**
1628
    * @param array<int, string|CreativeWork> $value
1629
    */
1630
    public function SetLicense(array $value) : void
1631
    {
1632
        $this->NudgePropertyValue(
1633
            'license',
1634
            $value,
1635
            true
1636
        );
1637
    }
1638
1639
    /**
1640
    * @return array<int, Place>
1641
    */
1642
    public function GetLocationCreated() : array
1643
    {
1644
        /**
1645
        * @var array<int, Place>
1646
        */
1647
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1648
            'locationCreated',
1649
            $this->RetrievePropertyValueFromData('locationCreated'),
1650
            static::class
1651
        );
1652
1653
        return $out;
1654
    }
1655
1656
    /**
1657
    * @param array<int, Place> $value
1658
    */
1659
    public function SetLocationCreated(array $value) : void
1660
    {
1661
        $this->NudgePropertyValue('locationCreated', $value, true);
1662
    }
1663
1664
    /**
1665
    * @return array<int, Thing>
1666
    */
1667
    public function GetMainEntity() : array
1668
    {
1669
        /**
1670
        * @var array<int, Thing>
1671
        */
1672
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1673
            'mainEntity',
1674
            $this->RetrievePropertyValueFromData('mainEntity'),
1675
            static::class
1676
        );
1677
1678
        return $out;
1679
    }
1680
1681
    /**
1682
    * @param array<int, Thing> $value
1683
    */
1684
    public function SetMainEntity(array $value) : void
1685
    {
1686
        $this->NudgePropertyValue(
1687
            'mainEntity',
1688
            $value,
1689
            true
1690
        );
1691
    }
1692
1693
    /**
1694
    * @return array<int, Thing>
1695
    */
1696
    public function GetMentions() : array
1697
    {
1698
        /**
1699
        * @var array<int, Thing>
1700
        */
1701
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1702
            'mentions',
1703
            $this->RetrievePropertyValueFromData('mentions'),
1704
            static::class
1705
        );
1706
1707
        return $out;
1708
    }
1709
1710
    /**
1711
    * @param array<int, Thing> $value
1712
    */
1713
    public function SetMentions(array $value) : void
1714
    {
1715
        $this->NudgePropertyValue(
1716
            'mentions',
1717
            $value,
1718
            true
1719
        );
1720
    }
1721
1722
    /**
1723
    * @return array<int, int|string>
1724
    */
1725
    public function GetPosition() : array
1726
    {
1727
        /**
1728
        * @var array<int, int|string>
1729
        */
1730
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1731
            'position',
1732
            $this->RetrievePropertyValueFromData('position'),
1733
            static::class
1734
        );
1735
1736
        return $out;
1737
    }
1738
1739
    /**
1740
    * @param array<int, int|string> $value
1741
    */
1742
    public function SetPosition(array $value) : void
1743
    {
1744
        $this->NudgePropertyValue(
1745
            'position',
1746
            $value,
1747
            true
1748
        );
1749
    }
1750
1751
    /**
1752
    * @return array<int, Organization|Person>
1753
    */
1754
    public function GetProducer() : array
1755
    {
1756
        /**
1757
        * @var array<int, Organization|Person>
1758
        */
1759
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1760
            'producer',
1761
            $this->RetrievePropertyValueFromData('producer'),
1762
            static::class
1763
        );
1764
1765
        return $out;
1766
    }
1767
1768
    /**
1769
    * @param array<int, Organization|Person> $value
1770
    */
1771
    public function SetProducer(array $value) : void
1772
    {
1773
        $this->NudgePropertyValue('producer', $value, true);
1774
    }
1775
1776
    /**
1777
    * @return array<int, PublicationEvent>
1778
    */
1779
    public function GetPublication() : array
1780
    {
1781
        /**
1782
        * @var array<int, PublicationEvent>
1783
        */
1784
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1785
            'publication',
1786
            $this->RetrievePropertyValueFromData('publication'),
1787
            static::class
1788
        );
1789
1790
        return $out;
1791
    }
1792
1793
    /**
1794
    * @param array<int, PublicationEvent> $value
1795
    */
1796
    public function SetPublication(array $value) : void
1797
    {
1798
        $this->NudgePropertyValue(
1799
            'publication',
1800
            $value,
1801
            true
1802
        );
1803
    }
1804
1805
    /**
1806
    * @return array<int, Organization|Person>
1807
    */
1808
    public function GetPublisher() : array
1809
    {
1810
        /**
1811
        * @var array<int, Organization|Person>
1812
        */
1813
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1814
            'publisher',
1815
            $this->RetrievePropertyValueFromData('publisher'),
1816
            static::class
1817
        );
1818
1819
        return $out;
1820
    }
1821
1822
    /**
1823
    * @param array<int, Organization|Person> $value
1824
    */
1825
    public function SetPublisher(array $value) : void
1826
    {
1827
        $this->NudgePropertyValue('publisher', $value, true);
1828
    }
1829
1830
    /**
1831
    * @return array<int, Organization>
1832
    */
1833
    public function GetPublisherImprint() : array
1834
    {
1835
        /**
1836
        * @var array<int, Organization>
1837
        */
1838
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1839
            'publisherImprint',
1840
            $this->RetrievePropertyValueFromData('publisherImprint'),
1841
            static::class
1842
        );
1843
1844
        return $out;
1845
    }
1846
1847
    /**
1848
    * @param array<int, Organization> $value
1849
    */
1850
    public function SetPublisherImprint(array $value) : void
1851
    {
1852
        $this->NudgePropertyValue(
1853
            'publisherImprint',
1854
            $value,
1855
            true
1856
        );
1857
    }
1858
1859
    /**
1860
    * @return array<int, Event>
1861
    */
1862
    public function GetRecordedAt() : array
1863
    {
1864
        /**
1865
        * @var array<int, Event>
1866
        */
1867
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1868
            'recordedAt',
1869
            $this->RetrievePropertyValueFromData('recordedAt'),
1870
            static::class
1871
        );
1872
1873
        return $out;
1874
    }
1875
1876
    /**
1877
    * @param array<int, Event> $value
1878
    */
1879
    public function SetRecordedAt(array $value) : void
1880
    {
1881
        $this->NudgePropertyValue(
1882
            'recordedAt',
1883
            $value,
1884
            true
1885
        );
1886
    }
1887
1888
    /**
1889
    * @return array<int, PublicationEvent>
1890
    */
1891
    public function GetReleasedEvent() : array
1892
    {
1893
        /**
1894
        * @var array<int, PublicationEvent>
1895
        */
1896
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1897
            'releasedEvent',
1898
            $this->RetrievePropertyValueFromData('releasedEvent'),
1899
            static::class
1900
        );
1901
1902
        return $out;
1903
    }
1904
1905
    /**
1906
    * @param array<int, PublicationEvent> $value
1907
    */
1908
    public function SetReleasedEvent(array $value) : void
1909
    {
1910
        $this->NudgePropertyValue(
1911
            'releasedEvent',
1912
            $value,
1913
            true
1914
        );
1915
    }
1916
1917
    /**
1918
    * @return array<int, string>
1919
    */
1920
    public function GetSchemaVersion() : array
1921
    {
1922
        /**
1923
        * @var array<int, string>
1924
        */
1925
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1926
            'schemaVersion',
1927
            $this->RetrievePropertyValueFromData('schemaVersion'),
1928
            static::class
1929
        );
1930
1931
        return $out;
1932
    }
1933
1934
    /**
1935
    * @param array<int, string> $value
1936
    */
1937
    public function SetSchemaVersion(array $value) : void
1938
    {
1939
        $this->NudgePropertyValue(
1940
            'schemaVersion',
1941
            $value,
1942
            true
1943
        );
1944
    }
1945
1946
    /**
1947
    * @return array<int, Date>
1948
    */
1949
    public function GetSdDatePublished() : array
1950
    {
1951
        /**
1952
        * @var array<int, Date>
1953
        */
1954
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1955
            'sdDatePublished',
1956
            $this->RetrievePropertyValueFromData('sdDatePublished'),
1957
            static::class
1958
        );
1959
1960
        return $out;
1961
    }
1962
1963
    /**
1964
    * @param array<int, Date> $value
1965
    */
1966
    public function SetSdDatePublished(array $value) : void
1967
    {
1968
        $this->NudgePropertyValue(
1969
            'sdDatePublished',
1970
            $value,
1971
            true
1972
        );
1973
    }
1974
1975
    /**
1976
    * @return array<int, string|CreativeWork>
1977
    */
1978
    public function GetSdLicense() : array
1979
    {
1980
        /**
1981
        * @var array<int, string|CreativeWork>
1982
        */
1983
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
1984
            'sdLicense',
1985
            $this->RetrievePropertyValueFromData('sdLicense'),
1986
            static::class
1987
        );
1988
1989
        return $out;
1990
    }
1991
1992
    /**
1993
    * @param array<int, string|CreativeWork> $value
1994
    */
1995
    public function SetSdLicense(array $value) : void
1996
    {
1997
        $this->NudgePropertyValue(
1998
            'sdLicense',
1999
            $value,
2000
            true
2001
        );
2002
    }
2003
2004
    /**
2005
    * @return array<int, Organization|Person>
2006
    */
2007
    public function GetSdPublisher() : array
2008
    {
2009
        /**
2010
        * @var array<int, Organization|Person>
2011
        */
2012
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
2013
            'sdPublisher',
2014
            $this->RetrievePropertyValueFromData('sdPublisher'),
2015
            static::class
2016
        );
2017
2018
        return $out;
2019
    }
2020
2021
    /**
2022
    * @param array<int, Organization|Person> $value
2023
    */
2024
    public function SetSdPublisher(array $value) : void
2025
    {
2026
        $this->NudgePropertyValue('sdPublisher', $value, true);
2027
    }
2028
2029
    /**
2030
    * @return array<int, Organization>
2031
    */
2032
    public function GetSourceOrganization() : array
2033
    {
2034
        /**
2035
        * @var array<int, Organization>
2036
        */
2037
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
2038
            'sourceOrganization',
2039
            $this->RetrievePropertyValueFromData('sourceOrganization'),
2040
            static::class
2041
        );
2042
2043
        return $out;
2044
    }
2045
2046
    /**
2047
    * @param array<int, Organization> $value
2048
    */
2049
    public function SetSourceOrganization(array $value) : void
2050
    {
2051
        $this->NudgePropertyValue(
2052
            'sourceOrganization',
2053
            $value,
2054
            true
2055
        );
2056
    }
2057
2058
    /**
2059
    * @return array<int, Place>
2060
    */
2061
    public function GetSpatialCoverage() : array
2062
    {
2063
        /**
2064
        * @var array<int, Place>
2065
        */
2066
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
2067
            'spatialCoverage',
2068
            $this->RetrievePropertyValueFromData('spatialCoverage'),
2069
            static::class
2070
        );
2071
2072
        return $out;
2073
    }
2074
2075
    /**
2076
    * @param array<int, Place> $value
2077
    */
2078
    public function SetSpatialCoverage(array $value) : void
2079
    {
2080
        $this->NudgePropertyValue('spatialCoverage', $value, true);
2081
    }
2082
2083
    /**
2084
    * @return array<int, string|DateTime>
2085
    */
2086
    public function GetTemporalCoverage() : array
2087
    {
2088
        /**
2089
        * @var array<int, string|DateTime>
2090
        */
2091
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
2092
            'temporalCoverage',
2093
            $this->RetrievePropertyValueFromData('temporalCoverage'),
2094
            static::class
2095
        );
2096
2097
        return $out;
2098
    }
2099
2100
    /**
2101
    * @param array<int, string|DateTime> $value
2102
    */
2103
    public function SetTemporalCoverage(array $value) : void
2104
    {
2105
        $this->NudgePropertyValue(
2106
            'temporalCoverage',
2107
            $value,
2108
            true
2109
        );
2110
    }
2111
2112
    /**
2113
    * @return array<int, string>
2114
    */
2115
    public function GetText() : array
2116
    {
2117
        /**
2118
        * @var array<int, string>
2119
        */
2120
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
2121
            'text',
2122
            $this->RetrievePropertyValueFromData('text'),
2123
            static::class
2124
        );
2125
2126
        return $out;
2127
    }
2128
2129
    /**
2130
    * @param array<int, string> $value
2131
    */
2132
    public function SetText(array $value) : void
2133
    {
2134
        $this->NudgePropertyValue(
2135
            'text',
2136
            $value,
2137
            true
2138
        );
2139
    }
2140
2141
    /**
2142
    * @return array<int, string>
2143
    */
2144
    public function GetThumbnailUrl() : array
2145
    {
2146
        /**
2147
        * @var array<int, string>
2148
        */
2149
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
2150
            'thumbnailUrl',
2151
            $this->RetrievePropertyValueFromData('thumbnailUrl'),
2152
            static::class
2153
        );
2154
2155
        return $out;
2156
    }
2157
2158
    /**
2159
    * @param array<int, string> $value
2160
    */
2161
    public function SetThumbnailUrl(array $value) : void
2162
    {
2163
        $this->NudgePropertyValue(
2164
            'thumbnailUrl',
2165
            $value,
2166
            true
2167
        );
2168
    }
2169
2170
    /**
2171
    * @return array<int, Duration>
2172
    */
2173
    public function GetTimeRequired() : array
2174
    {
2175
        /**
2176
        * @var array<int, Duration>
2177
        */
2178
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
2179
            'timeRequired',
2180
            $this->RetrievePropertyValueFromData('timeRequired'),
2181
            static::class
2182
        );
2183
2184
        return $out;
2185
    }
2186
2187
    /**
2188
    * @param array<int, Duration> $value
2189
    */
2190
    public function SetTimeRequired(array $value) : void
2191
    {
2192
        $this->NudgePropertyValue(
2193
            'timeRequired',
2194
            $value,
2195
            true
2196
        );
2197
    }
2198
2199
    /**
2200
    * @return array<int, CreativeWork>
2201
    */
2202
    public function GetTranslationOfWork() : array
2203
    {
2204
        /**
2205
        * @var array<int, CreativeWork>
2206
        */
2207
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
2208
            'translationOfWork',
2209
            $this->RetrievePropertyValueFromData('translationOfWork'),
2210
            static::class
2211
        );
2212
2213
        return $out;
2214
    }
2215
2216
    /**
2217
    * @param array<int, CreativeWork> $value
2218
    */
2219
    public function SetTranslationOfWork(array $value) : void
2220
    {
2221
        $this->NudgePropertyValue(
2222
            'translationOfWork',
2223
            $value,
2224
            true
2225
        );
2226
    }
2227
2228
    /**
2229
    * @return array<int, int|string>
2230
    */
2231
    public function GetVersion() : array
2232
    {
2233
        /**
2234
        * @var array<int, int|string>
2235
        */
2236
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
2237
            'version',
2238
            $this->RetrievePropertyValueFromData('version'),
2239
            static::class
2240
        );
2241
2242
        return $out;
2243
    }
2244
2245
    /**
2246
    * @param array<int, int|string> $value
2247
    */
2248
    public function SetVersion(array $value) : void
2249
    {
2250
        $this->NudgePropertyValue(
2251
            'version',
2252
            $value,
2253
            true
2254
        );
2255
    }
2256
2257
    /**
2258
    * @return array<int, VideoObject>
2259
    */
2260
    public function GetVideo() : array
2261
    {
2262
        /**
2263
        * @var array<int, VideoObject>
2264
        */
2265
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
2266
            'video',
2267
            $this->RetrievePropertyValueFromData('video'),
2268
            static::class
2269
        );
2270
2271
        return $out;
2272
    }
2273
2274
    /**
2275
    * @param array<int, VideoObject> $value
2276
    */
2277
    public function SetVideo(array $value) : void
2278
    {
2279
        $this->NudgePropertyValue(
2280
            'video',
2281
            $value,
2282
            true
2283
        );
2284
    }
2285
2286
    /**
2287
    * @return array<int, CreativeWork>
2288
    */
2289
    public function GetWorkExample() : array
2290
    {
2291
        /**
2292
        * @var array<int, CreativeWork>
2293
        */
2294
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
2295
            'workExample',
2296
            $this->RetrievePropertyValueFromData('workExample'),
2297
            static::class
2298
        );
2299
2300
        return $out;
2301
    }
2302
2303
    /**
2304
    * @param array<int, CreativeWork> $value
2305
    */
2306
    public function SetWorkExample(array $value) : void
2307
    {
2308
        $this->NudgePropertyValue(
2309
            'workExample',
2310
            $value,
2311
            true
2312
        );
2313
    }
2314
2315
    /**
2316
    * @return array<int, CreativeWork>
2317
    */
2318
    public function GetWorkTranslation() : array
2319
    {
2320
        /**
2321
        * @var array<int, CreativeWork>
2322
        */
2323
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
2324
            'workTranslation',
2325
            $this->RetrievePropertyValueFromData('workTranslation'),
2326
            static::class
2327
        );
2328
2329
        return $out;
2330
    }
2331
2332
    /**
2333
    * @param array<int, CreativeWork> $value
2334
    */
2335
    public function SetWorkTranslation(array $value) : void
2336
    {
2337
        $this->NudgePropertyValue(
2338
            'workTranslation',
2339
            $value,
2340
            true
2341
        );
2342
    }
2343
}
2344