Completed
Push — master ( f55883...4285c1 )
by Thomas Mauro
13:12 queued 10:06
created

ConsumerCallback   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 5
c 1
b 0
f 0
lcom 1
cbo 1
dl 0
loc 58
ccs 15
cts 15
cp 1
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A __invoke() 0 5 1
A getMessageMapper() 0 7 2
A setMessageMapper() 0 5 1
1
<?php
2
3
namespace AMQPAL\Adapter\PhpAmqpLib;
4
5
use PhpAmqpLib\Message\AMQPMessage;
6
7
class ConsumerCallback
8
{
9
    /**
10
     * @var callable
11
     */
12
    protected $callback;
13
    /**
14
     * @var Queue
15
     */
16
    protected $queue;
17
    /**
18
     * @var MessageMapper
19
     */
20
    protected $messageMapper;
21
22
    /**
23
     * ConsumerCallback constructor.
24
     *
25
     * @param callable $callback
26
     * @param Queue    $queue
27
     */
28 5
    public function __construct(callable $callback, Queue $queue)
29
    {
30 5
        $this->callback = $callback;
31 5
        $this->queue = $queue;
32 5
    }
33
34
    /**
35
     * @param AMQPMessage $message
36
     * @throws \OutOfBoundsException
37
     */
38 1
    public function __invoke(AMQPMessage $message)
39
    {
40 1
        $convertedMessage = $this->getMessageMapper()->toMessage($message);
41 1
        call_user_func($this->callback, $convertedMessage, $this->queue);
42 1
    }
43
44
    /**
45
     * @return MessageMapper
46
     */
47 2
    public function getMessageMapper()
48
    {
49 2
        if (!$this->messageMapper) {
50 1
            $this->messageMapper = new MessageMapper();
51
        }
52 2
        return $this->messageMapper;
53
    }
54
55
    /**
56
     * @param MessageMapper $messageMapper
57
     * @return $this
58
     */
59 5
    public function setMessageMapper($messageMapper)
60
    {
61 5
        $this->messageMapper = $messageMapper;
62 5
        return $this;
63
    }
64
}
65