Completed
Push — master ( 64908a...328605 )
by
unknown
03:10
created

VerifyEmailOption::getDefault()   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
/**
4
 * Copyright 2018 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\Value;
20
21
use JsonSerializable;
22
use Surfnet\Stepup\Exception\InvalidArgumentException;
23
24
final class VerifyEmailOption implements JsonSerializable
25
{
26
    /**
27
     * @var bool
28
     */
29
    private $verifyEmailOption;
30
31
    public static function getDefault()
32
    {
33
        return new self(true);
34
    }
35
36
    public function __construct($verifyEmailOption)
37
    {
38
        if (!is_bool($verifyEmailOption)) {
39
            throw InvalidArgumentException::invalidType(
40
                'boolean',
41
                'verifyEmailOption',
42
                $verifyEmailOption
43
            );
44
        }
45
46
        $this->verifyEmailOption = $verifyEmailOption;
47
    }
48
49
    /**
50
     * @param VerifyEmailOption $other
51
     * @return bool
52
     */
53
    public function equals(VerifyEmailOption $other)
54
    {
55
        return $this->verifyEmailOption === $other->verifyEmailOption;
56
    }
57
58
    /**
59
     * @return boolean
60
     */
61
    public function isEnabled()
62
    {
63
        return $this->verifyEmailOption;
64
    }
65
66
    public function jsonSerialize()
67
    {
68
        return $this->verifyEmailOption;
69
    }
70
}
71