/** * Returns a Deserializer that can serialize Query objects. * * @since 1.0 * * @return Deserializer */ public function newQueryDeserializer() { $dispatchingDeserializer = new DispatchingDeserializer(); $dispatchingDeserializer->addDeserializer($this->newDescriptionDeserializer()); $dispatchingDeserializer->addDeserializer($this->newSelectionRequestDeserializer()); $dispatchingDeserializer->addDeserializer($this->newSortExpressionDeserializer()); $dispatchingDeserializer->addDeserializer($this->newQueryOptionsDeserializer()); return new QueryDeserializer($dispatchingDeserializer); }
protected function newQueryDeserializer() { $componentDeserializer = new DispatchingDeserializer(); $componentDeserializer->addDeserializer(new QueryOptionsDeserializer($componentDeserializer)); $dvDeserializer = new DataValueDeserializer(array('string' => 'DataValues\\StringValue')); $componentDeserializer->addDeserializer(new DescriptionDeserializer($dvDeserializer)); $componentDeserializer->addDeserializer(new SortExpressionDeserializer($dvDeserializer)); return new QueryDeserializer($componentDeserializer); }
public function testAddSerializer() { $deserializer = new DispatchingDeserializer(array()); $subDeserializer = $this->getMock('Deserializers\\DispatchableDeserializer'); $subDeserializer->expects($this->any())->method('isDeserializerFor')->will($this->returnValue(true)); $subDeserializer->expects($this->any())->method('deserialize')->will($this->returnValue(42)); $deserializer->addDeserializer($subDeserializer); $this->assertEquals(42, $deserializer->deserialize(null)); }
private function extractEntities(array $entries) { $entities = array(); foreach ($entries as $entry) { foreach ($entry as $entityId => $serialization) { if (array_key_exists('missing', $serialization)) { continue; } else { if ($this->deserializer->isDeserializerFor($serialization)) { $entities[$entityId] = $this->deserializer->deserialize($serialization); } } } } return $entities; }