MessageMapper::getMessagePrototype()   A
last analyzed

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\AMQP;
4
5
use AMQPEnvelope;
6
use AMQPAL\Adapter\Message;
7
use DateTime;
8
9
class MessageMapper
10
{
11
    /**
12
     * @var Message
13
     */
14
    protected $messagePrototype;
15
16
    /**
17
     * @return Message
18
     */
19 7
    public function getMessagePrototype()
20
    {
21 7
        if (!$this->messagePrototype) {
22 6
            $this->messagePrototype = new Message();
23
        }
24 7
        return $this->messagePrototype;
25
    }
26
27
    /**
28
     * @param Message $messagePrototype
29
     * @return $this
30
     */
31 2
    public function setMessagePrototype(Message $messagePrototype)
32
    {
33 2
        $this->messagePrototype = $messagePrototype;
34 2
        return $this;
35
    }
36
37
    /**
38
     * @param AMQPEnvelope $libMessage
39
     * @return Message
40
     */
41 6
    public function toMessage(AMQPEnvelope $libMessage)
42
    {
43 6
        $message = clone $this->getMessagePrototype();
44 6
        $message->setBody($libMessage->getBody());
45 6
        $message->setRoutingKey($libMessage->getRoutingKey());
46 6
        $message->setDeliveryTag($libMessage->getDeliveryTag());
47 6
        $message->setDeliveryMode($libMessage->getDeliveryMode());
48 6
        $message->setExchangeName($libMessage->getExchangeName());
49 6
        $message->setRedelivered($libMessage->isRedelivery());
50 6
        $message->setContentType($libMessage->getContentType());
51 6
        $message->setContentEncoding($libMessage->getContentEncoding());
52 6
        $message->setType($libMessage->getType());
53 6
        $message->setDateTime(
54 6
            (int)$libMessage->getTimestamp() ? (new \DateTime())->setTimestamp($libMessage->getTimestamp()) : null
55
        );
56 6
        $message->setPriority($libMessage->getPriority());
57 6
        $expiration = $libMessage->getExpiration();
58 6
        $message->setExpiration(!empty($expiration) ? new \DateTime($libMessage->getExpiration()) : null);
59 6
        $message->setUserId($libMessage->getUserId());
60 6
        $message->setAppId($libMessage->getAppId());
61 6
        $message->setMessageId($libMessage->getMessageId());
62 6
        $message->setReplyTo($libMessage->getReplyTo());
63 6
        $message->setCorrelationId($libMessage->getCorrelationId());
64 6
        $message->setHeaders($libMessage->getHeaders());
65
66 6
        return $message;
67
    }
68
}
69