public function testCanConstructMappingIterator()
 {
     $instance = new IteratorFactory();
     $iterator = $this->getMockBuilder('\\Iterator')->disableOriginalConstructor()->getMock();
     $this->assertInstanceOf('\\SMW\\Iterators\\MappingIterator', $instance->newMappingIterator($iterator, function () {
     }));
 }
 /**
  * @since 2.3
  *
  * @param array $idList
  *
  * @return DIWikiPage[]
  */
 public function getDataItemPoolHashListFor(array $idList)
 {
     $rows = $this->connection->select(\SMWSQLStore3::ID_TABLE, array('smw_title', 'smw_namespace', 'smw_iw', 'smw_subobject'), array('smw_id' => $idList), __METHOD__);
     $resultIterator = $this->iteratorFactory->newResultIterator($rows);
     $mappingIterator = $this->iteratorFactory->newMappingIterator($resultIterator, function ($row) {
         return HashBuilder::createHashIdFromSegments($row->smw_title, $row->smw_namespace, $row->smw_iw, $row->smw_subobject);
     });
     return $mappingIterator;
 }
 private function newResultIterator(DIWikiPage $subject)
 {
     $connection = $this->store->getConnection('mw.db');
     $dbKey = $subject->getDBkey();
     // #1955 Ensure to match a possible predefined property
     // (Modification date -> _MDAT)
     if ($subject->getNamespace() === SMW_NS_PROPERTY) {
         $dbKey = DIProperty::newFromUserLabel($subject->getDBkey())->getKey();
     }
     $condition = 'smw_title = ' . $connection->addQuotes($dbKey) . ' AND ' . 'smw_namespace = ' . $connection->addQuotes($subject->getNamespace()) . ' AND ' . 'smw_iw = ' . $connection->addQuotes($subject->getInterwiki()) . ' AND ' . 'smw_subobject != ' . $connection->addQuotes('');
     foreach ($this->skipOn as $skipOn) {
         $condition .= ' AND smw_subobject != ' . $connection->addQuotes($skipOn);
     }
     $res = $connection->select($connection->tablename(SQLStore::ID_TABLE), array('smw_id', 'smw_subobject', 'smw_sortkey'), $condition, __METHOD__);
     return $this->iteratorFactory->newResultIterator($res);
 }