Beispiel #1
0
 public function testAddPropertyValue()
 {
     $instance = new SemanticData(DIWikiPage::newFromTitle(Title::newFromText(__METHOD__)));
     $instance->addPropertyValue('addPropertyValue', DIWikiPage::doUnserialize('Foo#0#'));
     $key = Localizer::getInstance()->getNamespaceTextById(SMW_NS_PROPERTY) . ':' . 'addPropertyValue';
     $expected = array('propertyCount' => 1, 'propertyLabels' => array($key), 'propertyValues' => array('Foo'));
     $this->semanticDataValidator->assertThatPropertiesAreSet($expected, $instance);
 }
 /**
  * @see Deserializers::deserialize
  *
  * @since 1.9
  *
  * @return SemanticData
  * @throws OutOfBoundsException
  */
 public function deserialize($data)
 {
     $semanticData = null;
     if (isset($data['version']) && $data['version'] !== 0.1) {
         throw new OutOfBoundsException('Serializer/Unserializer version do not match, please update your data');
     }
     if (isset($data['subject'])) {
         $semanticData = new SemanticData(DIWikiPage::doUnserialize($data['subject']));
     }
     if (!$this->isDeserializerFor($semanticData)) {
         throw new OutOfBoundsException('SemanticData could not be created probably due to a missing subject');
     }
     $this->unserializeSemanticData($data, $semanticData);
     return $semanticData;
 }
 /**
  * @since 2.2
  *
  * @return DIWikiPage[]
  */
 public function getExpectedSubjects()
 {
     $subjects = array();
     if (!isset($this->contents['queryresult']['results'])) {
         return $subjects;
     }
     foreach ($this->contents['queryresult']['results'] as $hashName) {
         $subjects[] = DIWikiPage::doUnserialize(str_replace(' ', '_', $hashName));
     }
     return $subjects;
 }
 private function createUpdateJobsFromListBySecondaryRun(array $listOfSubjects)
 {
     $subjects = array_keys($listOfSubjects);
     // We are confident that as this point we only have valid, non-duplicate
     // subjects in the list and therefore can be deserialized without any
     // extra validation
     foreach ($subjects as $subject) {
         $this->jobs[] = new UpdateJob(DIWikiPage::doUnserialize($subject)->getTitle());
     }
     $this->pushToJobQueue();
     return true;
 }
 private function newQueryResultFromCache($queryId, $query, $container)
 {
     $results = array();
     $this->transientStatsdCollector->incr($query->getContextPage() !== null ? 'hits.embedded' : 'hits.nonEmbedded');
     $this->transientStatsdCollector->calcMedian('medianRetrievalResponseTime.cached', round(microtime(true) - $this->start, 5));
     foreach ($container->get('results') as $hash) {
         $results[] = DIWikiPage::doUnserialize($hash);
     }
     $queryResult = $this->queryFactory->newQueryResult($this->store, $query, $results, $container->get('continue'));
     $queryResult->setCountValue($container->get('count'));
     $queryResult->setFromCache(true);
     $time = round(microtime(true) - $this->start, 5);
     $this->log(__METHOD__ . ' (sec): ' . $time . " ({$queryId})");
     return $queryResult;
 }