Passed
Push — master ( 77331f...637ad2 )
by SignpostMarv
03:51
created

QualitativeValue::GetGreaterOrEqual()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 0
dl 0
loc 12
ccs 6
cts 6
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
* @author SignpostMarv
4
*/
5
declare(strict_types=1);
6
7
namespace SignpostMarv\DaftObject\SchemaOrg\Intangible\Enumeration;
8
9
use SignpostMarv\DaftObject\SchemaOrg\DaftObjectTraits\TraitAdditionalProperty;
10
use SignpostMarv\DaftObject\SchemaOrg\DaftObjectTraits\TraitValueReference;
11
use SignpostMarv\DaftObject\SchemaOrg\Intangible\Enumeration as Base;
12
use SignpostMarv\DaftObject\SchemaOrg\TypeUtilities;
13
14
class QualitativeValue extends Base
15
{
16
    use TraitAdditionalProperty;
17
    use TraitValueReference;
18
19
    const SCHEMA_ORG_TYPE = 'QualitativeValue';
20
21
    const PROPERTIES = [
22
        'additionalProperty',
23
        'equal',
24
        'greater',
25
        'greaterOrEqual',
26
        'lesser',
27
        'lesserOrEqual',
28
        'nonEqual',
29
        'valueReference',
30
    ];
31
32
    const PROPERTIES_WITH_MULTI_TYPED_ARRAYS = [
33
        'additionalProperty' => TypeUtilities::MULTI_TYPE_DICT__additionalProperty,
34
        'equal' => [
35
            QualitativeValue::class,
36
        ],
37
        'greater' => [
38
            QualitativeValue::class,
39
        ],
40
        'greaterOrEqual' => [
41
            QualitativeValue::class,
42
        ],
43
        'lesser' => [
44
            QualitativeValue::class,
45
        ],
46
        'lesserOrEqual' => [
47
            QualitativeValue::class,
48
        ],
49
        'nonEqual' => [
50
            QualitativeValue::class,
51
        ],
52
        'valueReference' => TypeUtilities::MULTI_TYPE_DICT__valueReference,
53
    ];
54
55
    /**
56
    * @return array<int, QualitativeValue>
57
    */
58 4
    public function GetEqual() : array
59
    {
60
        /**
61
        * @var array<int, QualitativeValue>
62
        */
63 4
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
64 4
            'equal',
65 4
            $this->RetrievePropertyValueFromData('equal'),
66 4
            static::class
67
        );
68
69 4
        return $out;
70
    }
71
72
    /**
73
    * @param array<int, QualitativeValue> $value
74
    */
75
    public function SetEqual(array $value) : void
76
    {
77
        $this->NudgePropertyValue('equal', $value, true);
78
    }
79
80
    /**
81
    * @return array<int, QualitativeValue>
82
    */
83 4
    public function GetGreater() : array
84
    {
85
        /**
86
        * @var array<int, QualitativeValue>
87
        */
88 4
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
89 4
            'greater',
90 4
            $this->RetrievePropertyValueFromData('greater'),
91 4
            static::class
92
        );
93
94 4
        return $out;
95
    }
96
97
    /**
98
    * @param array<int, QualitativeValue> $value
99
    */
100
    public function SetGreater(array $value) : void
101
    {
102
        $this->NudgePropertyValue('greater', $value, true);
103
    }
104
105
    /**
106
    * @return array<int, QualitativeValue>
107
    */
108 4
    public function GetGreaterOrEqual() : array
109
    {
110
        /**
111
        * @var array<int, QualitativeValue>
112
        */
113 4
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
114 4
            'greaterOrEqual',
115 4
            $this->RetrievePropertyValueFromData('greaterOrEqual'),
116 4
            static::class
117
        );
118
119 4
        return $out;
120
    }
121
122
    /**
123
    * @param array<int, QualitativeValue> $value
124
    */
125
    public function SetGreaterOrEqual(array $value) : void
126
    {
127
        $this->NudgePropertyValue('greaterOrEqual', $value, true);
128
    }
129
130
    /**
131
    * @return array<int, QualitativeValue>
132
    */
133 4
    public function GetLesser() : array
134
    {
135
        /**
136
        * @var array<int, QualitativeValue>
137
        */
138 4
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
139 4
            'lesser',
140 4
            $this->RetrievePropertyValueFromData('lesser'),
141 4
            static::class
142
        );
143
144 4
        return $out;
145
    }
146
147
    /**
148
    * @param array<int, QualitativeValue> $value
149
    */
150
    public function SetLesser(array $value) : void
151
    {
152
        $this->NudgePropertyValue('lesser', $value, true);
153
    }
154
155
    /**
156
    * @return array<int, QualitativeValue>
157
    */
158 4
    public function GetLesserOrEqual() : array
159
    {
160
        /**
161
        * @var array<int, QualitativeValue>
162
        */
163 4
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
164 4
            'lesserOrEqual',
165 4
            $this->RetrievePropertyValueFromData('lesserOrEqual'),
166 4
            static::class
167
        );
168
169 4
        return $out;
170
    }
171
172
    /**
173
    * @param array<int, QualitativeValue> $value
174
    */
175
    public function SetLesserOrEqual(array $value) : void
176
    {
177
        $this->NudgePropertyValue('lesserOrEqual', $value, true);
178
    }
179
180
    /**
181
    * @return array<int, QualitativeValue>
182
    */
183 4
    public function GetNonEqual() : array
184
    {
185
        /**
186
        * @var array<int, QualitativeValue>
187
        */
188 4
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
189 4
            'nonEqual',
190 4
            $this->RetrievePropertyValueFromData('nonEqual'),
191 4
            static::class
192
        );
193
194 4
        return $out;
195
    }
196
197
    /**
198
    * @param array<int, QualitativeValue> $value
199
    */
200
    public function SetNonEqual(array $value) : void
201
    {
202
        $this->NudgePropertyValue('nonEqual', $value, true);
203
    }
204
205
    /**
206
    * @param array<int, QualitativeValue> $value
207
    */
208
    protected function NudgePropertyWithUniqueValuesOfQualitativeValue(
209
        string $property,
210
        string $method,
211
        array $value
212
    ) : void {
213
        $this->NudgePropertyWithUniqueValuesOfThings(
214
            $property,
215
            $method,
216
            $value,
217
            QualitativeValue::class
218
        );
219
    }
220
}
221