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

BaseLineCreator::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 3
rs 10
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