ExclusionPolicy   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 81.82%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 6
c 1
b 0
f 0
lcom 0
cbo 1
dl 0
loc 30
ccs 9
cts 11
cp 0.8182
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 12 4
A getName() 0 4 1
A getValue() 0 4 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