Completed
Push — master ( 813353...e05ee5 )
by BruceScrutinizer
08:42
created

Analyser   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 12
dl 0
loc 29
rs 10
c 1
b 1
f 0
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getResult() 0 4 1
A __construct() 0 3 1
A execute() 0 9 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace NamespaceProtector;
6
7
use NamespaceProtector\Result\ResultParser;
8
use NamespaceProtector\Common\PathInterface;
9
use NamespaceProtector\Result\ResultAnalyser;
10
use NamespaceProtector\Parser\ParserInterface;
11
use NamespaceProtector\Result\ResultAnalyserInterface;
12
use NamespaceProtector\Result\ResultCollectedReadable;
13
14
final class Analyser
15
{
16
    /** @var ParserInterface[]  */
17
    private $listParser;
18
19
    /** @var ResultParser */
20
    private $result;
21
22
    public function __construct(ParserInterface ...$listParser)
23
    {
24
        $this->listParser = $listParser;
25
    }
26
27
    public function execute(PathInterface $filePath): void
28
    {
29
        $resultParser = new ResultParser();
30
        $this->result = $resultParser;
31
        foreach ($this->listParser as $currentParser) {
32
            $currentParser->parseFile($filePath);
33
            $resultOfcurrentParsedFile = $currentParser->getListResult();
34
35
            $this->result->append($resultOfcurrentParsedFile);
36
        }
37
    }
38
39
    public function getResult(): ResultAnalyserInterface
40
    {
41
        return new ResultAnalyser(
42
            new ResultCollectedReadable($this->result->getResultCollectionReadable())
43
        );
44
    }
45
}
46