Пример #1
0
 /**
  * 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);
 }
Пример #2
0
 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));
 }
Пример #4
0
 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;
 }