1 | <?php |
||
13 | class ModuleRequestDeserializer implements Deserializer { |
||
14 | |||
15 | /** |
||
16 | * @var Deserializer |
||
17 | */ |
||
18 | private $nodeDeserializer; |
||
19 | |||
20 | public function __construct(Deserializer $nodeDeserializer) { |
||
23 | |||
24 | /** |
||
25 | * @see Deserializer::serialize |
||
26 | */ |
||
27 | public function deserialize($serialization) { |
||
28 | if(!$this->isValidDeserialization($serialization)) { |
||
29 | throw new DeserializationException('The serialization is invalid!'); |
||
30 | } |
||
31 | |||
32 | return $this->getDeserialized($serialization); |
||
33 | } |
||
34 | |||
35 | private function getDeserialized($serialization) { |
||
36 | return new ModuleRequest( |
||
37 | $serialization['language'], |
||
38 | $this->nodeDeserializer->deserialize($serialization['tree']), |
||
39 | $serialization['id'], |
||
40 | array_key_exists('measures', $serialization) ? $serialization['measures'] : array(), |
||
41 | array_key_exists('trace', $serialization) ? $serialization['trace'] : array() |
||
42 | ); |
||
43 | } |
||
44 | |||
45 | private function isValidDeserialization($serialization) { |
||
51 | } |
||
52 |