ModuleResponseDeserializer::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 3
ccs 3
cts 3
cp 1
rs 10
cc 1
eloc 2
nc 1
nop 1
crap 1
1
<?php
2
3
namespace PPP\Module\DataModel\Deserializers;
4
5
use Deserializers\Deserializer;
6
use Deserializers\Exceptions\DeserializationException;
7
use PPP\Module\DataModel\ModuleResponse;
8
9
/**
10
 * @licence MIT
11
 * @author Thomas Pellissier Tanon
12
 */
13
class ModuleResponseDeserializer implements Deserializer {
14
15
	/**
16
	 * @var Deserializer
17
	 */
18
	private $nodeDeserializer;
19
20 1
	public function __construct(Deserializer $nodeDeserializer) {
21 1
		$this->nodeDeserializer = $nodeDeserializer;
22 1
	}
23
	
24
	/**
25
	 * @see Deserializer::serialize
26
	 */
27 1
	public function deserialize($serialization) {
28 1
		if(!$this->isValidDeserialization($serialization)) {
29
			throw new DeserializationException('The serialization is invalid!');
30
		}
31
32 1
		return $this->getDeserialized($serialization);
33
	}
34
35 1
	private function getDeserialized($serialization) {
36 1
		return new ModuleResponse(
37 1
			$serialization['language'],
38 1
			$this->nodeDeserializer->deserialize($serialization['tree']),
39 1
			array_key_exists('measures', $serialization) ? $serialization['measures'] : array(),
40 1
			array_key_exists('trace', $serialization) ? $serialization['trace'] : array()
41 1
		);
42
	}
43
44 1
	private function isValidDeserialization($serialization) {
45 1
		return is_array($serialization) &&
46 1
			array_key_exists('language', $serialization) &&
47 1
			array_key_exists('tree', $serialization);
48
	}
49
}
50