Completed
Pull Request — develop (#38)
by A.
02:23
created

ContactType   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 3
c 1
b 0
f 1
lcom 1
cbo 1
dl 0
loc 41
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 13 1
A equals() 0 4 1
A __toString() 0 4 1
1
<?php
2
3
/**
4
 * Copyright 2015 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 OpenConext\Profile\Value;
20
21
use OpenConext\Profile\Assert;
22
23
final class ContactType
24
{
25
    const TYPE_TECHNICAL = 'technical';
26
    const TYPE_SUPPORT = 'support';
27
    const TYPE_ADMINISTRATIVE = 'administrative';
28
    const TYPE_BILLING = 'billing';
29
    const TYPE_OTHER = 'other';
30
31
    /**
32
     * @var string
33
     */
34
    private $contactType;
35
36
    public function __construct($contactType)
37
    {
38
        Assert::string($contactType);
39
        Assert::choice($contactType, [
40
            self::TYPE_TECHNICAL,
41
            self::TYPE_SUPPORT,
42
            self::TYPE_ADMINISTRATIVE,
43
            self::TYPE_BILLING,
44
            self::TYPE_OTHER,
45
        ], '"%s" is not one of the valid ContactTypes: %s');
46
47
        $this->contactType = $contactType;
48
    }
49
50
    /**
51
     * @param ContactType $other
52
     * @return bool
53
     */
54
    public function equals(ContactType $other)
55
    {
56
        return $this->contactType === $other->contactType;
57
    }
58
59
    public function __toString()
60
    {
61
        return $this->contactType;
62
    }
63
}
64