GovernmentOrganization   F
last analyzed

Complexity

Total Complexity 62

Size/Duplication

Total Lines 925
Duplicated Lines 100 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 62
lcom 1
cbo 1
dl 925
loc 925
rs 3.115
c 0
b 0
f 0

62 Methods

Rating   Name   Duplication   Size   Complexity  
A additionalType() 4 4 1
A address() 4 4 1
A aggregateRating() 4 4 1
A alternateName() 4 4 1
A areaServed() 4 4 1
A award() 4 4 1
A awards() 4 4 1
A brand() 4 4 1
A contactPoint() 4 4 1
A contactPoints() 4 4 1
A department() 4 4 1
A description() 4 4 1
A disambiguatingDescription() 4 4 1
A dissolutionDate() 4 4 1
A duns() 4 4 1
A email() 4 4 1
A employee() 4 4 1
A employees() 4 4 1
A event() 4 4 1
A events() 4 4 1
A faxNumber() 4 4 1
A founder() 4 4 1
A founders() 4 4 1
A foundingDate() 4 4 1
A foundingLocation() 4 4 1
A funder() 4 4 1
A globalLocationNumber() 4 4 1
A hasOfferCatalog() 4 4 1
A hasPOS() 4 4 1
A identifier() 4 4 1
A image() 4 4 1
A isicV4() 4 4 1
A legalName() 4 4 1
A leiCode() 4 4 1
A location() 4 4 1
A logo() 4 4 1
A mainEntityOfPage() 4 4 1
A makesOffer() 4 4 1
A member() 4 4 1
A memberOf() 4 4 1
A members() 4 4 1
A naics() 4 4 1
A name() 4 4 1
A numberOfEmployees() 4 4 1
A offeredBy() 4 4 1
A owns() 4 4 1
A parentOrganization() 4 4 1
A potentialAction() 4 4 1
A publishingPrinciples() 4 4 1
A review() 4 4 1
A reviews() 4 4 1
A sameAs() 4 4 1
A seeks() 4 4 1
A serviceArea() 4 4 1
A slogan() 4 4 1
A sponsor() 4 4 1
A subOrganization() 4 4 1
A subjectOf() 4 4 1
A taxID() 4 4 1
A telephone() 4 4 1
A url() 4 4 1
A vatID() 4 4 1

How to fix   Duplicated Code    Complexity   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

Complex Class

 Tip:   Before tackling complexity, make sure that you eliminate any duplication first. This often can reduce the size of classes significantly.

Complex classes like GovernmentOrganization 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 GovernmentOrganization, and based on these observations, apply Extract Interface, too.

1
<?php
2
3
namespace Spatie\SchemaOrg;
4
5
use \Spatie\SchemaOrg\Contracts\GovernmentOrganizationContract;
6
use \Spatie\SchemaOrg\Contracts\OrganizationContract;
7
use \Spatie\SchemaOrg\Contracts\ThingContract;
8
9
/**
10
 * A governmental organization or agency.
11
 *
12
 * @see http://schema.org/GovernmentOrganization
13
 *
14
 */
15 View Code Duplication
class GovernmentOrganization extends BaseType implements GovernmentOrganizationContract, OrganizationContract, ThingContract
0 ignored issues
show
Duplication introduced by
This class seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
16
{
17
    /**
18
     * An additional type for the item, typically used for adding more specific
19
     * types from external vocabularies in microdata syntax. This is a
20
     * relationship between something and a class that the thing is in. In RDFa
21
     * syntax, it is better to use the native RDFa syntax - the 'typeof'
22
     * attribute - for multiple types. Schema.org tools may have only weaker
23
     * understanding of extra types, in particular those defined externally.
24
     *
25
     * @param string|string[] $additionalType
26
     *
27
     * @return static
28
     *
29
     * @see http://schema.org/additionalType
30
     */
31
    public function additionalType($additionalType)
32
    {
33
        return $this->setProperty('additionalType', $additionalType);
34
    }
35
36
    /**
37
     * Physical address of the item.
38
     *
39
     * @param \Spatie\SchemaOrg\Contracts\PostalAddressContract|\Spatie\SchemaOrg\Contracts\PostalAddressContract[]|string|string[] $address
40
     *
41
     * @return static
42
     *
43
     * @see http://schema.org/address
44
     */
45
    public function address($address)
46
    {
47
        return $this->setProperty('address', $address);
48
    }
49
50
    /**
51
     * The overall rating, based on a collection of reviews or ratings, of the
52
     * item.
53
     *
54
     * @param \Spatie\SchemaOrg\Contracts\AggregateRatingContract|\Spatie\SchemaOrg\Contracts\AggregateRatingContract[] $aggregateRating
55
     *
56
     * @return static
57
     *
58
     * @see http://schema.org/aggregateRating
59
     */
60
    public function aggregateRating($aggregateRating)
61
    {
62
        return $this->setProperty('aggregateRating', $aggregateRating);
63
    }
64
65
    /**
66
     * An alias for the item.
67
     *
68
     * @param string|string[] $alternateName
69
     *
70
     * @return static
71
     *
72
     * @see http://schema.org/alternateName
73
     */
74
    public function alternateName($alternateName)
75
    {
76
        return $this->setProperty('alternateName', $alternateName);
77
    }
78
79
    /**
80
     * The geographic area where a service or offered item is provided.
81
     *
82
     * @param \Spatie\SchemaOrg\Contracts\AdministrativeAreaContract|\Spatie\SchemaOrg\Contracts\AdministrativeAreaContract[]|\Spatie\SchemaOrg\Contracts\GeoShapeContract|\Spatie\SchemaOrg\Contracts\GeoShapeContract[]|\Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[]|string|string[] $areaServed
83
     *
84
     * @return static
85
     *
86
     * @see http://schema.org/areaServed
87
     */
88
    public function areaServed($areaServed)
89
    {
90
        return $this->setProperty('areaServed', $areaServed);
91
    }
92
93
    /**
94
     * An award won by or for this item.
95
     *
96
     * @param string|string[] $award
97
     *
98
     * @return static
99
     *
100
     * @see http://schema.org/award
101
     */
102
    public function award($award)
103
    {
104
        return $this->setProperty('award', $award);
105
    }
106
107
    /**
108
     * Awards won by or for this item.
109
     *
110
     * @param string|string[] $awards
111
     *
112
     * @return static
113
     *
114
     * @see http://schema.org/awards
115
     */
116
    public function awards($awards)
117
    {
118
        return $this->setProperty('awards', $awards);
119
    }
120
121
    /**
122
     * The brand(s) associated with a product or service, or the brand(s)
123
     * maintained by an organization or business person.
124
     *
125
     * @param \Spatie\SchemaOrg\Contracts\BrandContract|\Spatie\SchemaOrg\Contracts\BrandContract[]|\Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $brand
126
     *
127
     * @return static
128
     *
129
     * @see http://schema.org/brand
130
     */
131
    public function brand($brand)
132
    {
133
        return $this->setProperty('brand', $brand);
134
    }
135
136
    /**
137
     * A contact point for a person or organization.
138
     *
139
     * @param \Spatie\SchemaOrg\Contracts\ContactPointContract|\Spatie\SchemaOrg\Contracts\ContactPointContract[] $contactPoint
140
     *
141
     * @return static
142
     *
143
     * @see http://schema.org/contactPoint
144
     */
145
    public function contactPoint($contactPoint)
146
    {
147
        return $this->setProperty('contactPoint', $contactPoint);
148
    }
149
150
    /**
151
     * A contact point for a person or organization.
152
     *
153
     * @param \Spatie\SchemaOrg\Contracts\ContactPointContract|\Spatie\SchemaOrg\Contracts\ContactPointContract[] $contactPoints
154
     *
155
     * @return static
156
     *
157
     * @see http://schema.org/contactPoints
158
     */
159
    public function contactPoints($contactPoints)
160
    {
161
        return $this->setProperty('contactPoints', $contactPoints);
162
    }
163
164
    /**
165
     * A relationship between an organization and a department of that
166
     * organization, also described as an organization (allowing different urls,
167
     * logos, opening hours). For example: a store with a pharmacy, or a bakery
168
     * with a cafe.
169
     *
170
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $department
171
     *
172
     * @return static
173
     *
174
     * @see http://schema.org/department
175
     */
176
    public function department($department)
177
    {
178
        return $this->setProperty('department', $department);
179
    }
180
181
    /**
182
     * A description of the item.
183
     *
184
     * @param string|string[] $description
185
     *
186
     * @return static
187
     *
188
     * @see http://schema.org/description
189
     */
190
    public function description($description)
191
    {
192
        return $this->setProperty('description', $description);
193
    }
194
195
    /**
196
     * A sub property of description. A short description of the item used to
197
     * disambiguate from other, similar items. Information from other properties
198
     * (in particular, name) may be necessary for the description to be useful
199
     * for disambiguation.
200
     *
201
     * @param string|string[] $disambiguatingDescription
202
     *
203
     * @return static
204
     *
205
     * @see http://schema.org/disambiguatingDescription
206
     */
207
    public function disambiguatingDescription($disambiguatingDescription)
208
    {
209
        return $this->setProperty('disambiguatingDescription', $disambiguatingDescription);
210
    }
211
212
    /**
213
     * The date that this organization was dissolved.
214
     *
215
     * @param \DateTimeInterface|\DateTimeInterface[] $dissolutionDate
216
     *
217
     * @return static
218
     *
219
     * @see http://schema.org/dissolutionDate
220
     */
221
    public function dissolutionDate($dissolutionDate)
222
    {
223
        return $this->setProperty('dissolutionDate', $dissolutionDate);
224
    }
225
226
    /**
227
     * The Dun & Bradstreet DUNS number for identifying an organization or
228
     * business person.
229
     *
230
     * @param string|string[] $duns
231
     *
232
     * @return static
233
     *
234
     * @see http://schema.org/duns
235
     */
236
    public function duns($duns)
237
    {
238
        return $this->setProperty('duns', $duns);
239
    }
240
241
    /**
242
     * Email address.
243
     *
244
     * @param string|string[] $email
245
     *
246
     * @return static
247
     *
248
     * @see http://schema.org/email
249
     */
250
    public function email($email)
251
    {
252
        return $this->setProperty('email', $email);
253
    }
254
255
    /**
256
     * Someone working for this organization.
257
     *
258
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $employee
259
     *
260
     * @return static
261
     *
262
     * @see http://schema.org/employee
263
     */
264
    public function employee($employee)
265
    {
266
        return $this->setProperty('employee', $employee);
267
    }
268
269
    /**
270
     * People working for this organization.
271
     *
272
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $employees
273
     *
274
     * @return static
275
     *
276
     * @see http://schema.org/employees
277
     */
278
    public function employees($employees)
279
    {
280
        return $this->setProperty('employees', $employees);
281
    }
282
283
    /**
284
     * Upcoming or past event associated with this place, organization, or
285
     * action.
286
     *
287
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $event
288
     *
289
     * @return static
290
     *
291
     * @see http://schema.org/event
292
     */
293
    public function event($event)
294
    {
295
        return $this->setProperty('event', $event);
296
    }
297
298
    /**
299
     * Upcoming or past events associated with this place or organization.
300
     *
301
     * @param \Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $events
302
     *
303
     * @return static
304
     *
305
     * @see http://schema.org/events
306
     */
307
    public function events($events)
308
    {
309
        return $this->setProperty('events', $events);
310
    }
311
312
    /**
313
     * The fax number.
314
     *
315
     * @param string|string[] $faxNumber
316
     *
317
     * @return static
318
     *
319
     * @see http://schema.org/faxNumber
320
     */
321
    public function faxNumber($faxNumber)
322
    {
323
        return $this->setProperty('faxNumber', $faxNumber);
324
    }
325
326
    /**
327
     * A person who founded this organization.
328
     *
329
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $founder
330
     *
331
     * @return static
332
     *
333
     * @see http://schema.org/founder
334
     */
335
    public function founder($founder)
336
    {
337
        return $this->setProperty('founder', $founder);
338
    }
339
340
    /**
341
     * A person who founded this organization.
342
     *
343
     * @param \Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $founders
344
     *
345
     * @return static
346
     *
347
     * @see http://schema.org/founders
348
     */
349
    public function founders($founders)
350
    {
351
        return $this->setProperty('founders', $founders);
352
    }
353
354
    /**
355
     * The date that this organization was founded.
356
     *
357
     * @param \DateTimeInterface|\DateTimeInterface[] $foundingDate
358
     *
359
     * @return static
360
     *
361
     * @see http://schema.org/foundingDate
362
     */
363
    public function foundingDate($foundingDate)
364
    {
365
        return $this->setProperty('foundingDate', $foundingDate);
366
    }
367
368
    /**
369
     * The place where the Organization was founded.
370
     *
371
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $foundingLocation
372
     *
373
     * @return static
374
     *
375
     * @see http://schema.org/foundingLocation
376
     */
377
    public function foundingLocation($foundingLocation)
378
    {
379
        return $this->setProperty('foundingLocation', $foundingLocation);
380
    }
381
382
    /**
383
     * A person or organization that supports (sponsors) something through some
384
     * kind of financial contribution.
385
     *
386
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $funder
387
     *
388
     * @return static
389
     *
390
     * @see http://schema.org/funder
391
     */
392
    public function funder($funder)
393
    {
394
        return $this->setProperty('funder', $funder);
395
    }
396
397
    /**
398
     * The [Global Location Number](http://www.gs1.org/gln) (GLN, sometimes also
399
     * referred to as International Location Number or ILN) of the respective
400
     * organization, person, or place. The GLN is a 13-digit number used to
401
     * identify parties and physical locations.
402
     *
403
     * @param string|string[] $globalLocationNumber
404
     *
405
     * @return static
406
     *
407
     * @see http://schema.org/globalLocationNumber
408
     */
409
    public function globalLocationNumber($globalLocationNumber)
410
    {
411
        return $this->setProperty('globalLocationNumber', $globalLocationNumber);
412
    }
413
414
    /**
415
     * Indicates an OfferCatalog listing for this Organization, Person, or
416
     * Service.
417
     *
418
     * @param \Spatie\SchemaOrg\Contracts\OfferCatalogContract|\Spatie\SchemaOrg\Contracts\OfferCatalogContract[] $hasOfferCatalog
419
     *
420
     * @return static
421
     *
422
     * @see http://schema.org/hasOfferCatalog
423
     */
424
    public function hasOfferCatalog($hasOfferCatalog)
425
    {
426
        return $this->setProperty('hasOfferCatalog', $hasOfferCatalog);
427
    }
428
429
    /**
430
     * Points-of-Sales operated by the organization or person.
431
     *
432
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $hasPOS
433
     *
434
     * @return static
435
     *
436
     * @see http://schema.org/hasPOS
437
     */
438
    public function hasPOS($hasPOS)
439
    {
440
        return $this->setProperty('hasPOS', $hasPOS);
441
    }
442
443
    /**
444
     * The identifier property represents any kind of identifier for any kind of
445
     * [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides
446
     * dedicated properties for representing many of these, either as textual
447
     * strings or as URL (URI) links. See [background
448
     * notes](/docs/datamodel.html#identifierBg) for more details.
449
     *
450
     * @param \Spatie\SchemaOrg\Contracts\PropertyValueContract|\Spatie\SchemaOrg\Contracts\PropertyValueContract[]|string|string[] $identifier
451
     *
452
     * @return static
453
     *
454
     * @see http://schema.org/identifier
455
     */
456
    public function identifier($identifier)
457
    {
458
        return $this->setProperty('identifier', $identifier);
459
    }
460
461
    /**
462
     * An image of the item. This can be a [[URL]] or a fully described
463
     * [[ImageObject]].
464
     *
465
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $image
466
     *
467
     * @return static
468
     *
469
     * @see http://schema.org/image
470
     */
471
    public function image($image)
472
    {
473
        return $this->setProperty('image', $image);
474
    }
475
476
    /**
477
     * The International Standard of Industrial Classification of All Economic
478
     * Activities (ISIC), Revision 4 code for a particular organization,
479
     * business person, or place.
480
     *
481
     * @param string|string[] $isicV4
482
     *
483
     * @return static
484
     *
485
     * @see http://schema.org/isicV4
486
     */
487
    public function isicV4($isicV4)
488
    {
489
        return $this->setProperty('isicV4', $isicV4);
490
    }
491
492
    /**
493
     * The official name of the organization, e.g. the registered company name.
494
     *
495
     * @param string|string[] $legalName
496
     *
497
     * @return static
498
     *
499
     * @see http://schema.org/legalName
500
     */
501
    public function legalName($legalName)
502
    {
503
        return $this->setProperty('legalName', $legalName);
504
    }
505
506
    /**
507
     * An organization identifier that uniquely identifies a legal entity as
508
     * defined in ISO 17442.
509
     *
510
     * @param string|string[] $leiCode
511
     *
512
     * @return static
513
     *
514
     * @see http://schema.org/leiCode
515
     */
516
    public function leiCode($leiCode)
517
    {
518
        return $this->setProperty('leiCode', $leiCode);
519
    }
520
521
    /**
522
     * The location of for example where the event is happening, an organization
523
     * is located, or where an action takes place.
524
     *
525
     * @param \Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[]|\Spatie\SchemaOrg\Contracts\PostalAddressContract|\Spatie\SchemaOrg\Contracts\PostalAddressContract[]|string|string[] $location
526
     *
527
     * @return static
528
     *
529
     * @see http://schema.org/location
530
     */
531
    public function location($location)
532
    {
533
        return $this->setProperty('location', $location);
534
    }
535
536
    /**
537
     * An associated logo.
538
     *
539
     * @param \Spatie\SchemaOrg\Contracts\ImageObjectContract|\Spatie\SchemaOrg\Contracts\ImageObjectContract[]|string|string[] $logo
540
     *
541
     * @return static
542
     *
543
     * @see http://schema.org/logo
544
     */
545
    public function logo($logo)
546
    {
547
        return $this->setProperty('logo', $logo);
548
    }
549
550
    /**
551
     * Indicates a page (or other CreativeWork) for which this thing is the main
552
     * entity being described. See [background
553
     * notes](/docs/datamodel.html#mainEntityBackground) for details.
554
     *
555
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $mainEntityOfPage
556
     *
557
     * @return static
558
     *
559
     * @see http://schema.org/mainEntityOfPage
560
     */
561
    public function mainEntityOfPage($mainEntityOfPage)
562
    {
563
        return $this->setProperty('mainEntityOfPage', $mainEntityOfPage);
564
    }
565
566
    /**
567
     * A pointer to products or services offered by the organization or person.
568
     *
569
     * @param \Spatie\SchemaOrg\Contracts\OfferContract|\Spatie\SchemaOrg\Contracts\OfferContract[] $makesOffer
570
     *
571
     * @return static
572
     *
573
     * @see http://schema.org/makesOffer
574
     */
575
    public function makesOffer($makesOffer)
576
    {
577
        return $this->setProperty('makesOffer', $makesOffer);
578
    }
579
580
    /**
581
     * A member of an Organization or a ProgramMembership. Organizations can be
582
     * members of organizations; ProgramMembership is typically for individuals.
583
     *
584
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $member
585
     *
586
     * @return static
587
     *
588
     * @see http://schema.org/member
589
     */
590
    public function member($member)
591
    {
592
        return $this->setProperty('member', $member);
593
    }
594
595
    /**
596
     * An Organization (or ProgramMembership) to which this Person or
597
     * Organization belongs.
598
     *
599
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\ProgramMembershipContract|\Spatie\SchemaOrg\Contracts\ProgramMembershipContract[] $memberOf
600
     *
601
     * @return static
602
     *
603
     * @see http://schema.org/memberOf
604
     */
605
    public function memberOf($memberOf)
606
    {
607
        return $this->setProperty('memberOf', $memberOf);
608
    }
609
610
    /**
611
     * A member of this organization.
612
     *
613
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $members
614
     *
615
     * @return static
616
     *
617
     * @see http://schema.org/members
618
     */
619
    public function members($members)
620
    {
621
        return $this->setProperty('members', $members);
622
    }
623
624
    /**
625
     * The North American Industry Classification System (NAICS) code for a
626
     * particular organization or business person.
627
     *
628
     * @param string|string[] $naics
629
     *
630
     * @return static
631
     *
632
     * @see http://schema.org/naics
633
     */
634
    public function naics($naics)
635
    {
636
        return $this->setProperty('naics', $naics);
637
    }
638
639
    /**
640
     * The name of the item.
641
     *
642
     * @param string|string[] $name
643
     *
644
     * @return static
645
     *
646
     * @see http://schema.org/name
647
     */
648
    public function name($name)
649
    {
650
        return $this->setProperty('name', $name);
651
    }
652
653
    /**
654
     * The number of employees in an organization e.g. business.
655
     *
656
     * @param \Spatie\SchemaOrg\Contracts\QuantitativeValueContract|\Spatie\SchemaOrg\Contracts\QuantitativeValueContract[] $numberOfEmployees
657
     *
658
     * @return static
659
     *
660
     * @see http://schema.org/numberOfEmployees
661
     */
662
    public function numberOfEmployees($numberOfEmployees)
663
    {
664
        return $this->setProperty('numberOfEmployees', $numberOfEmployees);
665
    }
666
667
    /**
668
     * A pointer to the organization or person making the offer.
669
     *
670
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $offeredBy
671
     *
672
     * @return static
673
     *
674
     * @see http://schema.org/offeredBy
675
     */
676
    public function offeredBy($offeredBy)
677
    {
678
        return $this->setProperty('offeredBy', $offeredBy);
679
    }
680
681
    /**
682
     * Products owned by the organization or person.
683
     *
684
     * @param \Spatie\SchemaOrg\Contracts\OwnershipInfoContract|\Spatie\SchemaOrg\Contracts\OwnershipInfoContract[]|\Spatie\SchemaOrg\Contracts\ProductContract|\Spatie\SchemaOrg\Contracts\ProductContract[] $owns
685
     *
686
     * @return static
687
     *
688
     * @see http://schema.org/owns
689
     */
690
    public function owns($owns)
691
    {
692
        return $this->setProperty('owns', $owns);
693
    }
694
695
    /**
696
     * The larger organization that this organization is a [[subOrganization]]
697
     * of, if any.
698
     *
699
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $parentOrganization
700
     *
701
     * @return static
702
     *
703
     * @see http://schema.org/parentOrganization
704
     */
705
    public function parentOrganization($parentOrganization)
706
    {
707
        return $this->setProperty('parentOrganization', $parentOrganization);
708
    }
709
710
    /**
711
     * Indicates a potential Action, which describes an idealized action in
712
     * which this thing would play an 'object' role.
713
     *
714
     * @param \Spatie\SchemaOrg\Contracts\ActionContract|\Spatie\SchemaOrg\Contracts\ActionContract[] $potentialAction
715
     *
716
     * @return static
717
     *
718
     * @see http://schema.org/potentialAction
719
     */
720
    public function potentialAction($potentialAction)
721
    {
722
        return $this->setProperty('potentialAction', $potentialAction);
723
    }
724
725
    /**
726
     * The publishingPrinciples property indicates (typically via [[URL]]) a
727
     * document describing the editorial principles of an [[Organization]] (or
728
     * individual e.g. a [[Person]] writing a blog) that relate to their
729
     * activities as a publisher, e.g. ethics or diversity policies. When
730
     * applied to a [[CreativeWork]] (e.g. [[NewsArticle]]) the principles are
731
     * those of the party primarily responsible for the creation of the
732
     * [[CreativeWork]].
733
     * 
734
     * While such policies are most typically expressed in natural language,
735
     * sometimes related information (e.g. indicating a [[funder]]) can be
736
     * expressed using schema.org terminology.
737
     *
738
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|string|string[] $publishingPrinciples
739
     *
740
     * @return static
741
     *
742
     * @see http://schema.org/publishingPrinciples
743
     */
744
    public function publishingPrinciples($publishingPrinciples)
745
    {
746
        return $this->setProperty('publishingPrinciples', $publishingPrinciples);
747
    }
748
749
    /**
750
     * A review of the item.
751
     *
752
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $review
753
     *
754
     * @return static
755
     *
756
     * @see http://schema.org/review
757
     */
758
    public function review($review)
759
    {
760
        return $this->setProperty('review', $review);
761
    }
762
763
    /**
764
     * Review of the item.
765
     *
766
     * @param \Spatie\SchemaOrg\Contracts\ReviewContract|\Spatie\SchemaOrg\Contracts\ReviewContract[] $reviews
767
     *
768
     * @return static
769
     *
770
     * @see http://schema.org/reviews
771
     */
772
    public function reviews($reviews)
773
    {
774
        return $this->setProperty('reviews', $reviews);
775
    }
776
777
    /**
778
     * URL of a reference Web page that unambiguously indicates the item's
779
     * identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or
780
     * official website.
781
     *
782
     * @param string|string[] $sameAs
783
     *
784
     * @return static
785
     *
786
     * @see http://schema.org/sameAs
787
     */
788
    public function sameAs($sameAs)
789
    {
790
        return $this->setProperty('sameAs', $sameAs);
791
    }
792
793
    /**
794
     * A pointer to products or services sought by the organization or person
795
     * (demand).
796
     *
797
     * @param \Spatie\SchemaOrg\Contracts\DemandContract|\Spatie\SchemaOrg\Contracts\DemandContract[] $seeks
798
     *
799
     * @return static
800
     *
801
     * @see http://schema.org/seeks
802
     */
803
    public function seeks($seeks)
804
    {
805
        return $this->setProperty('seeks', $seeks);
806
    }
807
808
    /**
809
     * The geographic area where the service is provided.
810
     *
811
     * @param \Spatie\SchemaOrg\Contracts\AdministrativeAreaContract|\Spatie\SchemaOrg\Contracts\AdministrativeAreaContract[]|\Spatie\SchemaOrg\Contracts\GeoShapeContract|\Spatie\SchemaOrg\Contracts\GeoShapeContract[]|\Spatie\SchemaOrg\Contracts\PlaceContract|\Spatie\SchemaOrg\Contracts\PlaceContract[] $serviceArea
812
     *
813
     * @return static
814
     *
815
     * @see http://schema.org/serviceArea
816
     */
817
    public function serviceArea($serviceArea)
818
    {
819
        return $this->setProperty('serviceArea', $serviceArea);
820
    }
821
822
    /**
823
     * A slogan or motto associated with the item.
824
     *
825
     * @param string|string[] $slogan
826
     *
827
     * @return static
828
     *
829
     * @see http://schema.org/slogan
830
     */
831
    public function slogan($slogan)
832
    {
833
        return $this->setProperty('slogan', $slogan);
834
    }
835
836
    /**
837
     * A person or organization that supports a thing through a pledge, promise,
838
     * or financial contribution. e.g. a sponsor of a Medical Study or a
839
     * corporate sponsor of an event.
840
     *
841
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[]|\Spatie\SchemaOrg\Contracts\PersonContract|\Spatie\SchemaOrg\Contracts\PersonContract[] $sponsor
842
     *
843
     * @return static
844
     *
845
     * @see http://schema.org/sponsor
846
     */
847
    public function sponsor($sponsor)
848
    {
849
        return $this->setProperty('sponsor', $sponsor);
850
    }
851
852
    /**
853
     * A relationship between two organizations where the first includes the
854
     * second, e.g., as a subsidiary. See also: the more specific 'department'
855
     * property.
856
     *
857
     * @param \Spatie\SchemaOrg\Contracts\OrganizationContract|\Spatie\SchemaOrg\Contracts\OrganizationContract[] $subOrganization
858
     *
859
     * @return static
860
     *
861
     * @see http://schema.org/subOrganization
862
     */
863
    public function subOrganization($subOrganization)
864
    {
865
        return $this->setProperty('subOrganization', $subOrganization);
866
    }
867
868
    /**
869
     * A CreativeWork or Event about this Thing.
870
     *
871
     * @param \Spatie\SchemaOrg\Contracts\CreativeWorkContract|\Spatie\SchemaOrg\Contracts\CreativeWorkContract[]|\Spatie\SchemaOrg\Contracts\EventContract|\Spatie\SchemaOrg\Contracts\EventContract[] $subjectOf
872
     *
873
     * @return static
874
     *
875
     * @see http://schema.org/subjectOf
876
     */
877
    public function subjectOf($subjectOf)
878
    {
879
        return $this->setProperty('subjectOf', $subjectOf);
880
    }
881
882
    /**
883
     * The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US
884
     * or the CIF/NIF in Spain.
885
     *
886
     * @param string|string[] $taxID
887
     *
888
     * @return static
889
     *
890
     * @see http://schema.org/taxID
891
     */
892
    public function taxID($taxID)
893
    {
894
        return $this->setProperty('taxID', $taxID);
895
    }
896
897
    /**
898
     * The telephone number.
899
     *
900
     * @param string|string[] $telephone
901
     *
902
     * @return static
903
     *
904
     * @see http://schema.org/telephone
905
     */
906
    public function telephone($telephone)
907
    {
908
        return $this->setProperty('telephone', $telephone);
909
    }
910
911
    /**
912
     * URL of the item.
913
     *
914
     * @param string|string[] $url
915
     *
916
     * @return static
917
     *
918
     * @see http://schema.org/url
919
     */
920
    public function url($url)
921
    {
922
        return $this->setProperty('url', $url);
923
    }
924
925
    /**
926
     * The Value-added Tax ID of the organization or person.
927
     *
928
     * @param string|string[] $vatID
929
     *
930
     * @return static
931
     *
932
     * @see http://schema.org/vatID
933
     */
934
    public function vatID($vatID)
935
    {
936
        return $this->setProperty('vatID', $vatID);
937
    }
938
939
}
940