Occupation   A
last analyzed

Complexity

Total Complexity 16

Size/Duplication

Total Lines 273
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 102
dl 0
loc 273
ccs 93
cts 93
cp 1
rs 10
c 0
b 0
f 0
wmc 16

16 Methods

Rating   Name   Duplication   Size   Complexity  
A GetEstimatedSalary() 0 12 1
A GetEducationRequirements() 0 12 1
A SetEducationRequirements() 0 6 1
A GetExperienceRequirements() 0 12 1
A SetQualifications() 0 6 1
A GetOccupationLocation() 0 12 1
A SetOccupationLocation() 0 5 1
A SetEstimatedSalary() 0 5 1
A SetSkills() 0 6 1
A GetOccupationalCategory() 0 12 1
A SetExperienceRequirements() 0 6 1
A GetResponsibilities() 0 12 1
A GetQualifications() 0 12 1
A GetSkills() 0 12 1
A SetResponsibilities() 0 6 1
A SetOccupationalCategory() 0 6 1
1
<?php
2
/**
3
* @author SignpostMarv
4
*/
5
declare(strict_types=1);
6
7
namespace SignpostMarv\DaftObject\SchemaOrg\Intangible;
8
9
use SignpostMarv\DaftObject\SchemaOrg\Intangible as Base;
10
use SignpostMarv\DaftObject\SchemaOrg\Place\AdministrativeArea;
11
use SignpostMarv\DaftObject\SchemaOrg\Thing;
12
use SignpostMarv\DaftObject\SchemaOrg\TypeUtilities;
13
14
/**
15
* @property array<int, string> $educationRequirements
16
* @property array<int, int|float|StructuredValue\MonetaryAmount|StructuredValue\QuantitativeValue\MonetaryAmountDistribution|StructuredValue\PriceSpecification> $estimatedSalary
17
* @property array<int, string> $experienceRequirements
18
* @property array<int, AdministrativeArea> $occupationLocation
19
* @property array<int, string> $occupationalCategory
20
* @property array<int, string> $qualifications
21
* @property array<int, string> $responsibilities
22
* @property array<int, string> $skills
23
*/
24
class Occupation extends Base
25
{
26
    const SCHEMA_ORG_TYPE = 'Occupation';
27
28
    const PROPERTIES = [
29
        'educationRequirements',
30
        'estimatedSalary',
31
        'experienceRequirements',
32
        'occupationLocation',
33
        'occupationalCategory',
34
        'qualifications',
35
        'responsibilities',
36
        'skills',
37
    ];
38
39
    const PROPERTIES_WITH_MULTI_TYPED_ARRAYS = [
40
        'educationRequirements' => [
41
            'string',
42
        ],
43
        'estimatedSalary' => [
44
            'integer',
45
            'double',
46
            StructuredValue\MonetaryAmount::class,
47
            StructuredValue\QuantitativeValue\MonetaryAmountDistribution::class,
48
            StructuredValue\PriceSpecification::class,
49
        ],
50
        'experienceRequirements' => [
51
            'string',
52
        ],
53
        'occupationLocation' => [
54
            AdministrativeArea::class,
55
        ],
56
        'occupationalCategory' => [
57
            'string',
58
        ],
59
        'qualifications' => [
60
            'string',
61
        ],
62
        'responsibilities' => [
63
            'string',
64
        ],
65
        'skills' => [
66
            'string',
67
        ],
68
    ];
69
70
    /**
71
    * @return array<int, string>
72
    */
73 4
    public function GetEducationRequirements() : array
74
    {
75
        /**
76
        * @var array<int, string>
77
        */
78 4
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
79 4
            'educationRequirements',
80 4
            $this->RetrievePropertyValueFromData('educationRequirements'),
81 4
            static::class
82
        );
83
84 4
        return $out;
85
    }
86
87
    /**
88
    * @param array<int, string> $value
89
    */
90 1
    public function SetEducationRequirements(array $value) : void
91
    {
92 1
        $this->NudgePropertyValue(
93 1
            'educationRequirements',
94 1
            $value,
95 1
            Thing::BOOL_DEFAULT_AUTOTRIMSTRINGS
96
        );
97 1
    }
98
99
    /**
100
    * @return array<int, int|float|StructuredValue\MonetaryAmount|StructuredValue\QuantitativeValue\MonetaryAmountDistribution|StructuredValue\PriceSpecification>
101
    */
102 4
    public function GetEstimatedSalary() : array
103
    {
104
        /**
105
        * @var array<int, int|float|StructuredValue\MonetaryAmount|StructuredValue\QuantitativeValue\MonetaryAmountDistribution|StructuredValue\PriceSpecification>
106
        */
107 4
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
108 4
            'estimatedSalary',
109 4
            $this->RetrievePropertyValueFromData('estimatedSalary'),
110 4
            static::class
111
        );
112
113 4
        return $out;
114
    }
115
116
    /**
117
    * @param array<int, int|float|StructuredValue\MonetaryAmount|StructuredValue\QuantitativeValue\MonetaryAmountDistribution|StructuredValue\PriceSpecification> $value
118
    */
119 1
    public function SetEstimatedSalary(array $value) : void
120
    {
121 1
        $this->NudgePropertyValue(
122 1
            'estimatedSalary',
123 1
            $value
124
        );
125 1
    }
126
127
    /**
128
    * @return array<int, string>
129
    */
130 4
    public function GetExperienceRequirements() : array
131
    {
132
        /**
133
        * @var array<int, string>
134
        */
135 4
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
136 4
            'experienceRequirements',
137 4
            $this->RetrievePropertyValueFromData('experienceRequirements'),
138 4
            static::class
139
        );
140
141 4
        return $out;
142
    }
143
144
    /**
145
    * @param array<int, string> $value
146
    */
147 1
    public function SetExperienceRequirements(array $value) : void
148
    {
149 1
        $this->NudgePropertyValue(
150 1
            'experienceRequirements',
151 1
            $value,
152 1
            Thing::BOOL_DEFAULT_AUTOTRIMSTRINGS
153
        );
154 1
    }
155
156
    /**
157
    * @return array<int, AdministrativeArea>
158
    */
159 4
    public function GetOccupationLocation() : array
160
    {
161
        /**
162
        * @var array<int, AdministrativeArea>
163
        */
164 4
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
165 4
            'occupationLocation',
166 4
            $this->RetrievePropertyValueFromData('occupationLocation'),
167 4
            static::class
168
        );
169
170 4
        return $out;
171
    }
172
173
    /**
174
    * @param array<int, AdministrativeArea> $value
175
    */
176 1
    public function SetOccupationLocation(array $value) : void
177
    {
178 1
        $this->NudgePropertyValue(
179 1
            'occupationLocation',
180 1
            $value
181
        );
182 1
    }
183
184
    /**
185
    * @return array<int, string>
186
    */
187 4
    public function GetOccupationalCategory() : array
188
    {
189
        /**
190
        * @var array<int, string>
191
        */
192 4
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
193 4
            'occupationalCategory',
194 4
            $this->RetrievePropertyValueFromData('occupationalCategory'),
195 4
            static::class
196
        );
197
198 4
        return $out;
199
    }
200
201
    /**
202
    * @param array<int, string> $value
203
    */
204 1
    public function SetOccupationalCategory(array $value) : void
205
    {
206 1
        $this->NudgePropertyValue(
207 1
            'occupationalCategory',
208 1
            $value,
209 1
            Thing::BOOL_DEFAULT_AUTOTRIMSTRINGS
210
        );
211 1
    }
212
213
    /**
214
    * @return array<int, string>
215
    */
216 4
    public function GetQualifications() : array
217
    {
218
        /**
219
        * @var array<int, string>
220
        */
221 4
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
222 4
            'qualifications',
223 4
            $this->RetrievePropertyValueFromData('qualifications'),
224 4
            static::class
225
        );
226
227 4
        return $out;
228
    }
229
230
    /**
231
    * @param array<int, string> $value
232
    */
233 1
    public function SetQualifications(array $value) : void
234
    {
235 1
        $this->NudgePropertyValue(
236 1
            'qualifications',
237 1
            $value,
238 1
            Thing::BOOL_DEFAULT_AUTOTRIMSTRINGS
239
        );
240 1
    }
241
242
    /**
243
    * @return array<int, string>
244
    */
245 4
    public function GetResponsibilities() : array
246
    {
247
        /**
248
        * @var array<int, string>
249
        */
250 4
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
251 4
            'responsibilities',
252 4
            $this->RetrievePropertyValueFromData('responsibilities'),
253 4
            static::class
254
        );
255
256 4
        return $out;
257
    }
258
259
    /**
260
    * @param array<int, string> $value
261
    */
262 1
    public function SetResponsibilities(array $value) : void
263
    {
264 1
        $this->NudgePropertyValue(
265 1
            'responsibilities',
266 1
            $value,
267 1
            Thing::BOOL_DEFAULT_AUTOTRIMSTRINGS
268
        );
269 1
    }
270
271
    /**
272
    * @return array<int, string>
273
    */
274 4
    public function GetSkills() : array
275
    {
276
        /**
277
        * @var array<int, string>
278
        */
279 4
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
280 4
            'skills',
281 4
            $this->RetrievePropertyValueFromData('skills'),
282 4
            static::class
283
        );
284
285 4
        return $out;
286
    }
287
288
    /**
289
    * @param array<int, string> $value
290
    */
291 1
    public function SetSkills(array $value) : void
292
    {
293 1
        $this->NudgePropertyValue(
294 1
            'skills',
295 1
            $value,
296 1
            Thing::BOOL_DEFAULT_AUTOTRIMSTRINGS
297
        );
298 1
    }
299
}
300