Passed
Push — master ( 04cf7a...5cb2ae )
by Jon
03:42
created

Image::getUrl()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php namespace FlatPlan\Components;
2
3
class Image extends AbstractComponent {
4
5
    protected $url;
6
    protected $caption;
7
    protected $accessibilityCaption;
8
    protected $expicitContent;
9
10
    protected $roles   = ['figure', 'image', 'logo', 'photo', 'portrait', 'galleryitem'];
11
12
    /**
13
     * @param string $url
14
     * @param string $role
15
     * @param string $caption
16
     * @param string $accessibilityCaption
17
     * @param bool $explicitContent
18
     * @return void
19
     */
20
    public function __construct($url, $role, $caption, $accessibilityCaption = '', $explicitContent = false)
21
    {
22
        $this->setUrl($url);
23
        // galleryitems do not have a role attribute.
24
        if ($role !== 'galleryitem') {
25
            $this->setRole($role);
26
        }
27
        $this->setCaption($caption);
28
        $this->setAccessibilityCaption($accessibilityCaption);
29
        $this->setExplicitContent($explicitContent);
30
    }
31
32
    private function setUrl($url)
33
    {
34
        if (!filter_var($url, FILTER_VALIDATE_URL)) {
35
            throw new \ErrorException('Invalid url supplied.');
36
        }
37
        $this->url = $url;
38
    }
39
40
    private function getUrl()
41
    {
42
        return $this->url;
43
    }
44
45
    private function setCaption($caption)
46
    {
47
        $this->caption = $caption;
48
    }
49
50
    private function getCaption()
51
    {
52
        return $this->caption;
53
    }
54
55
    private function setAccessibilityCaption($accessibilityCaption)
56
    {
57
        $this->accessibilityCaption = $accessibilityCaption;
58
    }
59
60
    private function getAccessibilityCaption()
61
    {
62
        return $this->accessibilityCaption;
63
    }
64
65
    private function setExplicitContent($expicitContent)
66
    {
67
        $this->expicitContent = $expicitContent;
68
    }
69
70
    private function getExplicitContent()
71
    {
72
        return $this->expicitContent;
73
    }
74
75
    protected function getComponent()
76
    {
77
        $component = new \stdClass();
78
        $component->url                  = $this->getUrl();
79
        $component->role                 = $this->getRole();
80
        $component->caption              = $this->getCaption();
81
        $component->accessibilityCaption = $this->getAccessibilityCaption();
82
        $component->expicitContent       = $this->getExplicitContent();
83
        return $component;
84
    }
85
}
86