ModuleResponseDeserializer   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Test Coverage

Coverage 94.44%

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 9
c 1
b 0
f 1
lcom 1
cbo 3
dl 0
loc 37
ccs 17
cts 18
cp 0.9444
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A deserialize() 0 7 2
A getDeserialized() 0 8 3
A isValidDeserialization() 0 5 3
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