ResourceListNodeDeserializer::deserialize()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 5
c 0
b 0
f 0
ccs 3
cts 3
cp 1
rs 9.4285
nc 1
cc 1
eloc 3
nop 1
crap 1
1
<?php
2
3
namespace PPP\DataModel\Deserializers;
4
5
use Deserializers\Deserializer;
6
use Deserializers\TypedObjectDeserializer;
7
use PPP\DataModel\ResourceListNode;
8
9
/**
10
 * @licence AGPLv3+
11
 * @author Thomas Pellissier Tanon
12
 */
13
class ResourceListNodeDeserializer extends TypedObjectDeserializer {
14
15
	/**
16
	 * @var Deserializer
17
	 */
18
	private $resourceDeserializer;
19
20
	/**
21
	 * @param Deserializer $resourceDeserializer
22
	 */
23 7
	public function __construct(Deserializer $resourceDeserializer) {
24 7
		$this->resourceDeserializer = $resourceDeserializer;
25
26 7
		parent::__construct('list', 'type');
27 7
	}
28
29
	/**
30
	 * @see Deserializer::deserialize
31
	 */
32 3
	public function deserialize($serialization) {
33 3
		$this->assertCanDeserialize($serialization);
34
35 1
		return $this->getDeserialization($serialization);
36
	}
37
38 1
	private function getDeserialization(array $serialization) {
39 1
		$this->requireAttribute($serialization, 'list');
40 1
		$this->assertAttributeIsArray($serialization, 'list');
41
42 1
		$list = array();
43 1
		foreach($serialization['list'] as $resourceSerialization) {
44 1
			$list[] = $this->resourceDeserializer->deserialize($resourceSerialization);
45 1
		}
46
47 1
		return new ResourceListNode($list);
48
	}
49
}
50