Passed
Push — master ( 54fc89...e67e2c )
by Maximilian
01:13
created

AudioItem::create()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 8
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
1
<?php
2
3
namespace MaxBeckers\AmazonAlexa\Response\Directives\AudioPlayer;
4
5
/**
6
 * @author Maximilian Beckers <[email protected]>
7
 */
8
class AudioItem implements \JsonSerializable
9
{
10
    /**
11
     * @var Stream
12
     */
13
    public $stream;
14
15
    /**
16
     * @var Metadata
17
     */
18
    public $metadata;
19
20
    /**
21
     * @param Stream        $steam
22
     * @param Metadata|null $metadata
23
     *
24
     * @return AudioItem
25
     */
26
    public static function create(Stream $steam, Metadata $metadata = null): self
27
    {
28
        $audioItem = new self();
29
30
        $audioItem->stream   = $steam;
31
        $audioItem->metadata = $metadata;
32
33
        return $audioItem;
34
    }
35
36
    /**
37
     * {@inheritdoc}
38
     */
39
    public function jsonSerialize()
40
    {
41
        $data = [
42
            'stream' => $this->stream,
43
        ];
44
45
        if (null !== $this->metadata) {
46
            $data['metadata'] = $this->metadata;
47
        }
48
49
        return $data;
50
    }
51
}
52