Passed
Branch fuzzy-generators (a45711)
by SignpostMarv
09:29
created

DataFeedItem   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 138
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 51
dl 0
loc 138
ccs 43
cts 43
cp 1
rs 10
c 0
b 0
f 0
wmc 8

8 Methods

Rating   Name   Duplication   Size   Complexity  
A SetItem() 0 5 1
A GetDateDeleted() 0 12 1
A SetDateDeleted() 0 5 1
A GetDateCreated() 0 12 1
A GetDateModified() 0 12 1
A SetDateModified() 0 5 1
A SetDateCreated() 0 5 1
A GetItem() 0 12 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\DataTypes;
10
use SignpostMarv\DaftObject\SchemaOrg\Intangible as Base;
11
use SignpostMarv\DaftObject\SchemaOrg\Thing;
12
use SignpostMarv\DaftObject\SchemaOrg\TypeUtilities;
13
14
/**
15
* @property array<int, DataTypes\Date|DataTypes\DateTime> $dateCreated
16
* @property array<int, DataTypes\Date|DataTypes\DateTime> $dateDeleted
17
* @property array<int, DataTypes\Date|DataTypes\DateTime> $dateModified
18
* @property array<int, Thing> $item
19
*/
20
class DataFeedItem extends Base
21
{
22
    const SCHEMA_ORG_TYPE = 'DataFeedItem';
23
24
    const PROPERTIES = [
25
        'dateCreated',
26
        'dateDeleted',
27
        'dateModified',
28
        'item',
29
    ];
30
31
    const PROPERTIES_WITH_MULTI_TYPED_ARRAYS = [
32
        'dateCreated' => [
33
            DataTypes\Date::class,
34
            DataTypes\DateTime::class,
35
        ],
36
        'dateDeleted' => [
37
            DataTypes\Date::class,
38
            DataTypes\DateTime::class,
39
        ],
40
        'dateModified' => [
41
            DataTypes\Date::class,
42
            DataTypes\DateTime::class,
43
        ],
44
        'item' => [
45
            Thing::class,
46
        ],
47
    ];
48
49
    /**
50
    * @return array<int, DataTypes\Date|DataTypes\DateTime>
51
    */
52 2
    public function GetDateCreated() : array
53
    {
54
        /**
55
        * @var array<int, DataTypes\Date|DataTypes\DateTime>
56
        */
57 2
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
58 2
            'dateCreated',
59 2
            $this->RetrievePropertyValueFromData('dateCreated'),
60 2
            static::class
61
        );
62
63 2
        return $out;
64
    }
65
66
    /**
67
    * @param array<int, DataTypes\Date|DataTypes\DateTime> $value
68
    */
69 1
    public function SetDateCreated(array $value) : void
70
    {
71 1
        $this->NudgePropertyValue(
72 1
            'dateCreated',
73 1
            $value
74
        );
75 1
    }
76
77
    /**
78
    * @return array<int, DataTypes\Date|DataTypes\DateTime>
79
    */
80 2
    public function GetDateDeleted() : array
81
    {
82
        /**
83
        * @var array<int, DataTypes\Date|DataTypes\DateTime>
84
        */
85 2
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
86 2
            'dateDeleted',
87 2
            $this->RetrievePropertyValueFromData('dateDeleted'),
88 2
            static::class
89
        );
90
91 2
        return $out;
92
    }
93
94
    /**
95
    * @param array<int, DataTypes\Date|DataTypes\DateTime> $value
96
    */
97 1
    public function SetDateDeleted(array $value) : void
98
    {
99 1
        $this->NudgePropertyValue(
100 1
            'dateDeleted',
101 1
            $value
102
        );
103 1
    }
104
105
    /**
106
    * @return array<int, DataTypes\Date|DataTypes\DateTime>
107
    */
108 2
    public function GetDateModified() : array
109
    {
110
        /**
111
        * @var array<int, DataTypes\Date|DataTypes\DateTime>
112
        */
113 2
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
114 2
            'dateModified',
115 2
            $this->RetrievePropertyValueFromData('dateModified'),
116 2
            static::class
117
        );
118
119 2
        return $out;
120
    }
121
122
    /**
123
    * @param array<int, DataTypes\Date|DataTypes\DateTime> $value
124
    */
125 1
    public function SetDateModified(array $value) : void
126
    {
127 1
        $this->NudgePropertyValue(
128 1
            'dateModified',
129 1
            $value
130
        );
131 1
    }
132
133
    /**
134
    * @return array<int, Thing>
135
    */
136 2
    public function GetItem() : array
137
    {
138
        /**
139
        * @var array<int, Thing>
140
        */
141 2
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
142 2
            'item',
143 2
            $this->RetrievePropertyValueFromData('item'),
144 2
            static::class
145
        );
146
147 2
        return $out;
148
    }
149
150
    /**
151
    * @param array<int, Thing> $value
152
    */
153 1
    public function SetItem(array $value) : void
154
    {
155 1
        $this->NudgePropertyValue(
156 1
            'item',
157 1
            $value
158
        );
159 1
    }
160
}
161