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

ConsumerCallback::getMessageMapper()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 7
ccs 4
cts 4
cp 1
rs 9.4285
cc 2
eloc 4
nc 2
nop 0
crap 2
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