Completed
Push — feature/ra-location-property-n... ( acdca7 )
by A.
04:45
created

RaLocation::getId()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
/**
4
 * Copyright 2016 SURFnet B.V.
5
 *
6
 * Licensed under the Apache License, Version 2.0 (the "License");
7
 * you may not use this file except in compliance with the License.
8
 * You may obtain a copy of the License at
9
 *
10
 *     http://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 * Unless required by applicable law or agreed to in writing, software
13
 * distributed under the License is distributed on an "AS IS" BASIS,
14
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
 * See the License for the specific language governing permissions and
16
 * limitations under the License.
17
 */
18
19
namespace Surfnet\Stepup\Configuration\Entity;
20
21
use Surfnet\Stepup\Configuration\Value\ContactInformation;
22
use Surfnet\Stepup\Configuration\Value\Location;
23
use Surfnet\Stepup\Configuration\Value\RaLocationId;
24
use Surfnet\Stepup\Configuration\Value\RaLocationName;
25
26
class RaLocation
0 ignored issues
show
Coding Style introduced by
Since you have declared the constructor as private, maybe you should also declare the class as final.
Loading history...
27
{
28
    /**
29
     * @var RaLocationId
30
     */
31
    private $id;
32
33
    /**
34
     * @var RaLocationName
35
     */
36
    private $name;
37
38
    /**
39
     * @var Location
40
     */
41
    private $location;
42
43
    /**
44
     * @var ContactInformation
45
     */
46
    private $contactInformation;
47
48
    /**
49
     * @param RaLocationId $id
50
     * @param RaLocationName $name
51
     * @param Location $location
52
     * @param ContactInformation $contactInformation
53
     * @return RaLocation
54
     */
55
    public static function create(
56
        RaLocationId $id,
57
        RaLocationName $name,
58
        Location $location,
59
        ContactInformation $contactInformation
60
    ) {
61
        return new self($id, $name, $location, $contactInformation);
62
    }
63
64
    private function __construct(
65
        RaLocationId $id,
66
        RaLocationName $name,
67
        Location $location,
68
        ContactInformation $contactInformation
69
    ) {
70
        $this->id                 = $id;
71
        $this->name               = $name;
72
        $this->location           = $location;
73
        $this->contactInformation = $contactInformation;
74
    }
75
76
    /**
77
     * @param RaLocationName $name
78
     */
79
    public function rename(RaLocationName $name)
80
    {
81
        $this->name = $name;
82
    }
83
84
    /**
85
     * @param Location $location
86
     */
87
    public function relocate(Location $location)
88
    {
89
        $this->location = $location;
90
    }
91
92
    /**
93
     * @param ContactInformation $contactInformation
94
     */
95
    public function changeContactInformation(ContactInformation $contactInformation)
96
    {
97
        $this->contactInformation = $contactInformation;
98
    }
99
100
    /**
101
     * @param RaLocationId $otherId
102
     * @return bool
103
     */
104
    public function hasId(RaLocationId $otherId)
105
    {
106
        return $this->id->equals($otherId);
107
    }
108
109
    /**
110
     * @return RaLocationId
111
     */
112
    public function getId()
113
    {
114
        return $this->id;
115
    }
116
117
    /**
118
     * @return RaLocationName
119
     */
120
    public function getName()
121
    {
122
        return $this->name;
123
    }
124
125
    /**
126
     * @return Location
127
     */
128
    public function getLocation()
129
    {
130
        return $this->location;
131
    }
132
133
    /**
134
     * @return ContactInformation
135
     */
136
    public function getContactInformation()
137
    {
138
        return $this->contactInformation;
139
    }
140
}
141