HasResolverPipelineTrait::addCallPipeline()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 1
c 1
b 0
f 1
nc 1
nop 1
dl 0
loc 3
ccs 0
cts 2
cp 0
crap 2
rs 10
1
<?php
2
3
namespace Nip\Records\Locator\Resolver;
4
5
use League\Pipeline\InterruptibleProcessor;
6
use Nip\Records\Locator\Resolver\Commands\Command;
7
use Nip\Records\Locator\Resolver\Pipeline\PipelineBuilder;
8
use Nip\Records\Locator\Resolver\Pipeline\Stages\StageInterface;
9
use Psr\Http\Message\ResponseInterface;
10
11
/**
12
 * Trait HasResolverPipelineTrait
13
 * @package Nip\Records\Locator\Resolver
14
 */
15
trait HasResolverPipelineTrait
16
{
17
    /**
18
     * @var null|PipelineBuilder
19
     */
20
    protected $callPipelineBuilder = null;
21
22
    /**
23
     * @param Command $command
24
     * @return Command
25
     * @throws ForwardException
26
     */
27
    protected function processCommand(Command $command)
28
    {
29
        $pipeline = $this->buildCallPipeline();
30
        return $pipeline->process($command);
31
    }
32
33
    /**
34
     * @return \League\Pipeline\PipelineInterface|\League\Pipeline\Pipeline
35
     */
36 3
    protected function buildCallPipeline()
37
    {
38 3
        return $this->getCallPipelineBuilder()->build();
39
    }
40
41
    /**
42
     * @return PipelineBuilder
43
     */
44 3
    public function getCallPipelineBuilder()
45
    {
46 3
        if ($this->callPipelineBuilder === null) {
47 1
            $this->initCallPipeline();
48
        }
49 3
        return $this->callPipelineBuilder;
50
    }
51
52
    /**
53
     * @param StageInterface $stage
54
     */
55
    public function addCallPipeline(StageInterface $stage)
56
    {
57
        $this->getCallPipelineBuilder()->add($stage);
58
    }
59
60
    /**
61
     * @param PipelineBuilder $callPipelineBuilder
62
     */
63
    public function setCallPipelineBuilder(PipelineBuilder $callPipelineBuilder): void
64
    {
65
        $this->callPipelineBuilder = $callPipelineBuilder;
66
    }
67
68
69 1
    public function initCallPipeline()
70
    {
71 1
        $this->callPipelineBuilder = (new PipelineBuilder);
72 1
    }
73
}
74