SerializeAware   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 54.55%

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 1
dl 0
loc 39
ccs 6
cts 11
cp 0.5455
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A serialize() 0 7 2
A deserialize() 0 7 2
A setSerializer() 0 4 1
1
<?php
2
namespace Aeq\Hal\Serializer;
3
4
trait SerializeAware
5
{
6
    /**
7
     * @var SerializerInterface
8
     */
9
    private $serializer;
10
11
    /**
12
     * @param object|array $data
13
     * @return string
14
     */
15
    public function serialize($data)
16
    {
17
        if ($this->serializer instanceof SerializerInterface) {
18
            return $this->serializer->serialize($data);
19
        }
20
        throw new \LogicException(sprintf('no client adapter set for "%s"', __CLASS__), 1460016545);
21
    }
22
23
    /**
24
     * @param string $str
25
     * @return array
26
     */
27 5
    public function deserialize($str)
28
    {
29 5
        if ($this->serializer instanceof SerializerInterface) {
30 5
            return $this->serializer->deserialize($str);
31
        }
32
        throw new \LogicException(sprintf('no client adapter set for "%s"', __CLASS__), 1460016579);
33
    }
34
35
    /**
36
     * @param SerializerInterface $serializer
37
     */
38 6
    public function setSerializer(SerializerInterface $serializer)
39
    {
40 6
        $this->serializer = $serializer;
41 6
    }
42
}
43