Passed
Push — master ( daa88d...35c21b )
by SignpostMarv
12:17
created

MusicPlaylist::SetNumTracks()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 5
ccs 4
cts 4
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\CreativeWork;
8
9
use SignpostMarv\DaftObject\SchemaOrg\CreativeWork as Base;
10
use SignpostMarv\DaftObject\SchemaOrg\Intangible\ItemList;
11
use SignpostMarv\DaftObject\SchemaOrg\TypeUtilities;
12
13
/**
14
* @property array<int, int> $numTracks
15
* @property array<int, ItemList|MusicRecording> $track
16
*/
17
class MusicPlaylist extends Base
18
{
19
    const SCHEMA_ORG_TYPE = 'MusicPlaylist';
20
21
    const PROPERTIES = [
22
        'numTracks',
23
        'track',
24
    ];
25
26
    const PROPERTIES_WITH_MULTI_TYPED_ARRAYS = [
27
        'numTracks' => [
28
            'integer',
29
        ],
30
        'track' => [
31
            ItemList::class,
32
            MusicRecording::class,
33
        ],
34
    ];
35
36
    /**
37
    * @return array<int, int>
38
    */
39 18
    public function GetNumTracks() : array
40
    {
41
        /**
42
        * @var array<int, int>
43
        */
44 18
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
45 18
            'numTracks',
46 18
            $this->RetrievePropertyValueFromData('numTracks'),
47 18
            static::class
48
        );
49
50 18
        return $out;
51
    }
52
53
    /**
54
    * @param array<int, int> $value
55
    */
56 5
    public function SetNumTracks(array $value) : void
57
    {
58 5
        $this->NudgePropertyValue(
59 5
            'numTracks',
60 5
            $value
61
        );
62 5
    }
63
64
    /**
65
    * @return array<int, ItemList|MusicRecording>
66
    */
67 18
    public function GetTrack() : array
68
    {
69
        /**
70
        * @var array<int, ItemList|MusicRecording>
71
        */
72 18
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
73 18
            'track',
74 18
            $this->RetrievePropertyValueFromData('track'),
75 18
            static::class
76
        );
77
78 18
        return $out;
79
    }
80
81
    /**
82
    * @param array<int, ItemList|MusicRecording> $value
83
    */
84 5
    public function SetTrack(array $value) : void
85
    {
86 5
        $this->NudgePropertyValue(
87 5
            'track',
88 5
            $value
89
        );
90 5
    }
91
}
92