MediaGallery   F
last analyzed

Complexity

Total Complexity 107

Size/Duplication

Total Lines 1683
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 107
lcom 1
cbo 1
dl 0
loc 1683
rs 0.8
c 0
b 0
f 0

107 Methods

Rating   Name   Duplication   Size   Complexity  
A about() 0 4 1
A accessMode() 0 4 1
A accessModeSufficient() 0 4 1
A accessibilityAPI() 0 4 1
A accessibilityControl() 0 4 1
A accessibilityFeature() 0 4 1
A accessibilityHazard() 0 4 1
A accessibilitySummary() 0 4 1
A accountablePerson() 0 4 1
A additionalType() 0 4 1
A aggregateRating() 0 4 1
A alternateName() 0 4 1
A alternativeHeadline() 0 4 1
A associatedMedia() 0 4 1
A audience() 0 4 1
A audio() 0 4 1
A author() 0 4 1
A award() 0 4 1
A awards() 0 4 1
A breadcrumb() 0 4 1
A character() 0 4 1
A citation() 0 4 1
A comment() 0 4 1
A commentCount() 0 4 1
A contentLocation() 0 4 1
A contentRating() 0 4 1
A contributor() 0 4 1
A copyrightHolder() 0 4 1
A copyrightYear() 0 4 1
A creator() 0 4 1
A dateCreated() 0 4 1
A dateModified() 0 4 1
A datePublished() 0 4 1
A description() 0 4 1
A disambiguatingDescription() 0 4 1
A discussionUrl() 0 4 1
A editor() 0 4 1
A educationalAlignment() 0 4 1
A educationalUse() 0 4 1
A encoding() 0 4 1
A encodingFormat() 0 4 1
A encodings() 0 4 1
A exampleOfWork() 0 4 1
A expires() 0 4 1
A fileFormat() 0 4 1
A funder() 0 4 1
A genre() 0 4 1
A hasPart() 0 4 1
A headline() 0 4 1
A identifier() 0 4 1
A image() 0 4 1
A inLanguage() 0 4 1
A interactionStatistic() 0 4 1
A interactivityType() 0 4 1
A isAccessibleForFree() 0 4 1
A isBasedOn() 0 4 1
A isBasedOnUrl() 0 4 1
A isFamilyFriendly() 0 4 1
A isPartOf() 0 4 1
A keywords() 0 4 1
A lastReviewed() 0 4 1
A learningResourceType() 0 4 1
A license() 0 4 1
A locationCreated() 0 4 1
A mainContentOfPage() 0 4 1
A mainEntity() 0 4 1
A mainEntityOfPage() 0 4 1
A material() 0 4 1
A mentions() 0 4 1
A name() 0 4 1
A offers() 0 4 1
A position() 0 4 1
A potentialAction() 0 4 1
A primaryImageOfPage() 0 4 1
A producer() 0 4 1
A provider() 0 4 1
A publication() 0 4 1
A publisher() 0 4 1
A publishingPrinciples() 0 4 1
A recordedAt() 0 4 1
A relatedLink() 0 4 1
A releasedEvent() 0 4 1
A review() 0 4 1
A reviewedBy() 0 4 1
A reviews() 0 4 1
A sameAs() 0 4 1
A schemaVersion() 0 4 1
A significantLink() 0 4 1
A significantLinks() 0 4 1
A sourceOrganization() 0 4 1
A spatial() 0 4 1
A spatialCoverage() 0 4 1
A speakable() 0 4 1
A specialty() 0 4 1
A sponsor() 0 4 1
A subjectOf() 0 4 1
A temporal() 0 4 1
A temporalCoverage() 0 4 1
A text() 0 4 1
A thumbnailUrl() 0 4 1
A timeRequired() 0 4 1
A translator() 0 4 1
A typicalAgeRange() 0 4 1
A url() 0 4 1
A version() 0 4 1
A video() 0 4 1
A workExample() 0 4 1

How to fix   Complexity   

Complex Class

Complex classes like MediaGallery often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes. You can also have a look at the cohesion graph to spot any un-connected, or weakly-connected components.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

While breaking up the class, it is a good idea to analyze how other classes use MediaGallery, and based on these observations, apply Extract Interface, too.

1
<?php
2
3
namespace Spatie\SchemaOrg;
4
5
use \Spatie\SchemaOrg\Contracts\MediaGalleryContract;
6
use \Spatie\SchemaOrg\Contracts\CollectionPageContract;
7
use \Spatie\SchemaOrg\Contracts\CreativeWorkContract;
8
use \Spatie\SchemaOrg\Contracts\ThingContract;
9
use \Spatie\SchemaOrg\Contracts\WebPageContract;
10
11
/**
12
 * Web page type: Media gallery page. A mixed-media page that can contains media
13
 * such as images, videos, and other multimedia.
14
 *
15
 * @see http://schema.org/MediaGallery
16
 *
17
 */
18
class MediaGallery extends BaseType implements MediaGalleryContract, CollectionPageContract, CreativeWorkContract, ThingContract, WebPageContract
19
{
20
    /**
21
     * The subject matter of the content.
22
     *
23
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $about
24
     *
25
     * @return static
26
     *
27
     * @see http://schema.org/about
28
     */
29
    public function about($about)
30
    {
31
        return $this->setProperty('about', $about);
32
    }
33
34
    /**
35
     * The human sensory perceptual system or cognitive faculty through which a
36
     * person may process or perceive information. Expected values include:
37
     * auditory, tactile, textual, visual, colorDependent, chartOnVisual,
38
     * chemOnVisual, diagramOnVisual, mathOnVisual, musicOnVisual, textOnVisual.
39
     *
40
     * @param string|string[] $accessMode
41
     *
42
     * @return static
43
     *
44
     * @see http://schema.org/accessMode
45
     */
46
    public function accessMode($accessMode)
47
    {
48
        return $this->setProperty('accessMode', $accessMode);
49
    }
50
51
    /**
52
     * A list of single or combined accessModes that are sufficient to
53
     * understand all the intellectual content of a resource. Expected values
54
     * include:  auditory, tactile, textual, visual.
55
     *
56
     * @param \Spatie\SchemaOrg\Contracts\ItemListContract|\Spatie\SchemaOrg\Contracts\ItemListContract[] $accessModeSufficient
57
     *
58
     * @return static
59
     *
60
     * @see http://schema.org/accessModeSufficient
61
     */
62
    public function accessModeSufficient($accessModeSufficient)
63
    {
64
        return $this->setProperty('accessModeSufficient', $accessModeSufficient);
65
    }
66
67
    /**
68
     * Indicates that the resource is compatible with the referenced
69
     * accessibility API ([WebSchemas wiki lists possible
70
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
71
     *
72
     * @param string|string[] $accessibilityAPI
73
     *
74
     * @return static
75
     *
76
     * @see http://schema.org/accessibilityAPI
77
     */
78
    public function accessibilityAPI($accessibilityAPI)
79
    {
80
        return $this->setProperty('accessibilityAPI', $accessibilityAPI);
81
    }
82
83
    /**
84
     * Identifies input methods that are sufficient to fully control the
85
     * described resource ([WebSchemas wiki lists possible
86
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
87
     *
88
     * @param string|string[] $accessibilityControl
89
     *
90
     * @return static
91
     *
92
     * @see http://schema.org/accessibilityControl
93
     */
94
    public function accessibilityControl($accessibilityControl)
95
    {
96
        return $this->setProperty('accessibilityControl', $accessibilityControl);
97
    }
98
99
    /**
100
     * Content features of the resource, such as accessible media, alternatives
101
     * and supported enhancements for accessibility ([WebSchemas wiki lists
102
     * possible values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
103
     *
104
     * @param string|string[] $accessibilityFeature
105
     *
106
     * @return static
107
     *
108
     * @see http://schema.org/accessibilityFeature
109
     */
110
    public function accessibilityFeature($accessibilityFeature)
111
    {
112
        return $this->setProperty('accessibilityFeature', $accessibilityFeature);
113
    }
114
115
    /**
116
     * A characteristic of the described resource that is physiologically
117
     * dangerous to some users. Related to WCAG 2.0 guideline 2.3 ([WebSchemas
118
     * wiki lists possible
119
     * values](http://www.w3.org/wiki/WebSchemas/Accessibility)).
120
     *
121
     * @param string|string[] $accessibilityHazard
122
     *
123
     * @return static
124
     *
125
     * @see http://schema.org/accessibilityHazard
126
     */
127
    public function accessibilityHazard($accessibilityHazard)
128
    {
129
        return $this->setProperty('accessibilityHazard', $accessibilityHazard);
130
    }
131
132
    /**
133
     * A human-readable summary of specific accessibility features or
134
     * deficiencies, consistent with the other accessibility metadata but
135
     * expressing subtleties such as "short descriptions are present but long
136
     * descriptions will be needed for non-visual users" or "short descriptions
137
     * are present and no long descriptions are needed."
138
     *
139
     * @param string|string[] $accessibilitySummary
140
     *
141
     * @return static
142
     *
143
     * @see http://schema.org/accessibilitySummary
144
     */
145
    public function accessibilitySummary($accessibilitySummary)
146
    {
147
        return $this->setProperty('accessibilitySummary', $accessibilitySummary);
148
    }
149
150
    /**
151
     * Specifies the Person that is legally accountable for the CreativeWork.
152
     *
153
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $accountablePerson
154
     *
155
     * @return static
156
     *
157
     * @see http://schema.org/accountablePerson
158
     */
159
    public function accountablePerson($accountablePerson)
160
    {
161
        return $this->setProperty('accountablePerson', $accountablePerson);
162
    }
163
164
    /**
165
     * An additional type for the item, typically used for adding more specific
166
     * types from external vocabularies in microdata syntax. This is a
167
     * relationship between something and a class that the thing is in. In RDFa
168
     * syntax, it is better to use the native RDFa syntax - the 'typeof'
169
     * attribute - for multiple types. Schema.org tools may have only weaker
170
     * understanding of extra types, in particular those defined externally.
171
     *
172
     * @param string|string[] $additionalType
173
     *
174
     * @return static
175
     *
176
     * @see http://schema.org/additionalType
177
     */
178
    public function additionalType($additionalType)
179
    {
180
        return $this->setProperty('additionalType', $additionalType);
181
    }
182
183
    /**
184
     * The overall rating, based on a collection of reviews or ratings, of the
185
     * item.
186
     *
187
     * @param \Spatie\SchemaOrg\Contracts\AggregateRatingContract|\Spatie\SchemaOrg\Contracts\AggregateRatingContract[] $aggregateRating
188
     *
189
     * @return static
190
     *
191
     * @see http://schema.org/aggregateRating
192
     */
193
    public function aggregateRating($aggregateRating)
194
    {
195
        return $this->setProperty('aggregateRating', $aggregateRating);
196
    }
197
198
    /**
199
     * An alias for the item.
200
     *
201
     * @param string|string[] $alternateName
202
     *
203
     * @return static
204
     *
205
     * @see http://schema.org/alternateName
206
     */
207
    public function alternateName($alternateName)
208
    {
209
        return $this->setProperty('alternateName', $alternateName);
210
    }
211
212
    /**
213
     * A secondary title of the CreativeWork.
214
     *
215
     * @param string|string[] $alternativeHeadline
216
     *
217
     * @return static
218
     *
219
     * @see http://schema.org/alternativeHeadline
220
     */
221
    public function alternativeHeadline($alternativeHeadline)
222
    {
223
        return $this->setProperty('alternativeHeadline', $alternativeHeadline);
224
    }
225
226
    /**
227
     * A media object that encodes this CreativeWork. This property is a synonym
228
     * for encoding.
229
     *
230
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $associatedMedia
231
     *
232
     * @return static
233
     *
234
     * @see http://schema.org/associatedMedia
235
     */
236
    public function associatedMedia($associatedMedia)
237
    {
238
        return $this->setProperty('associatedMedia', $associatedMedia);
239
    }
240
241
    /**
242
     * An intended audience, i.e. a group for whom something was created.
243
     *
244
     * @param \Spatie\SchemaOrg\Contracts\AudienceContract|\Spatie\SchemaOrg\Contracts\AudienceContract[] $audience
245
     *
246
     * @return static
247
     *
248
     * @see http://schema.org/audience
249
     */
250
    public function audience($audience)
251
    {
252
        return $this->setProperty('audience', $audience);
253
    }
254
255
    /**
256
     * An embedded audio object.
257
     *
258
     * @param \Spatie\SchemaOrg\Contracts\AudioObjectContract|\Spatie\SchemaOrg\Contracts\AudioObjectContract[]|\Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[] $audio
259
     *
260
     * @return static
261
     *
262
     * @see http://schema.org/audio
263
     */
264
    public function audio($audio)
265
    {
266
        return $this->setProperty('audio', $audio);
267
    }
268
269
    /**
270
     * The author of this content or rating. Please note that author is special
271
     * in that HTML 5 provides a special mechanism for indicating authorship via
272
     * the rel tag. That is equivalent to this and may be used interchangeably.
273
     *
274
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $author
275
     *
276
     * @return static
277
     *
278
     * @see http://schema.org/author
279
     */
280
    public function author($author)
281
    {
282
        return $this->setProperty('author', $author);
283
    }
284
285
    /**
286
     * An award won by or for this item.
287
     *
288
     * @param string|string[] $award
289
     *
290
     * @return static
291
     *
292
     * @see http://schema.org/award
293
     */
294
    public function award($award)
295
    {
296
        return $this->setProperty('award', $award);
297
    }
298
299
    /**
300
     * Awards won by or for this item.
301
     *
302
     * @param string|string[] $awards
303
     *
304
     * @return static
305
     *
306
     * @see http://schema.org/awards
307
     */
308
    public function awards($awards)
309
    {
310
        return $this->setProperty('awards', $awards);
311
    }
312
313
    /**
314
     * A set of links that can help a user understand and navigate a website
315
     * hierarchy.
316
     *
317
     * @param \Spatie\SchemaOrg\Contracts\BreadcrumbListContract|\Spatie\SchemaOrg\Contracts\BreadcrumbListContract[]|string|string[] $breadcrumb
318
     *
319
     * @return static
320
     *
321
     * @see http://schema.org/breadcrumb
322
     */
323
    public function breadcrumb($breadcrumb)
324
    {
325
        return $this->setProperty('breadcrumb', $breadcrumb);
326
    }
327
328
    /**
329
     * Fictional person connected with a creative work.
330
     *
331
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $character
332
     *
333
     * @return static
334
     *
335
     * @see http://schema.org/character
336
     */
337
    public function character($character)
338
    {
339
        return $this->setProperty('character', $character);
340
    }
341
342
    /**
343
     * A citation or reference to another creative work, such as another
344
     * publication, web page, scholarly article, etc.
345
     *
346
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $citation
347
     *
348
     * @return static
349
     *
350
     * @see http://schema.org/citation
351
     */
352
    public function citation($citation)
353
    {
354
        return $this->setProperty('citation', $citation);
355
    }
356
357
    /**
358
     * Comments, typically from users.
359
     *
360
     * @param \Spatie\SchemaOrg\Contracts\CommentContract|\Spatie\SchemaOrg\Contracts\CommentContract[] $comment
361
     *
362
     * @return static
363
     *
364
     * @see http://schema.org/comment
365
     */
366
    public function comment($comment)
367
    {
368
        return $this->setProperty('comment', $comment);
369
    }
370
371
    /**
372
     * The number of comments this CreativeWork (e.g. Article, Question or
373
     * Answer) has received. This is most applicable to works published in Web
374
     * sites with commenting system; additional comments may exist elsewhere.
375
     *
376
     * @param int|int[] $commentCount
377
     *
378
     * @return static
379
     *
380
     * @see http://schema.org/commentCount
381
     */
382
    public function commentCount($commentCount)
383
    {
384
        return $this->setProperty('commentCount', $commentCount);
385
    }
386
387
    /**
388
     * The location depicted or described in the content. For example, the
389
     * location in a photograph or painting.
390
     *
391
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $contentLocation
392
     *
393
     * @return static
394
     *
395
     * @see http://schema.org/contentLocation
396
     */
397
    public function contentLocation($contentLocation)
398
    {
399
        return $this->setProperty('contentLocation', $contentLocation);
400
    }
401
402
    /**
403
     * Official rating of a piece of content&#x2014;for example,'MPAA PG-13'.
404
     *
405
     * @param \Spatie\SchemaOrg\Contracts\RatingContract|\Spatie\SchemaOrg\Contracts\RatingContract[]|string|string[] $contentRating
406
     *
407
     * @return static
408
     *
409
     * @see http://schema.org/contentRating
410
     */
411
    public function contentRating($contentRating)
412
    {
413
        return $this->setProperty('contentRating', $contentRating);
414
    }
415
416
    /**
417
     * A secondary contributor to the CreativeWork or Event.
418
     *
419
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $contributor
420
     *
421
     * @return static
422
     *
423
     * @see http://schema.org/contributor
424
     */
425
    public function contributor($contributor)
426
    {
427
        return $this->setProperty('contributor', $contributor);
428
    }
429
430
    /**
431
     * The party holding the legal copyright to the CreativeWork.
432
     *
433
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $copyrightHolder
434
     *
435
     * @return static
436
     *
437
     * @see http://schema.org/copyrightHolder
438
     */
439
    public function copyrightHolder($copyrightHolder)
440
    {
441
        return $this->setProperty('copyrightHolder', $copyrightHolder);
442
    }
443
444
    /**
445
     * The year during which the claimed copyright for the CreativeWork was
446
     * first asserted.
447
     *
448
     * @param float|float[]|int|int[] $copyrightYear
449
     *
450
     * @return static
451
     *
452
     * @see http://schema.org/copyrightYear
453
     */
454
    public function copyrightYear($copyrightYear)
455
    {
456
        return $this->setProperty('copyrightYear', $copyrightYear);
457
    }
458
459
    /**
460
     * The creator/author of this CreativeWork. This is the same as the Author
461
     * property for CreativeWork.
462
     *
463
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $creator
464
     *
465
     * @return static
466
     *
467
     * @see http://schema.org/creator
468
     */
469
    public function creator($creator)
470
    {
471
        return $this->setProperty('creator', $creator);
472
    }
473
474
    /**
475
     * The date on which the CreativeWork was created or the item was added to a
476
     * DataFeed.
477
     *
478
     * @param \DateTimeInterface|\DateTimeInterface[] $dateCreated
479
     *
480
     * @return static
481
     *
482
     * @see http://schema.org/dateCreated
483
     */
484
    public function dateCreated($dateCreated)
485
    {
486
        return $this->setProperty('dateCreated', $dateCreated);
487
    }
488
489
    /**
490
     * The date on which the CreativeWork was most recently modified or when the
491
     * item's entry was modified within a DataFeed.
492
     *
493
     * @param \DateTimeInterface|\DateTimeInterface[] $dateModified
494
     *
495
     * @return static
496
     *
497
     * @see http://schema.org/dateModified
498
     */
499
    public function dateModified($dateModified)
500
    {
501
        return $this->setProperty('dateModified', $dateModified);
502
    }
503
504
    /**
505
     * Date of first broadcast/publication.
506
     *
507
     * @param \DateTimeInterface|\DateTimeInterface[] $datePublished
508
     *
509
     * @return static
510
     *
511
     * @see http://schema.org/datePublished
512
     */
513
    public function datePublished($datePublished)
514
    {
515
        return $this->setProperty('datePublished', $datePublished);
516
    }
517
518
    /**
519
     * A description of the item.
520
     *
521
     * @param string|string[] $description
522
     *
523
     * @return static
524
     *
525
     * @see http://schema.org/description
526
     */
527
    public function description($description)
528
    {
529
        return $this->setProperty('description', $description);
530
    }
531
532
    /**
533
     * A sub property of description. A short description of the item used to
534
     * disambiguate from other, similar items. Information from other properties
535
     * (in particular, name) may be necessary for the description to be useful
536
     * for disambiguation.
537
     *
538
     * @param string|string[] $disambiguatingDescription
539
     *
540
     * @return static
541
     *
542
     * @see http://schema.org/disambiguatingDescription
543
     */
544
    public function disambiguatingDescription($disambiguatingDescription)
545
    {
546
        return $this->setProperty('disambiguatingDescription', $disambiguatingDescription);
547
    }
548
549
    /**
550
     * A link to the page containing the comments of the CreativeWork.
551
     *
552
     * @param string|string[] $discussionUrl
553
     *
554
     * @return static
555
     *
556
     * @see http://schema.org/discussionUrl
557
     */
558
    public function discussionUrl($discussionUrl)
559
    {
560
        return $this->setProperty('discussionUrl', $discussionUrl);
561
    }
562
563
    /**
564
     * Specifies the Person who edited the CreativeWork.
565
     *
566
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $editor
567
     *
568
     * @return static
569
     *
570
     * @see http://schema.org/editor
571
     */
572
    public function editor($editor)
573
    {
574
        return $this->setProperty('editor', $editor);
575
    }
576
577
    /**
578
     * An alignment to an established educational framework.
579
     *
580
     * @param \Spatie\SchemaOrg\Contracts\AlignmentObjectContract|\Spatie\SchemaOrg\Contracts\AlignmentObjectContract[] $educationalAlignment
581
     *
582
     * @return static
583
     *
584
     * @see http://schema.org/educationalAlignment
585
     */
586
    public function educationalAlignment($educationalAlignment)
587
    {
588
        return $this->setProperty('educationalAlignment', $educationalAlignment);
589
    }
590
591
    /**
592
     * The purpose of a work in the context of education; for example,
593
     * 'assignment', 'group work'.
594
     *
595
     * @param string|string[] $educationalUse
596
     *
597
     * @return static
598
     *
599
     * @see http://schema.org/educationalUse
600
     */
601
    public function educationalUse($educationalUse)
602
    {
603
        return $this->setProperty('educationalUse', $educationalUse);
604
    }
605
606
    /**
607
     * A media object that encodes this CreativeWork. This property is a synonym
608
     * for associatedMedia.
609
     *
610
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encoding
611
     *
612
     * @return static
613
     *
614
     * @see http://schema.org/encoding
615
     */
616
    public function encoding($encoding)
617
    {
618
        return $this->setProperty('encoding', $encoding);
619
    }
620
621
    /**
622
     * Media type typically expressed using a MIME format (see [IANA
623
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml) and
624
     * [MDN
625
     * reference](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types))
626
     * e.g. application/zip for a SoftwareApplication binary, audio/mpeg for
627
     * .mp3 etc.).
628
     * 
629
     * In cases where a [[CreativeWork]] has several media type representations,
630
     * [[encoding]] can be used to indicate each [[MediaObject]] alongside
631
     * particular [[encodingFormat]] information.
632
     * 
633
     * Unregistered or niche encoding and file formats can be indicated instead
634
     * via the most appropriate URL, e.g. defining Web page or a
635
     * Wikipedia/Wikidata entry.
636
     *
637
     * @param string|string[] $encodingFormat
638
     *
639
     * @return static
640
     *
641
     * @see http://schema.org/encodingFormat
642
     */
643
    public function encodingFormat($encodingFormat)
644
    {
645
        return $this->setProperty('encodingFormat', $encodingFormat);
646
    }
647
648
    /**
649
     * A media object that encodes this CreativeWork.
650
     *
651
     * @param \Spatie\SchemaOrg\Contracts\MediaObjectContract|\Spatie\SchemaOrg\Contracts\MediaObjectContract[] $encodings
652
     *
653
     * @return static
654
     *
655
     * @see http://schema.org/encodings
656
     */
657
    public function encodings($encodings)
658
    {
659
        return $this->setProperty('encodings', $encodings);
660
    }
661
662
    /**
663
     * A creative work that this work is an
664
     * example/instance/realization/derivation of.
665
     *
666
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $exampleOfWork
667
     *
668
     * @return static
669
     *
670
     * @see http://schema.org/exampleOfWork
671
     */
672
    public function exampleOfWork($exampleOfWork)
673
    {
674
        return $this->setProperty('exampleOfWork', $exampleOfWork);
675
    }
676
677
    /**
678
     * Date the content expires and is no longer useful or available. For
679
     * example a [[VideoObject]] or [[NewsArticle]] whose availability or
680
     * relevance is time-limited, or a [[ClaimReview]] fact check whose
681
     * publisher wants to indicate that it may no longer be relevant (or helpful
682
     * to highlight) after some date.
683
     *
684
     * @param \DateTimeInterface|\DateTimeInterface[] $expires
685
     *
686
     * @return static
687
     *
688
     * @see http://schema.org/expires
689
     */
690
    public function expires($expires)
691
    {
692
        return $this->setProperty('expires', $expires);
693
    }
694
695
    /**
696
     * Media type, typically MIME format (see [IANA
697
     * site](http://www.iana.org/assignments/media-types/media-types.xhtml)) of
698
     * the content e.g. application/zip of a SoftwareApplication binary. In
699
     * cases where a CreativeWork has several media type representations,
700
     * 'encoding' can be used to indicate each MediaObject alongside particular
701
     * fileFormat information. Unregistered or niche file formats can be
702
     * indicated instead via the most appropriate URL, e.g. defining Web page or
703
     * a Wikipedia entry.
704
     *
705
     * @param string|string[] $fileFormat
706
     *
707
     * @return static
708
     *
709
     * @see http://schema.org/fileFormat
710
     */
711
    public function fileFormat($fileFormat)
712
    {
713
        return $this->setProperty('fileFormat', $fileFormat);
714
    }
715
716
    /**
717
     * A person or organization that supports (sponsors) something through some
718
     * kind of financial contribution.
719
     *
720
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
721
     *
722
     * @return static
723
     *
724
     * @see http://schema.org/funder
725
     */
726
    public function funder($funder)
727
    {
728
        return $this->setProperty('funder', $funder);
729
    }
730
731
    /**
732
     * Genre of the creative work, broadcast channel or group.
733
     *
734
     * @param string|string[] $genre
735
     *
736
     * @return static
737
     *
738
     * @see http://schema.org/genre
739
     */
740
    public function genre($genre)
741
    {
742
        return $this->setProperty('genre', $genre);
743
    }
744
745
    /**
746
     * Indicates an item or CreativeWork that is part of this item, or
747
     * CreativeWork (in some sense).
748
     *
749
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $hasPart
750
     *
751
     * @return static
752
     *
753
     * @see http://schema.org/hasPart
754
     */
755
    public function hasPart($hasPart)
756
    {
757
        return $this->setProperty('hasPart', $hasPart);
758
    }
759
760
    /**
761
     * Headline of the article.
762
     *
763
     * @param string|string[] $headline
764
     *
765
     * @return static
766
     *
767
     * @see http://schema.org/headline
768
     */
769
    public function headline($headline)
770
    {
771
        return $this->setProperty('headline', $headline);
772
    }
773
774
    /**
775
     * The identifier property represents any kind of identifier for any kind of
776
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
777
     * dedicated properties for representing many of these, either as textual
778
     * strings or as URL (URI) links. See [background
779
     * notes](/docs/datamodel.html#identifierBg) for more details.
780
     *
781
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
782
     *
783
     * @return static
784
     *
785
     * @see http://schema.org/identifier
786
     */
787
    public function identifier($identifier)
788
    {
789
        return $this->setProperty('identifier', $identifier);
790
    }
791
792
    /**
793
     * An image of the item. This can be a [[URL]] or a fully described
794
     * [[ImageObject]].
795
     *
796
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
797
     *
798
     * @return static
799
     *
800
     * @see http://schema.org/image
801
     */
802
    public function image($image)
803
    {
804
        return $this->setProperty('image', $image);
805
    }
806
807
    /**
808
     * The language of the content or performance or used in an action. Please
809
     * use one of the language codes from the [IETF BCP 47
810
     * standard](http://tools.ietf.org/html/bcp47). See also
811
     * [[availableLanguage]].
812
     *
813
     * @param \Spatie\SchemaOrg\Contracts\LanguageContract|\Spatie\SchemaOrg\Contracts\LanguageContract[]|string|string[] $inLanguage
814
     *
815
     * @return static
816
     *
817
     * @see http://schema.org/inLanguage
818
     */
819
    public function inLanguage($inLanguage)
820
    {
821
        return $this->setProperty('inLanguage', $inLanguage);
822
    }
823
824
    /**
825
     * The number of interactions for the CreativeWork using the WebSite or
826
     * SoftwareApplication. The most specific child type of InteractionCounter
827
     * should be used.
828
     *
829
     * @param \Spatie\SchemaOrg\Contracts\InteractionCounterContract|\Spatie\SchemaOrg\Contracts\InteractionCounterContract[] $interactionStatistic
830
     *
831
     * @return static
832
     *
833
     * @see http://schema.org/interactionStatistic
834
     */
835
    public function interactionStatistic($interactionStatistic)
836
    {
837
        return $this->setProperty('interactionStatistic', $interactionStatistic);
838
    }
839
840
    /**
841
     * The predominant mode of learning supported by the learning resource.
842
     * Acceptable values are 'active', 'expositive', or 'mixed'.
843
     *
844
     * @param string|string[] $interactivityType
845
     *
846
     * @return static
847
     *
848
     * @see http://schema.org/interactivityType
849
     */
850
    public function interactivityType($interactivityType)
851
    {
852
        return $this->setProperty('interactivityType', $interactivityType);
853
    }
854
855
    /**
856
     * A flag to signal that the item, event, or place is accessible for free.
857
     *
858
     * @param bool|bool[] $isAccessibleForFree
859
     *
860
     * @return static
861
     *
862
     * @see http://schema.org/isAccessibleForFree
863
     */
864
    public function isAccessibleForFree($isAccessibleForFree)
865
    {
866
        return $this->setProperty('isAccessibleForFree', $isAccessibleForFree);
867
    }
868
869
    /**
870
     * A resource from which this work is derived or from which it is a
871
     * modification or adaption.
872
     *
873
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOn
874
     *
875
     * @return static
876
     *
877
     * @see http://schema.org/isBasedOn
878
     */
879
    public function isBasedOn($isBasedOn)
880
    {
881
        return $this->setProperty('isBasedOn', $isBasedOn);
882
    }
883
884
    /**
885
     * A resource that was used in the creation of this resource. This term can
886
     * be repeated for multiple sources. For example,
887
     * http://example.com/great-multiplication-intro.html.
888
     *
889
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $isBasedOnUrl
890
     *
891
     * @return static
892
     *
893
     * @see http://schema.org/isBasedOnUrl
894
     */
895
    public function isBasedOnUrl($isBasedOnUrl)
896
    {
897
        return $this->setProperty('isBasedOnUrl', $isBasedOnUrl);
898
    }
899
900
    /**
901
     * Indicates whether this content is family friendly.
902
     *
903
     * @param bool|bool[] $isFamilyFriendly
904
     *
905
     * @return static
906
     *
907
     * @see http://schema.org/isFamilyFriendly
908
     */
909
    public function isFamilyFriendly($isFamilyFriendly)
910
    {
911
        return $this->setProperty('isFamilyFriendly', $isFamilyFriendly);
912
    }
913
914
    /**
915
     * Indicates an item or CreativeWork that this item, or CreativeWork (in
916
     * some sense), is part of.
917
     *
918
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $isPartOf
919
     *
920
     * @return static
921
     *
922
     * @see http://schema.org/isPartOf
923
     */
924
    public function isPartOf($isPartOf)
925
    {
926
        return $this->setProperty('isPartOf', $isPartOf);
927
    }
928
929
    /**
930
     * Keywords or tags used to describe this content. Multiple entries in a
931
     * keywords list are typically delimited by commas.
932
     *
933
     * @param string|string[] $keywords
934
     *
935
     * @return static
936
     *
937
     * @see http://schema.org/keywords
938
     */
939
    public function keywords($keywords)
940
    {
941
        return $this->setProperty('keywords', $keywords);
942
    }
943
944
    /**
945
     * Date on which the content on this web page was last reviewed for accuracy
946
     * and/or completeness.
947
     *
948
     * @param \DateTimeInterface|\DateTimeInterface[] $lastReviewed
949
     *
950
     * @return static
951
     *
952
     * @see http://schema.org/lastReviewed
953
     */
954
    public function lastReviewed($lastReviewed)
955
    {
956
        return $this->setProperty('lastReviewed', $lastReviewed);
957
    }
958
959
    /**
960
     * The predominant type or kind characterizing the learning resource. For
961
     * example, 'presentation', 'handout'.
962
     *
963
     * @param string|string[] $learningResourceType
964
     *
965
     * @return static
966
     *
967
     * @see http://schema.org/learningResourceType
968
     */
969
    public function learningResourceType($learningResourceType)
970
    {
971
        return $this->setProperty('learningResourceType', $learningResourceType);
972
    }
973
974
    /**
975
     * A license document that applies to this content, typically indicated by
976
     * URL.
977
     *
978
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $license
979
     *
980
     * @return static
981
     *
982
     * @see http://schema.org/license
983
     */
984
    public function license($license)
985
    {
986
        return $this->setProperty('license', $license);
987
    }
988
989
    /**
990
     * The location where the CreativeWork was created, which may not be the
991
     * same as the location depicted in the CreativeWork.
992
     *
993
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $locationCreated
994
     *
995
     * @return static
996
     *
997
     * @see http://schema.org/locationCreated
998
     */
999
    public function locationCreated($locationCreated)
1000
    {
1001
        return $this->setProperty('locationCreated', $locationCreated);
1002
    }
1003
1004
    /**
1005
     * Indicates if this web page element is the main subject of the page.
1006
     *
1007
     * @param \Spatie\SchemaOrg\Contracts\WebPageElementContract|\Spatie\SchemaOrg\Contracts\WebPageElementContract[] $mainContentOfPage
1008
     *
1009
     * @return static
1010
     *
1011
     * @see http://schema.org/mainContentOfPage
1012
     */
1013
    public function mainContentOfPage($mainContentOfPage)
1014
    {
1015
        return $this->setProperty('mainContentOfPage', $mainContentOfPage);
1016
    }
1017
1018
    /**
1019
     * Indicates the primary entity described in some page or other
1020
     * CreativeWork.
1021
     *
1022
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mainEntity
1023
     *
1024
     * @return static
1025
     *
1026
     * @see http://schema.org/mainEntity
1027
     */
1028
    public function mainEntity($mainEntity)
1029
    {
1030
        return $this->setProperty('mainEntity', $mainEntity);
1031
    }
1032
1033
    /**
1034
     * Indicates a page (or other CreativeWork) for which this thing is the main
1035
     * entity being described. See [background
1036
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
1037
     *
1038
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
1039
     *
1040
     * @return static
1041
     *
1042
     * @see http://schema.org/mainEntityOfPage
1043
     */
1044
    public function mainEntityOfPage($mainEntityOfPage)
1045
    {
1046
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
1047
    }
1048
1049
    /**
1050
     * A material that something is made from, e.g. leather, wool, cotton,
1051
     * paper.
1052
     *
1053
     * @param \Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[]|string|string[] $material
1054
     *
1055
     * @return static
1056
     *
1057
     * @see http://schema.org/material
1058
     */
1059
    public function material($material)
1060
    {
1061
        return $this->setProperty('material', $material);
1062
    }
1063
1064
    /**
1065
     * Indicates that the CreativeWork contains a reference to, but is not
1066
     * necessarily about a concept.
1067
     *
1068
     * @param \Spatie\SchemaOrg\Contracts\ThingContract|\Spatie\SchemaOrg\Contracts\ThingContract[] $mentions
1069
     *
1070
     * @return static
1071
     *
1072
     * @see http://schema.org/mentions
1073
     */
1074
    public function mentions($mentions)
1075
    {
1076
        return $this->setProperty('mentions', $mentions);
1077
    }
1078
1079
    /**
1080
     * The name of the item.
1081
     *
1082
     * @param string|string[] $name
1083
     *
1084
     * @return static
1085
     *
1086
     * @see http://schema.org/name
1087
     */
1088
    public function name($name)
1089
    {
1090
        return $this->setProperty('name', $name);
1091
    }
1092
1093
    /**
1094
     * An offer to provide this item&#x2014;for example, an offer to sell a
1095
     * product, rent the DVD of a movie, perform a service, or give away tickets
1096
     * to an event. Use [[businessFunction]] to indicate the kind of transaction
1097
     * offered, i.e. sell, lease, etc. This property can also be used to
1098
     * describe a [[Demand]]. While this property is listed as expected on a
1099
     * number of common types, it can be used in others. In that case, using a
1100
     * second type, such as Product or a subtype of Product, can clarify the
1101
     * nature of the offer.
1102
     *
1103
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[]|\Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $offers
1104
     *
1105
     * @return static
1106
     *
1107
     * @see http://schema.org/offers
1108
     */
1109
    public function offers($offers)
1110
    {
1111
        return $this->setProperty('offers', $offers);
1112
    }
1113
1114
    /**
1115
     * The position of an item in a series or sequence of items.
1116
     *
1117
     * @param int|int[]|string|string[] $position
1118
     *
1119
     * @return static
1120
     *
1121
     * @see http://schema.org/position
1122
     */
1123
    public function position($position)
1124
    {
1125
        return $this->setProperty('position', $position);
1126
    }
1127
1128
    /**
1129
     * Indicates a potential Action, which describes an idealized action in
1130
     * which this thing would play an 'object' role.
1131
     *
1132
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
1133
     *
1134
     * @return static
1135
     *
1136
     * @see http://schema.org/potentialAction
1137
     */
1138
    public function potentialAction($potentialAction)
1139
    {
1140
        return $this->setProperty('potentialAction', $potentialAction);
1141
    }
1142
1143
    /**
1144
     * Indicates the main image on the page.
1145
     *
1146
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[] $primaryImageOfPage
1147
     *
1148
     * @return static
1149
     *
1150
     * @see http://schema.org/primaryImageOfPage
1151
     */
1152
    public function primaryImageOfPage($primaryImageOfPage)
1153
    {
1154
        return $this->setProperty('primaryImageOfPage', $primaryImageOfPage);
1155
    }
1156
1157
    /**
1158
     * The person or organization who produced the work (e.g. music album,
1159
     * movie, tv/radio series etc.).
1160
     *
1161
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $producer
1162
     *
1163
     * @return static
1164
     *
1165
     * @see http://schema.org/producer
1166
     */
1167
    public function producer($producer)
1168
    {
1169
        return $this->setProperty('producer', $producer);
1170
    }
1171
1172
    /**
1173
     * The service provider, service operator, or service performer; the goods
1174
     * producer. Another party (a seller) may offer those services or goods on
1175
     * behalf of the provider. A provider may also serve as the seller.
1176
     *
1177
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $provider
1178
     *
1179
     * @return static
1180
     *
1181
     * @see http://schema.org/provider
1182
     */
1183
    public function provider($provider)
1184
    {
1185
        return $this->setProperty('provider', $provider);
1186
    }
1187
1188
    /**
1189
     * A publication event associated with the item.
1190
     *
1191
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $publication
1192
     *
1193
     * @return static
1194
     *
1195
     * @see http://schema.org/publication
1196
     */
1197
    public function publication($publication)
1198
    {
1199
        return $this->setProperty('publication', $publication);
1200
    }
1201
1202
    /**
1203
     * The publisher of the creative work.
1204
     *
1205
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $publisher
1206
     *
1207
     * @return static
1208
     *
1209
     * @see http://schema.org/publisher
1210
     */
1211
    public function publisher($publisher)
1212
    {
1213
        return $this->setProperty('publisher', $publisher);
1214
    }
1215
1216
    /**
1217
     * The publishingPrinciples property indicates (typically via [[URL]]) a
1218
     * document describing the editorial principles of an [[Organization]] (or
1219
     * individual e.g. a [[Person]] writing a blog) that relate to their
1220
     * activities as a publisher, e.g. ethics or diversity policies. When
1221
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
1222
     * those of the party primarily responsible for the creation of the
1223
     * [[CreativeWork]].
1224
     * 
1225
     * While such policies are most typically expressed in natural language,
1226
     * sometimes related information (e.g. indicating a [[funder]]) can be
1227
     * expressed using schema.org terminology.
1228
     *
1229
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
1230
     *
1231
     * @return static
1232
     *
1233
     * @see http://schema.org/publishingPrinciples
1234
     */
1235
    public function publishingPrinciples($publishingPrinciples)
1236
    {
1237
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
1238
    }
1239
1240
    /**
1241
     * The Event where the CreativeWork was recorded. The CreativeWork may
1242
     * capture all or part of the event.
1243
     *
1244
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $recordedAt
1245
     *
1246
     * @return static
1247
     *
1248
     * @see http://schema.org/recordedAt
1249
     */
1250
    public function recordedAt($recordedAt)
1251
    {
1252
        return $this->setProperty('recordedAt', $recordedAt);
1253
    }
1254
1255
    /**
1256
     * A link related to this web page, for example to other related web pages.
1257
     *
1258
     * @param string|string[] $relatedLink
1259
     *
1260
     * @return static
1261
     *
1262
     * @see http://schema.org/relatedLink
1263
     */
1264
    public function relatedLink($relatedLink)
1265
    {
1266
        return $this->setProperty('relatedLink', $relatedLink);
1267
    }
1268
1269
    /**
1270
     * The place and time the release was issued, expressed as a
1271
     * PublicationEvent.
1272
     *
1273
     * @param \Spatie\SchemaOrg\Contracts\PublicationEventContract|\Spatie\SchemaOrg\Contracts\PublicationEventContract[] $releasedEvent
1274
     *
1275
     * @return static
1276
     *
1277
     * @see http://schema.org/releasedEvent
1278
     */
1279
    public function releasedEvent($releasedEvent)
1280
    {
1281
        return $this->setProperty('releasedEvent', $releasedEvent);
1282
    }
1283
1284
    /**
1285
     * A review of the item.
1286
     *
1287
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
1288
     *
1289
     * @return static
1290
     *
1291
     * @see http://schema.org/review
1292
     */
1293
    public function review($review)
1294
    {
1295
        return $this->setProperty('review', $review);
1296
    }
1297
1298
    /**
1299
     * People or organizations that have reviewed the content on this web page
1300
     * for accuracy and/or completeness.
1301
     *
1302
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $reviewedBy
1303
     *
1304
     * @return static
1305
     *
1306
     * @see http://schema.org/reviewedBy
1307
     */
1308
    public function reviewedBy($reviewedBy)
1309
    {
1310
        return $this->setProperty('reviewedBy', $reviewedBy);
1311
    }
1312
1313
    /**
1314
     * Review of the item.
1315
     *
1316
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
1317
     *
1318
     * @return static
1319
     *
1320
     * @see http://schema.org/reviews
1321
     */
1322
    public function reviews($reviews)
1323
    {
1324
        return $this->setProperty('reviews', $reviews);
1325
    }
1326
1327
    /**
1328
     * URL of a reference Web page that unambiguously indicates the item's
1329
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
1330
     * official website.
1331
     *
1332
     * @param string|string[] $sameAs
1333
     *
1334
     * @return static
1335
     *
1336
     * @see http://schema.org/sameAs
1337
     */
1338
    public function sameAs($sameAs)
1339
    {
1340
        return $this->setProperty('sameAs', $sameAs);
1341
    }
1342
1343
    /**
1344
     * Indicates (by URL or string) a particular version of a schema used in
1345
     * some CreativeWork. For example, a document could declare a schemaVersion
1346
     * using an URL such as http://schema.org/version/2.0/ if precise indication
1347
     * of schema version was required by some application.
1348
     *
1349
     * @param string|string[] $schemaVersion
1350
     *
1351
     * @return static
1352
     *
1353
     * @see http://schema.org/schemaVersion
1354
     */
1355
    public function schemaVersion($schemaVersion)
1356
    {
1357
        return $this->setProperty('schemaVersion', $schemaVersion);
1358
    }
1359
1360
    /**
1361
     * One of the more significant URLs on the page. Typically, these are the
1362
     * non-navigation links that are clicked on the most.
1363
     *
1364
     * @param string|string[] $significantLink
1365
     *
1366
     * @return static
1367
     *
1368
     * @see http://schema.org/significantLink
1369
     */
1370
    public function significantLink($significantLink)
1371
    {
1372
        return $this->setProperty('significantLink', $significantLink);
1373
    }
1374
1375
    /**
1376
     * The most significant URLs on the page. Typically, these are the
1377
     * non-navigation links that are clicked on the most.
1378
     *
1379
     * @param string|string[] $significantLinks
1380
     *
1381
     * @return static
1382
     *
1383
     * @see http://schema.org/significantLinks
1384
     */
1385
    public function significantLinks($significantLinks)
1386
    {
1387
        return $this->setProperty('significantLinks', $significantLinks);
1388
    }
1389
1390
    /**
1391
     * The Organization on whose behalf the creator was working.
1392
     *
1393
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $sourceOrganization
1394
     *
1395
     * @return static
1396
     *
1397
     * @see http://schema.org/sourceOrganization
1398
     */
1399
    public function sourceOrganization($sourceOrganization)
1400
    {
1401
        return $this->setProperty('sourceOrganization', $sourceOrganization);
1402
    }
1403
1404
    /**
1405
     * The "spatial" property can be used in cases when more specific properties
1406
     * (e.g. [[locationCreated]], [[spatialCoverage]], [[contentLocation]]) are
1407
     * not known to be appropriate.
1408
     *
1409
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatial
1410
     *
1411
     * @return static
1412
     *
1413
     * @see http://schema.org/spatial
1414
     */
1415
    public function spatial($spatial)
1416
    {
1417
        return $this->setProperty('spatial', $spatial);
1418
    }
1419
1420
    /**
1421
     * The spatialCoverage of a CreativeWork indicates the place(s) which are
1422
     * the focus of the content. It is a subproperty of
1423
     *       contentLocation intended primarily for more technical and detailed
1424
     * materials. For example with a Dataset, it indicates
1425
     *       areas that the dataset describes: a dataset of New York weather
1426
     * would have spatialCoverage which was the place: the state of New York.
1427
     *
1428
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $spatialCoverage
1429
     *
1430
     * @return static
1431
     *
1432
     * @see http://schema.org/spatialCoverage
1433
     */
1434
    public function spatialCoverage($spatialCoverage)
1435
    {
1436
        return $this->setProperty('spatialCoverage', $spatialCoverage);
1437
    }
1438
1439
    /**
1440
     * Indicates sections of a Web page that are particularly 'speakable' in the
1441
     * sense of being highlighted as being especially appropriate for
1442
     * text-to-speech conversion. Other sections of a page may also be usefully
1443
     * spoken in particular circumstances; the 'speakable' property serves to
1444
     * indicate the parts most likely to be generally useful for speech.
1445
     * 
1446
     * The *speakable* property can be repeated an arbitrary number of times,
1447
     * with three kinds of possible 'content-locator' values:
1448
     * 
1449
     * 1.) *id-value* URL references - uses *id-value* of an element in the page
1450
     * being annotated. The simplest use of *speakable* has (potentially
1451
     * relative) URL values, referencing identified sections of the document
1452
     * concerned.
1453
     * 
1454
     * 2.) CSS Selectors - addresses content in the annotated page, eg. via
1455
     * class attribute. Use the [[cssSelector]] property.
1456
     * 
1457
     * 3.)  XPaths - addresses content via XPaths (assuming an XML view of the
1458
     * content). Use the [[xpath]] property.
1459
     * 
1460
     * 
1461
     * For more sophisticated markup of speakable sections beyond simple ID
1462
     * references, either CSS selectors or XPath expressions to pick out
1463
     * document section(s) as speakable. For this
1464
     * we define a supporting type, [[SpeakableSpecification]]  which is defined
1465
     * to be a possible value of the *speakable* property.
1466
     *
1467
     * @param \Spatie\SchemaOrg\Contracts\SpeakableSpecificationContract|\Spatie\SchemaOrg\Contracts\SpeakableSpecificationContract[]|string|string[] $speakable
1468
     *
1469
     * @return static
1470
     *
1471
     * @see http://schema.org/speakable
1472
     */
1473
    public function speakable($speakable)
1474
    {
1475
        return $this->setProperty('speakable', $speakable);
1476
    }
1477
1478
    /**
1479
     * One of the domain specialities to which this web page's content applies.
1480
     *
1481
     * @param \Spatie\SchemaOrg\Contracts\SpecialtyContract|\Spatie\SchemaOrg\Contracts\SpecialtyContract[] $specialty
1482
     *
1483
     * @return static
1484
     *
1485
     * @see http://schema.org/specialty
1486
     */
1487
    public function specialty($specialty)
1488
    {
1489
        return $this->setProperty('specialty', $specialty);
1490
    }
1491
1492
    /**
1493
     * A person or organization that supports a thing through a pledge, promise,
1494
     * or financial contribution. e.g. a sponsor of a Medical Study or a
1495
     * corporate sponsor of an event.
1496
     *
1497
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
1498
     *
1499
     * @return static
1500
     *
1501
     * @see http://schema.org/sponsor
1502
     */
1503
    public function sponsor($sponsor)
1504
    {
1505
        return $this->setProperty('sponsor', $sponsor);
1506
    }
1507
1508
    /**
1509
     * A CreativeWork or Event about this Thing.
1510
     *
1511
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
1512
     *
1513
     * @return static
1514
     *
1515
     * @see http://schema.org/subjectOf
1516
     */
1517
    public function subjectOf($subjectOf)
1518
    {
1519
        return $this->setProperty('subjectOf', $subjectOf);
1520
    }
1521
1522
    /**
1523
     * The "temporal" property can be used in cases where more specific
1524
     * properties
1525
     * (e.g. [[temporalCoverage]], [[dateCreated]], [[dateModified]],
1526
     * [[datePublished]]) are not known to be appropriate.
1527
     *
1528
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporal
1529
     *
1530
     * @return static
1531
     *
1532
     * @see http://schema.org/temporal
1533
     */
1534
    public function temporal($temporal)
1535
    {
1536
        return $this->setProperty('temporal', $temporal);
1537
    }
1538
1539
    /**
1540
     * The temporalCoverage of a CreativeWork indicates the period that the
1541
     * content applies to, i.e. that it describes, either as a DateTime or as a
1542
     * textual string indicating a time period in [ISO 8601 time interval
1543
     * format](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals). In
1544
     *       the case of a Dataset it will typically indicate the relevant time
1545
     * period in a precise notation (e.g. for a 2011 census dataset, the year
1546
     * 2011 would be written "2011/2012"). Other forms of content e.g.
1547
     * ScholarlyArticle, Book, TVSeries or TVEpisode may indicate their
1548
     * temporalCoverage in broader terms - textually or via well-known URL.
1549
     *       Written works such as books may sometimes have precise temporal
1550
     * coverage too, e.g. a work set in 1939 - 1945 can be indicated in ISO 8601
1551
     * interval format format via "1939/1945".
1552
     * 
1553
     * Open-ended date ranges can be written with ".." in place of the end date.
1554
     * For example, "2015-11/.." indicates a range beginning in November 2015
1555
     * and with no specified final date. This is tentative and might be updated
1556
     * in future when ISO 8601 is officially updated.
1557
     *
1558
     * @param \DateTimeInterface|\DateTimeInterface[]|string|string[] $temporalCoverage
1559
     *
1560
     * @return static
1561
     *
1562
     * @see http://schema.org/temporalCoverage
1563
     */
1564
    public function temporalCoverage($temporalCoverage)
1565
    {
1566
        return $this->setProperty('temporalCoverage', $temporalCoverage);
1567
    }
1568
1569
    /**
1570
     * The textual content of this CreativeWork.
1571
     *
1572
     * @param string|string[] $text
1573
     *
1574
     * @return static
1575
     *
1576
     * @see http://schema.org/text
1577
     */
1578
    public function text($text)
1579
    {
1580
        return $this->setProperty('text', $text);
1581
    }
1582
1583
    /**
1584
     * A thumbnail image relevant to the Thing.
1585
     *
1586
     * @param string|string[] $thumbnailUrl
1587
     *
1588
     * @return static
1589
     *
1590
     * @see http://schema.org/thumbnailUrl
1591
     */
1592
    public function thumbnailUrl($thumbnailUrl)
1593
    {
1594
        return $this->setProperty('thumbnailUrl', $thumbnailUrl);
1595
    }
1596
1597
    /**
1598
     * Approximate or typical time it takes to work with or through this
1599
     * learning resource for the typical intended target audience, e.g. 'PT30M',
1600
     * 'PT1H25M'.
1601
     *
1602
     * @param \Spatie\SchemaOrg\Contracts\DurationContract|\Spatie\SchemaOrg\Contracts\DurationContract[] $timeRequired
1603
     *
1604
     * @return static
1605
     *
1606
     * @see http://schema.org/timeRequired
1607
     */
1608
    public function timeRequired($timeRequired)
1609
    {
1610
        return $this->setProperty('timeRequired', $timeRequired);
1611
    }
1612
1613
    /**
1614
     * Organization or person who adapts a creative work to different languages,
1615
     * regional differences and technical requirements of a target market, or
1616
     * that translates during some event.
1617
     *
1618
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $translator
1619
     *
1620
     * @return static
1621
     *
1622
     * @see http://schema.org/translator
1623
     */
1624
    public function translator($translator)
1625
    {
1626
        return $this->setProperty('translator', $translator);
1627
    }
1628
1629
    /**
1630
     * The typical expected age range, e.g. '7-9', '11-'.
1631
     *
1632
     * @param string|string[] $typicalAgeRange
1633
     *
1634
     * @return static
1635
     *
1636
     * @see http://schema.org/typicalAgeRange
1637
     */
1638
    public function typicalAgeRange($typicalAgeRange)
1639
    {
1640
        return $this->setProperty('typicalAgeRange', $typicalAgeRange);
1641
    }
1642
1643
    /**
1644
     * URL of the item.
1645
     *
1646
     * @param string|string[] $url
1647
     *
1648
     * @return static
1649
     *
1650
     * @see http://schema.org/url
1651
     */
1652
    public function url($url)
1653
    {
1654
        return $this->setProperty('url', $url);
1655
    }
1656
1657
    /**
1658
     * The version of the CreativeWork embodied by a specified resource.
1659
     *
1660
     * @param float|float[]|int|int[]|string|string[] $version
1661
     *
1662
     * @return static
1663
     *
1664
     * @see http://schema.org/version
1665
     */
1666
    public function version($version)
1667
    {
1668
        return $this->setProperty('version', $version);
1669
    }
1670
1671
    /**
1672
     * An embedded video object.
1673
     *
1674
     * @param \Spatie\SchemaOrg\Contracts\ClipContract|\Spatie\SchemaOrg\Contracts\ClipContract[]|\Spatie\SchemaOrg\Contracts\VideoObjectContract|\Spatie\SchemaOrg\Contracts\VideoObjectContract[] $video
1675
     *
1676
     * @return static
1677
     *
1678
     * @see http://schema.org/video
1679
     */
1680
    public function video($video)
1681
    {
1682
        return $this->setProperty('video', $video);
1683
    }
1684
1685
    /**
1686
     * Example/instance/realization/derivation of the concept of this creative
1687
     * work. eg. The paperback edition, first edition, or eBook.
1688
     *
1689
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[] $workExample
1690
     *
1691
     * @return static
1692
     *
1693
     * @see http://schema.org/workExample
1694
     */
1695
    public function workExample($workExample)
1696
    {
1697
        return $this->setProperty('workExample', $workExample);
1698
    }
1699
1700
}
1701