private function doFindClosestDescendantByInverseLink(DIWikiPage $subject, array $propertySearchPattern, RequestOptions $requestOptions)
 {
     $property = array_shift($propertySearchPattern);
     $property = DIProperty::newFromUserLabel($property);
     if ($property->findPropertyTypeId() !== '_wpg') {
         return;
     }
     $children = $this->store->getPropertySubjects($property, $subject, $requestOptions);
     foreach ($children as $dataItem) {
         // A flat display can only display one child
         if ($this->closestDescendantLinks !== array()) {
             break;
         }
         if ($subject->equals($dataItem)) {
             continue;
         }
         $this->closestDescendantLinks[] = $dataItem;
     }
 }
 private function assertInProperties(DIWikiPage $subject, array $semanticdata, $about)
 {
     if (!isset($semanticdata['inproperty-keys'])) {
         return;
     }
     $inProperties = $this->store->getInProperties($subject);
     $this->assertCount(count($semanticdata['inproperty-keys']), $inProperties, 'Failed asserting count for "inproperty-keys" in ' . $about . ' ' . implode(',', $inProperties));
     $inpropertyValues = array();
     foreach ($inProperties as $property) {
         $this->assertContains($property->getKey(), $semanticdata['inproperty-keys'], 'Failed asserting key for "inproperty-keys" in ' . $about);
         if (!isset($semanticdata['inproperty-values'])) {
             continue;
         }
         $values = $this->store->getPropertySubjects($property, $subject);
         foreach ($values as $value) {
             $inpropertyValues[] = $value->getSerialization();
         }
     }
     foreach ($inpropertyValues as $value) {
         $this->assertContains($value, $semanticdata['inproperty-values'], 'Failed asserting values for "inproperty-values" in ' . $about);
     }
 }
 protected function addUpdateJobsForPropertyWithTypeError()
 {
     $subjects = $this->store->getPropertySubjects(new DIProperty(DIProperty::TYPE_ERROR), DIWikiPage::newFromTitle($this->getTitle()));
     $this->addUniqueUpdateJobs($subjects);
 }