ExclusionPolicy::getName()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
3
namespace Happyr\SerializerBundle\Annotation;
4
5
use Happyr\SerializerBundle\Exception\RuntimeException;
6
7
/**
8
 * @Annotation
9
 * @Target({"CLASS"})
10
 *
11
 * @author Tobias Nyholm <[email protected]>
12
 */
13
final class ExclusionPolicy implements SerializerAnnotation
14
{
15
    const NONE = 'NONE';
16
    const ALL = 'ALL';
17
18
    public $value;
19
20 23
    public function __construct(array $values)
21
    {
22 23
        if (!is_string($values['value'])) {
23
            throw new RuntimeException('"value" must be a string.');
24
        }
25
26 23
        $this->value = strtoupper($values['value']);
27
28 23
        if (self::NONE !== $this->value && self::ALL !== $this->value) {
29
            throw new RuntimeException('Exclusion policy must either be "ALL", or "NONE".');
30
        }
31 23
    }
32
33 23
    public function getName()
34
    {
35 23
        return 'exclusion_policy';
36
    }
37
38 23
    public function getValue()
39
    {
40 23
        return $this->value;
41
    }
42
}
43