Test Failed
Branch master (16bdc1)
by SignpostMarv
02:18
created

MusicPlaylist::SetTrack()   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\DaftObjectTraits;
11
use SignpostMarv\DaftObject\SchemaOrg\Intangible\ItemList;
12
use SignpostMarv\DaftObject\SchemaOrg\TypeUtilities;
13
14
/**
15
* @property array<int, int> $numTracks
16
* @property array<int, ItemList|MusicRecording> $track
17
*/
18
class MusicPlaylist extends Base
19
{
20
    use DaftObjectTraits\Track;
21
22
    const SCHEMA_ORG_TYPE = 'MusicPlaylist';
23
24
    const PROPERTIES = [
25
        'numTracks',
26
        'track',
27
    ];
28
29
    const PROPERTIES_WITH_MULTI_TYPED_ARRAYS = [
30
        'numTracks' => [
31
            'integer',
32
        ],
33
        'track' => [
34
            ItemList::class,
35
            MusicRecording::class,
36
        ],
37
    ];
38
39 18
    /**
40
    * @return array<int, int>
41
    */
42
    public function GetNumTracks() : array
43
    {
44 18
        /**
45 18
        * @var array<int, int>
46 18
        */
47 18
        $out = TypeUtilities::ExpectRetrievedValueIsArray(
48
            'numTracks',
49
            $this->RetrievePropertyValueFromData('numTracks'),
50 18
            static::class
51
        );
52
53
        return $out;
54
    }
55
56 5
    /**
57
    * @param array<int, int> $value
58 5
    */
59 5
    public function SetNumTracks(array $value) : void
60 5
    {
61
        $this->NudgePropertyValue(
62 5
            'numTracks',
63
            $value
64
        );
65
    }
66
}
67