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

ResultParser::get()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace NamespaceProtector\Result;
6
7
class ResultParser implements ResultParserInterface
8
{
9
    /** @var ResultCollectedReadable<ResultProcessorInterface> */
10
    private $resultCollectorReadableParser;
11
12
    /**
13
     * @param ResultCollectedReadable<ResultProcessorInterface> $resultCollectorReadableParser
14
     */
15
    public function __construct(ResultCollectedReadable $resultCollectorReadableParser = null)
16
    {
17
        if (null === $resultCollectorReadableParser) {
18
            /** @var ResultCollectedReadable<ResultProcessorInterface> $resultCollectorReadableParser */
19
            $resultCollectorReadableParser = new ResultCollectedReadable(new ResultCollected());
20
            $this->resultCollectorReadableParser = $resultCollectorReadableParser;
21
            return;
22
        }
23
24
        $this->resultCollectorReadableParser = $resultCollectorReadableParser;
25
    }
26
27
    public function get(): string
28
    {
29
        return '';
30
    }
31
32
    /**
33
     * @return ResultCollectedReadable<ResultProcessorInterface>
34
     */
35
    public function getResultCollectionReadable(): ResultCollectedReadable
36
    {
37
        return $this->resultCollectorReadableParser;
38
    }
39
40
    public function append(ResultParserInterface $toAppendInstance): void
41
    {
42
        /** @var ResultCollected<ResultProcessorInterface> $collected */
43
        $collected = new ResultCollected();
44
45
        foreach ($this->getResultCollectionReadable() as $item) {
46
            $collected->addResult($item);
47
        }
48
49
        foreach ($toAppendInstance->getResultCollectionReadable() as $item) {
50
            $collected->addResult($item);
51
        }
52
        /** @var ResultCollectedReadable<ResultProcessorInterface> */
53
        $resultCollectorReadableParser = new ResultCollectedReadable($collected);
54
        $this->resultCollectorReadableParser = $resultCollectorReadableParser;
55
    }
56
}
57