1 | <?php |
||
18 | class ReferenceDeserializer implements DispatchableDeserializer { |
||
19 | |||
20 | /** |
||
21 | * @var Deserializer |
||
22 | */ |
||
23 | private $snaksDeserializer; |
||
24 | |||
25 | /** |
||
26 | * @param Deserializer $snaksDeserializer |
||
27 | */ |
||
28 | public function __construct( Deserializer $snaksDeserializer ) { |
||
31 | |||
32 | /** |
||
33 | * @see Deserializer::isDeserializerFor |
||
34 | * |
||
35 | * @param mixed $serialization |
||
36 | * |
||
37 | * @return bool |
||
38 | */ |
||
39 | public function isDeserializerFor( $serialization ) { |
||
42 | |||
43 | private function isValidSerialization( $serialization ) { |
||
46 | |||
47 | /** |
||
48 | * @see Deserializer::deserialize |
||
49 | * |
||
50 | * @param array $serialization |
||
51 | * |
||
52 | * @throws DeserializationException |
||
53 | * @return Reference |
||
54 | */ |
||
55 | public function deserialize( $serialization ) { |
||
56 | if ( !$this->isValidSerialization( $serialization ) ) { |
||
57 | throw new DeserializationException( 'The serialization is invalid' ); |
||
58 | } |
||
59 | |||
60 | return $this->getDeserialized( $serialization ); |
||
61 | } |
||
62 | |||
63 | /** |
||
64 | * @param array $serialization |
||
65 | * |
||
66 | * @return Reference |
||
67 | */ |
||
68 | private function getDeserialized( array $serialization ) { |
||
73 | |||
74 | /** |
||
75 | * @param array $serialization |
||
76 | * |
||
77 | * @return SnakList |
||
78 | */ |
||
79 | private function deserializeSnaks( array $serialization ) { |
||
90 | |||
91 | private function assertSnaksOrderIsArray( array $serialization ) { |
||
100 | |||
101 | } |
||
102 |