/** * @since 2.4 * * @return array */ public function getFilteredIdList() { $start = microtime(true); $combinedChangedEntityList = array_flip($this->compositePropertyTableDiffIterator->getCombinedIdListOfChangedEntities()); $affiliateEntityList = array(); $tableChangeOps = $this->compositePropertyTableDiffIterator->getTableChangeOps(); foreach ($tableChangeOps as $tableChangeOp) { $this->applyFilterToTableChangeOp($tableChangeOp, $affiliateEntityList, $combinedChangedEntityList); } $filteredIdList = array_merge(array_keys($combinedChangedEntityList), array_keys($affiliateEntityList)); wfDebugLog('smw', __METHOD__ . ' procTime (sec): ' . round(microtime(true) - $start, 6)); return $filteredIdList; }
/** * @dataProvider diffDataProvider */ public function testDiff($list, $fixedPropertyRecord, $expectedOrdered, $expectedList) { $instance = new CompositePropertyTableDiffIterator($list); $instance->addFixedPropertyRecord($fixedPropertyRecord[0], $fixedPropertyRecord[1]); $this->assertEquals($expectedOrdered, $instance->getOrderedDiffByTable()); $this->assertEquals($expectedList, $instance->getCombinedIdListOfChangedEntities()); }
/** * @since 2.3 * * @param CompositePropertyTableDiffIterator $compositePropertyTableDiffIterator */ public function buildParserCachePurgeJobParametersFrom(CompositePropertyTableDiffIterator $compositePropertyTableDiffIterator) { if (!$this->isEnabled()) { return array(); } return array('idlist' => $compositePropertyTableDiffIterator->getCombinedIdListOfChangedEntities()); }
/** * @since 2.3 * * @param CompositePropertyTableDiffIterator $compositePropertyTableDiffIterator * @param array $propertyDependencyDetectionBlacklist * * @return array */ public function buildParserCachePurgeJobParametersFrom(CompositePropertyTableDiffIterator $compositePropertyTableDiffIterator, array $propertyDependencyDetectionBlacklist) { if (!$this->isEnabled()) { return array(); } $mapCombinedIdListOfChangedEntities = array_flip($compositePropertyTableDiffIterator->getCombinedIdListOfChangedEntities()); $mapPropertyDependencyDetectionBlacklist = array_flip($propertyDependencyDetectionBlacklist); foreach ($compositePropertyTableDiffIterator->getFixedPropertyRecords() as $table => $record) { if (!isset($mapPropertyDependencyDetectionBlacklist[$record['key']])) { continue; } $this->removeBlacklistedPropertyReferencesFromParserCachePurgeJobChangeList($compositePropertyTableDiffIterator, $mapCombinedIdListOfChangedEntities, $table, $record); } return array('idlist' => array_keys($mapCombinedIdListOfChangedEntities)); }