Passed
Pull Request — master (#69)
by Dave
02:32
created

BaseLineCreator   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A createBaseLine() 0 14 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Creator;
6
7
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\BaseLiner\BaseLineAnalysisResults;
8
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\BaseLiner\BaseLineExporter;
9
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\BaseLine;
10
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\FileName;
11
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\ProjectRoot;
12
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\HistoryAnalyser\HistoryFactory;
13
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\ResultsParser\ResultsParser;
14
15
class BaseLineCreator implements BaseLineCreatorInterface
16
{
17
    /**
18
     * @var BaseLineExporter
19
     */
20
    private $exporter;
21
22
    public function __construct(BaseLineExporter $exporter)
23
    {
24
        $this->exporter = $exporter;
25
    }
26
27
    public function createBaseLine(
28
        HistoryFactory $historyFactory,
29
        ResultsParser $resultsParser,
30
        FileName $baselineFile,
31
        ProjectRoot $projectRoot,
32
        string $analysisResultsAsString
33
    ): BaseLine {
34
        $historyMarker = $historyFactory->newHistoryMarkerFactory()->newCurrentHistoryMarker($projectRoot);
35
        $analysisResults = $resultsParser->convertFromString($analysisResultsAsString, $projectRoot);
36
        $baseLineAnalysisResults = BaseLineAnalysisResults::fromAnalysisResults($analysisResults);
37
        $baseline = new BaseLine($historyFactory, $baseLineAnalysisResults, $resultsParser, $historyMarker);
38
        $this->exporter->export($baseline, $baselineFile);
39
40
        return $baseline;
41
    }
42
}
43