Passed
Push — master ( 95efe0...902a34 )
by Tobias van
41s queued 11s
created

BaselineValidator::isBaselined()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
nc 3
nop 1
dl 0
loc 20
rs 9.6
c 0
b 0
f 0
1
<?php
2
3
namespace PHPMD\Baseline;
4
5
use PHPMD\RuleViolation;
6
7
class BaselineValidator
8
{
9
    /** @var string */
10
    private $baselineMode;
11
12
    /** @var BaselineSet */
13
    private $baselineSet;
14
15
    /**
16
     * @param string $baselineMode
17
     */
18
    public function __construct(BaselineSet $baselineSet, $baselineMode)
19
    {
20
        $this->baselineMode = $baselineMode;
21
        $this->baselineSet  = $baselineSet;
22
    }
23
24
    /**
25
     * @return bool
26
     */
27
    public function isBaselined(RuleViolation $violation)
28
    {
29
        $contains = $this->baselineSet->contains(
30
            get_class($violation->getRule()),
31
            $violation->getFileName(),
32
            $violation->getMethodName()
33
        );
34
35
        // regular baseline: violations is baselined if it is in the BaselineSet
36
        if ($this->baselineMode === BaselineMode::NONE) {
37
            return $contains;
38
        }
39
40
        // update baseline: violation _can_ be baselined if it was already in the BaselineSet
41
        if ($this->baselineMode === BaselineMode::UPDATE) {
42
            return $contains === false;
43
        }
44
45
        return false;
46
    }
47
}
48