Completed
Push — master ( f36eb7...96a58d )
by
unknown
36s
created

OrganizerCreatedWithUniqueWebsite   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 85
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 6
lcom 1
cbo 4
dl 0
loc 85
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 12 1
A getMainLanguage() 0 4 1
A getWebsite() 0 4 1
A getTitle() 0 4 1
A serialize() 0 8 1
A deserialize() 0 9 1
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