Passed
Push — master ( 3bf788...763f00 )
by Jon
02:39 queued 10s
created

Video::setRole()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
nc 2
nop 1
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
1
<?php namespace FlatPlan\Components;
2
3
class Video extends AbstractComponent {
4
5
    private $url;
6
    private $role;
7
    private $aspectRatio;
8
    private $caption;
9
    private $accessibilityCaption;
10
    private $expicitContent;
11
12
    protected $roles   = ['video', 'embedwebvideo', 'embedvideo'];
13
14
    /**
15
     * @param string $url
16
     * @param string $role
17
     * @param float $aspectRatio
18
     * @param string $caption
19
     * @param string $accessibilityCaption
20
     * @param bool $explicitContent
21
     * @return void
22
     */
23
    public function __construct($url, $role, $aspectRatio = 1.777, $caption = '', $accessibilityCaption = '', $explicitContent = false)
24
    {
25
        $this->setUrl($url);
26
        $this->setRole($role);
27
        $this->setAspectRatio($aspectRatio);
28
        $this->setCaption($caption);
29
        $this->setAccessibilityCaption($accessibilityCaption);
30
        $this->setExplicitContent($explicitContent);
31
    }
32
33
    public function setUrl($url)
34
    {
35
        if (!filter_var($url, FILTER_VALIDATE_URL)) {
36
            throw new \ErrorException('Invalid url supplied.');
37
        }
38
        $this->url = $url;
39
    }
40
41
    public function getUrl()
42
    {
43
        return $this->url;
44
    }
45
46
    public function setRole($role)
47
    {
48
        if (!in_array($role, $this->roles)) {
49
            throw new \ErrorException('Invalid role supplied.');
50
        }
51
        $this->role = $role;
52
    }
53
54
    public function getRole()
55
    {
56
        return $this->role;
57
    }
58
59
    public function setAspectRatio($aspectRatio)
60
    {
61
        $this->aspectRatio = (float) $aspectRatio;
62
    }
63
64
    public function getAspectRatio()
65
    {
66
        return $this->aspectRatio;
67
    }
68
69
    public function setCaption($caption)
70
    {
71
        $this->caption = $caption;
72
    }
73
74
    public function getCaption()
75
    {
76
        return $this->caption;
77
    }
78
79
    public function setAccessibilityCaption($accessibilityCaption)
80
    {
81
        $this->accessibilityCaption = $accessibilityCaption;
82
    }
83
84
    public function getAccessibilityCaption()
85
    {
86
        return $this->accessibilityCaption;
87
    }
88
89
    public function setExplicitContent($expicitContent)
90
    {
91
        $this->expicitContent = $expicitContent;
92
    }
93
94
    public function getExplicitContent()
95
    {
96
        return $this->expicitContent;
97
    }
98
99
    public function getComponent()
100
    {
101
        $component = new \stdClass();
102
        $component->url                  = $this->getUrl();
103
        $component->role                 = $this->getRole();
104
        $component->aspectRatio          = $this->getAspectRatio();
105
        $component->caption              = $this->getCaption();
106
        $component->accessibilityCaption = $this->getAccessibilityCaption();
107
        $component->expicitContent       = $this->getExplicitContent();
108
        return $component;
109
    }
110
111
    public function __toString()
112
    {
113
        return json_encode($this->getComponent());
114
    }
115
}
116