Completed
Pull Request — master (#344)
by Luc
05:32
created

getMainLanguage()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
namespace CultuurNet\UDB3\Organizer\Events;
4
5
use CultuurNet\UDB3\Language;
6
use CultuurNet\UDB3\Title;
7
use ValueObjects\Web\Url;
8
9
class OrganizerCreatedWithUniqueWebsite extends OrganizerEvent
10
{
11
    /**
12
     * @var Language
13
     */
14
    private $mainLanguage;
15
16
    /**
17
     * @var Url
18
     */
19
    private $website;
20
21
    /**
22
     * @var Title
23
     */
24
    private $title;
25
26
    /**
27
     * @param string $id
28
     * @param Language $mainLanguage
29
     * @param Url $website
30
     * @param Title $title
31
     */
32
    public function __construct(
33
        $id,
34
        Language $mainLanguage,
35
        Url $website,
36
        Title $title
37
    ) {
38
        parent::__construct($id);
39
40
        $this->mainLanguage = $mainLanguage;
41
        $this->website = $website;
42
        $this->title = $title;
43
    }
44
45
    /**
46
     * @return Language
47
     */
48
    public function getMainLanguage()
49
    {
50
        return $this->mainLanguage;
51
    }
52
53
    /**
54
     * @return Url
55
     */
56
    public function getWebsite()
57
    {
58
        return $this->website;
59
    }
60
61
    /**
62
     * @return Title
63
     */
64
    public function getTitle()
65
    {
66
        return $this->title;
67
    }
68
69
    /**
70
     * @return array
71
     */
72
    public function serialize()
73
    {
74
        return parent::serialize() + array(
75
            'main_language' => $this->getMainLanguage()->getCode(),
76
            'website' => (string) $this->getWebsite(),
77
            'title' => (string) $this->getTitle(),
78
        );
79
    }
80
81
    /**
82
     * @return static
83
     */
84
    public static function deserialize(array $data)
85
    {
86
        return new static(
87
            $data['organizer_id'],
88
            new Language($data['main_language']),
89
            Url::fromNative($data['website']),
90
            new Title($data['title'])
91
        );
92
    }
93
}
94