コード例 #1
0
 protected function getDescriptionValueSerialization(Description $description)
 {
     if ($description instanceof AnyValue) {
         return array();
     }
     if ($description instanceof SomeProperty) {
         return array('property' => $description->getPropertyId()->toArray(), 'description' => $this->serialize($description->getSubDescription()), 'isSubProperty' => $description->isSubProperty());
     }
     if ($description instanceof ValueDescription) {
         return array('value' => $description->getValue()->toArray(), 'comparator' => $this->getStringForComparator($description->getComparator()));
     }
     if ($description instanceof DescriptionCollection) {
         $serializationMethod = array($this, 'serialize');
         return array('descriptions' => array_map(function (Description $description) use($serializationMethod) {
             return call_user_func($serializationMethod, $description);
         }, $description->getDescriptions()));
     }
     throw new UnsupportedObjectException($description);
 }