IncomingLogicalMessageFactory::createFromObject()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 8
ccs 4
cts 4
cp 1
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 1
crap 2
1
<?php
2
namespace PSB\Core\Pipeline\Incoming;
3
4
5
use PSB\Core\Exception\InvalidArgumentException;
6
7
class IncomingLogicalMessageFactory
8
{
9
    /**
10
     * @param string $messageClass
11
     * @param object $message
12
     *
13
     * @return IncomingLogicalMessage
14
     */
15 3
    private function create($messageClass, $message)
16
    {
17 3
        $interfaces = array_values(class_implements($messageClass, true));
18 3
        return new IncomingLogicalMessage($message, $messageClass, $interfaces);
19
    }
20
21
    /**
22
     * @param object $message
23
     *
24
     * @return IncomingLogicalMessage
25
     * @throws InvalidArgumentException
26
     */
27 4
    public function createFromObject($message)
28
    {
29 4
        if (!is_object($message)) {
30 1
            throw new InvalidArgumentException('Message must be an object.');
31
        }
32
33 3
        return $this->create(get_class($message), $message);
34
    }
35
}
36