Passed
Pull Request — master (#29)
by Nicolas
02:56
created

MessageProcessorAware::onPublish()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 10
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 3

Importance

Changes 0
Metric Value
dl 0
loc 10
ccs 8
cts 8
cp 1
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 4
nc 3
nop 1
crap 3
1
<?php
2
3
namespace Puzzle\AMQP\Clients\Processors;
4
5
use Puzzle\AMQP\Messages\Processor;
6
use Puzzle\AMQP\WritableMessage;
7
use Puzzle\AMQP\Messages\OnPublishProcessor;
8
use Puzzle\AMQP\ReadableMessage;
9
use Puzzle\AMQP\Messages\OnConsumeProcessor;
10
11
trait MessageProcessorAware
12
{
13
    private
14
        $messageProcessors = [];
15
    
16 2
    public function setMessageProcessors(array $processors)
17
    {
18 2
        $this->messageProcessors = [];
19
20 2
        foreach($processors as $processor)
21
        {
22 2
            if($processor instanceof Processor)
23 2
            {
24 2
                $this->appendMessageProcessor($processor);
25 2
            }
26 2
        }
27
28 2
        return $this;
29
    }
30
31 6
    public function appendMessageProcessor(Processor $processor)
32
    {
33 6
        $this->messageProcessors[] = $processor;
34
        
35 6
        return $this;
36
    }
37
    
38 13
    private function onPublish(WritableMessage $message)
39
    {
40 13
        foreach($this->messageProcessors as $messageProcessor)
41
        {
42 5
            if($messageProcessor instanceof OnPublishProcessor)
43 5
            {
44 2
                $messageProcessor->onPublish($message);
45 2
            }
46 13
        }
47 13
    }
48
49 2
    private function onConsume(ReadableMessage $message)
50
    {
51 2
        foreach(array_reverse($this->messageProcessors) as $messageProcessor)
52
        {
53 1
            if($messageProcessor instanceof OnConsumeProcessor)
54 1
            {
55 1
                $message = $messageProcessor->onConsume($message);
56 1
            }
57 2
        }
58
59 2
        return $message;
60
    }
61
}
62