private function doResolveAntecedentHierarchyRecursively(DIWikiPage $subject, array $propertySearchPattern, RequestOptions $requestOptions, $currentDepth = 0) { $dataItem = null; if ($propertySearchPattern === array()) { return null; } $property = array_shift($propertySearchPattern); $propertyValues = $this->store->getPropertyValues($subject, DIProperty::newFromUserLabel($property), $requestOptions); if ($propertyValues === array()) { return null; } foreach ($propertyValues as $value) { if (!$value instanceof DIWikiPage || $subject->equals($value)) { continue; } // A flat display can only display one parent in its hierarchy $dataItem = $value; break; } if ($dataItem === null) { return null; } $this->antecedentHierarchyLinks[] = $dataItem; $currentDepth++; return $this->doResolveAntecedentHierarchyRecursively($dataItem, $propertySearchPattern, $requestOptions, $currentDepth); }
/** * Compare and find changes related to conversion factor * * @since 1.9 */ protected function compareConversionTypedFactors() { Profiler::In(__METHOD__, true); $pconversion = new DIProperty(DIProperty::TYPE_CONVERSION); $newfactors = $this->semanticData->getPropertyValues($pconversion); $oldfactors = $this->store->getPropertyValues($this->semanticData->getSubject(), $pconversion); $this->notifyUpdateDispatcher(!$this->isEqual($oldfactors, $newfactors)); Profiler::Out(__METHOD__, true); }