AvailabilityAndStartsAndEnds   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 85
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 26
dl 0
loc 85
ccs 32
cts 32
cp 1
rs 10
c 0
b 0
f 0
wmc 6

6 Methods

Rating   Name   Duplication   Size   Complexity  
A GetAvailability() 0 12 1
A SetAvailabilityEnds() 0 5 1
A SetAvailability() 0 5 1
A SetAvailabilityStarts() 0 5 1
A GetAvailabilityStarts() 0 12 1
A GetAvailabilityEnds() 0 12 1
1
<?php
2
/**
3
* @author SignpostMarv
4
*/
5
declare(strict_types=1);
6
7
namespace SignpostMarv\DaftObject\SchemaOrg\DaftObjectTraits;
8
9
use SignpostMarv\DaftObject\SchemaOrg\DataTypes\DateTime;
10
use SignpostMarv\DaftObject\SchemaOrg\Intangible\Enumeration\ItemAvailability;
11
use SignpostMarv\DaftObject\SchemaOrg\TypeUtilities;
12
13
trait AvailabilityAndStartsAndEnds
14
{
15
    use DaftObjectTrait;
16
17
    /**
18
    * @return array<int, ItemAvailability>
19
    */
20 48
    public function GetAvailability() : array
21
    {
22
        /**
23
        * @var array<int, ItemAvailability>
24
        */
25 48
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
26 48
            'availability',
27 48
            $this->RetrievePropertyValueFromData('availability'),
28 48
            static::class
29
        );
30
31 48
        return $out;
32
    }
33
34
    /**
35
    * @param array<int, ItemAvailability> $value
36
    */
37 2
    public function SetAvailability(array $value) : void
38
    {
39 2
        $this->NudgePropertyValue(
40 2
            'availability',
41 2
            $value
42
        );
43 2
    }
44
45
    /**
46
    * @return array<int, DateTime>
47
    */
48 48
    public function GetAvailabilityEnds() : array
49
    {
50
        /**
51
        * @var array<int, DateTime>
52
        */
53 48
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
54 48
            'availabilityEnds',
55 48
            $this->RetrievePropertyValueFromData('availabilityEnds'),
56 48
            static::class
57
        );
58
59 48
        return $out;
60
    }
61
62
    /**
63
    * @param array<int, DateTime> $value
64
    */
65 2
    public function SetAvailabilityEnds(array $value) : void
66
    {
67 2
        $this->NudgePropertyValue(
68 2
            'availabilityEnds',
69 2
            $value
70
        );
71 2
    }
72
73
    /**
74
    * @return array<int, DateTime>
75
    */
76 48
    public function GetAvailabilityStarts() : array
77
    {
78
        /**
79
        * @var array<int, DateTime>
80
        */
81 48
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
82 48
            'availabilityStarts',
83 48
            $this->RetrievePropertyValueFromData('availabilityStarts'),
84 48
            static::class
85
        );
86
87 48
        return $out;
88
    }
89
90
    /**
91
    * @param array<int, DateTime> $value
92
    */
93 2
    public function SetAvailabilityStarts(array $value) : void
94
    {
95 2
        $this->NudgePropertyValue(
96 2
            'availabilityStarts',
97 2
            $value
98
        );
99 2
    }
100
}
101