ProcessorContainerTrait   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%
Metric Value
wmc 9
lcom 1
cbo 1
dl 0
loc 56
ccs 23
cts 23
cp 1
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A getProcessors() 0 6 1
A setProcessors() 0 5 1
A pushProcessor() 0 8 2
A applyProcessors() 0 6 2
A initProcessors() 0 6 3
1
<?php
2
3
namespace Oqq\Minc\Log\Processor;
4
5
use Oqq\Minc\Log\Record;
6
7
/**
8
 * @author Eric Braun <[email protected]>
9
 */
10
trait ProcessorContainerTrait
11
{
12
    /** @var \SplStack|ProcessorInterface[] */
13
    protected $processors;
14
15
    /**
16
     * @return ProcessorInterface[]
17
     */
18 16
    public function getProcessors()
19
    {
20 16
        $this->initProcessors();
21
22 16
        return $this->processors;
23
    }
24
25
    /**
26
     * @inheritdoc
27
     */
28 16
    public function setProcessors(array $processors)
29
    {
30 16
        $this->initProcessors(true);
31 16
        $this->pushProcessor(...$processors);
32 16
    }
33
34
    /**
35
     * @inheritdoc
36
     */
37 17
    public function pushProcessor(ProcessorInterface ...$processors)
38
    {
39 17
        $this->initProcessors();
40
41 17
        foreach ($processors as $processor) {
42 17
            $this->processors->push($processor);
43 17
        }
44 17
    }
45
46
    /**
47
     * @param Record $record
48
     */
49 13
    public function applyProcessors(Record $record)
50
    {
51 13
        foreach ($this->getProcessors() as $processor) {
52 13
            $processor->process($record);
53 13
        }
54 13
    }
55
56
    /**
57
     * @param bool $reset
58
     */
59 18
    protected function initProcessors($reset = false)
60
    {
61 18
        if ($reset || null === $this->processors) {
62 18
            $this->processors = new \SplStack();
63 18
        }
64 18
    }
65
}
66