ConsumerCallback   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 1 Features 0
Metric Value
wmc 5
c 2
b 1
f 0
lcom 1
cbo 1
dl 0
loc 59
ccs 14
cts 14
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\AMQP;
4
5
use AMQPEnvelope;
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 6
    public function __construct(callable $callback, Queue $queue)
29
    {
30 6
        $this->callback = $callback;
31 6
        $this->queue = $queue;
32 6
    }
33
34
    /**
35
     * @param AMQPEnvelope $message
36
     * @return mixed
37
     * @throws \OutOfBoundsException
38
     */
39 4
    public function __invoke(AMQPEnvelope $message)
40
    {
41 4
        $convertedMessage = $this->getMessageMapper()->toMessage($message);
42 4
        return call_user_func($this->callback, $convertedMessage, $this->queue);
43
    }
44
45
    /**
46
     * @return MessageMapper
47
     */
48 5
    public function getMessageMapper()
49
    {
50 5
        if (!$this->messageMapper) {
51 1
            $this->messageMapper = new MessageMapper();
52
        }
53 5
        return $this->messageMapper;
54
    }
55
56
    /**
57
     * @param MessageMapper $messageMapper
58
     * @return $this
59
     */
60 6
    public function setMessageMapper($messageMapper)
61
    {
62 6
        $this->messageMapper = $messageMapper;
63 6
        return $this;
64
    }
65
}
66