IncomingLogicalMessageFactory   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 2
dl 0
loc 29
ccs 7
cts 7
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A create() 0 5 1
A createFromObject() 0 8 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