IncomingLogicalMessageFactory::create()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 5
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
crap 1
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