OutgoingLogicalMessage::getMessageClass()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 1
1
<?php
2
namespace PSB\Core\Pipeline\Outgoing;
3
4
5
use PSB\Core\Exception\InvalidArgumentException;
6
7
class OutgoingLogicalMessage
8
{
9
    /**
10
     * @var object
11
     */
12
    private $messageInstance;
13
14
    /**
15
     * @var string
16
     */
17
    private $messageClass;
18
19
    /**
20
     * @param object $messageInstance
21
     * @param string $messageClass
22
     */
23 12
    public function __construct($messageInstance, $messageClass = null)
24
    {
25 12
        $this->assertObject($messageInstance);
26
27 11
        $this->messageInstance = $messageInstance;
28 11
        $this->messageClass = $messageClass;
29 11
        if ($messageClass === null || $messageClass === '') {
30 10
            $this->messageClass = get_class($messageInstance);
31
        }
32 11
    }
33
34
    /**
35
     * @return object
36
     */
37 2
    public function getMessageInstance()
38
    {
39 2
        return $this->messageInstance;
40
    }
41
42
    /**
43
     * @return string
44
     */
45 3
    public function getMessageClass()
46
    {
47 3
        return $this->messageClass;
48
    }
49
50
    /**
51
     * @param object $messageInstance
52
     */
53 2
    public function updateInstance($messageInstance)
54
    {
55 2
        $this->assertObject($messageInstance);
56
57 1
        $this->messageInstance = $messageInstance;
58 1
        $this->messageClass = get_class($messageInstance);
59 1
    }
60
61
    /**
62
     * @param mixed $messageInstance
63
     */
64 12
    private function assertObject($messageInstance)
65
    {
66 12
        if (!is_object($messageInstance)) {
67 2
            throw new InvalidArgumentException('Message instance must be an object.');
68
        }
69 11
    }
70
}
71