Passed
Pull Request — master (#69)
by Dave
01:56
created

ResultsPruner   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 16
c 1
b 0
f 0
dl 0
loc 38
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getPrunedResults() 0 20 1
A __construct() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Pruner;
6
7
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Analyser\BaseLineResultsRemover;
8
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\BaseLiner\BaseLineImporter;
9
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\FileName;
10
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\ProjectRoot;
11
12
class ResultsPruner implements ResultsPrunerInterface
13
{
14
    /**
15
     * @var BaseLineImporter
16
     */
17
    private $baseLineImporter;
18
19
    /**
20
     * @var BaseLineResultsRemover
21
     */
22
    private $baseLineResultsRemover;
23
24
    public function __construct(BaseLineImporter $baseLineImporter, BaseLineResultsRemover $baseLineResultsRemover)
25
    {
26
        $this->baseLineImporter = $baseLineImporter;
27
        $this->baseLineResultsRemover = $baseLineResultsRemover;
28
    }
29
30
    public function getPrunedResults(
31
        FileName $baseLineFileName,
32
        string $inputAnalysisResultsAsString,
33
        ProjectRoot $projectRoot
34
    ): PrunedResults {
35
        $baseLine = $this->baseLineImporter->import($baseLineFileName);
36
        $resultsParser = $baseLine->getResultsParser();
37
        $historyFactory = $baseLine->getHistoryFactory();
38
39
        $historyAnalyser = $historyFactory->newHistoryAnalyser($baseLine->getHistoryMarker(), $projectRoot);
40
        $inputAnalysisResults = $resultsParser->convertFromString($inputAnalysisResultsAsString, $projectRoot);
41
42
        $outputAnalysisResults = $this->baseLineResultsRemover->pruneBaseLine(
43
            $inputAnalysisResults,
44
            $historyAnalyser,
45
            $baseLine->getAnalysisResults(),
46
            $projectRoot
47
        );
48
49
        return new PrunedResults($baseLine, $outputAnalysisResults, $inputAnalysisResults->getCount());
50
    }
51
}
52