Thiemo Mättig (WMDE) has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/232693

Change subject: Replace Iterator with Traversable and replace <Generics>
......................................................................

Replace Iterator with Traversable and replace <Generics>

This fixes two issues:

* The relevant interface is the traversable interface. Even functions
like iterator_to_array do not type hint against Iterator but against
Traversable.

* Type<Type> is not a valid type hint. This is not Java. My PHPStorm
for example completely ignores this. It needs a space.

Change-Id: I5a2e3569ae0a8f5cfaa969b2e4842718ba0d73e1
---
M client/includes/Changes/AffectedPagesFinder.php
M client/includes/Usage/NullUsageTracker.php
M client/includes/Usage/SiteLinkUsageLookup.php
M client/includes/Usage/Sql/EntityUsageTable.php
M client/includes/Usage/Sql/SqlUsageTracker.php
M client/includes/Usage/UsageLookup.php
M client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php
M client/tests/phpunit/includes/Usage/SiteLinkUsageLookupTest.php
M lib/includes/store/sql/TermSqlIndex.php
M repo/includes/Dumpers/DumpGenerator.php
M repo/includes/store/sql/EntityPerPageTable.php
11 files changed, 32 insertions(+), 30 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/93/232693/1

diff --git a/client/includes/Changes/AffectedPagesFinder.php 
b/client/includes/Changes/AffectedPagesFinder.php
index 3ec8073..18d2527 100644
--- a/client/includes/Changes/AffectedPagesFinder.php
+++ b/client/includes/Changes/AffectedPagesFinder.php
@@ -9,8 +9,8 @@
 use Diff\DiffOp\DiffOpChange;
 use Diff\DiffOp\DiffOpRemove;
 use InvalidArgumentException;
-use Iterator;
 use Title;
+use Traversable;
 use UnexpectedValueException;
 use Wikibase\Change;
 use Wikibase\Client\Store\TitleFactory;
@@ -106,7 +106,7 @@
         *
         * @param Change $change
         *
-        * @return Iterator of PageEntityUsage
+        * @return Traversable of PageEntityUsage
         */
        public function getAffectedUsagesByPage( Change $change ) {
                if ( $change instanceof EntityChange ) {
@@ -114,7 +114,7 @@
                        return $this->filterUpdates( $usages );
                }
 
-               return new \ArrayIterator();
+               return new ArrayIterator();
        }
 
        /**
@@ -178,7 +178,7 @@
         *
         * @param EntityChange $change
         *
-        * @return Iterator<PageEntityUsages>
+        * @return Traversable of PageEntityUsages
         */
        private function getAffectedPages( EntityChange $change ) {
                $entityId = $change->getEntityId();
@@ -276,9 +276,9 @@
         * Filters updates based on namespace. This removes duplicates, 
non-existing pages, and pages from
         * namespaces that are not considered "enabled" by the namespace 
checker.
         *
-        * @param PageEntityUsages[]|Iterator<PageEntityUsages> $updates
+        * @param PageEntityUsages[]|Traversable $usages
         *
-        * @return Iterator<PageEntityUsages>
+        * @return Traversable of PageEntityUsages
         */
        private function filterUpdates( $usages ) {
                $titlesToUpdate = array();
diff --git a/client/includes/Usage/NullUsageTracker.php 
b/client/includes/Usage/NullUsageTracker.php
index 893efc9..92c38de 100644
--- a/client/includes/Usage/NullUsageTracker.php
+++ b/client/includes/Usage/NullUsageTracker.php
@@ -3,7 +3,7 @@
 namespace Wikibase\Client\Usage;
 
 use ArrayIterator;
-use Iterator;
+use Traversable;
 use Wikibase\DataModel\Entity\EntityId;
 
 /**
@@ -74,7 +74,7 @@
         * @param EntityId[] $entities
         * @param string[] $aspects
         *
-        * @return Iterator<PageEntityUsages>
+        * @return Traversable of PageEntityUsages
         */
        public function getPagesUsing( array $entities, array $aspects = 
array() ) {
                return new ArrayIterator( array() );
diff --git a/client/includes/Usage/SiteLinkUsageLookup.php 
b/client/includes/Usage/SiteLinkUsageLookup.php
index afe3582..8444d9d 100644
--- a/client/includes/Usage/SiteLinkUsageLookup.php
+++ b/client/includes/Usage/SiteLinkUsageLookup.php
@@ -4,7 +4,7 @@
 
 use ArrayIterator;
 use InvalidArgumentException;
-use Iterator;
+use Traversable;
 use Wikibase\Client\Store\TitleFactory;
 use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Entity\ItemId;
@@ -81,7 +81,7 @@
         * @param string[] $aspects Which aspects to consider (if omitted, all 
aspects are considered).
         * Use the EntityUsage::XXX_USAGE constants to represent aspects.
         *
-        * @return Iterator<PageEntityUsages>
+        * @return Traversable of PageEntityUsages
         * @throws UsageTrackerException
         */
        public function getPagesUsing( array $entityIds, array $aspects = 
array() ) {
diff --git a/client/includes/Usage/Sql/EntityUsageTable.php 
b/client/includes/Usage/Sql/EntityUsageTable.php
index a9ccdd9..5f856ea 100644
--- a/client/includes/Usage/Sql/EntityUsageTable.php
+++ b/client/includes/Usage/Sql/EntityUsageTable.php
@@ -5,7 +5,7 @@
 use ArrayIterator;
 use DatabaseBase;
 use InvalidArgumentException;
-use Iterator;
+use Traversable;
 use Wikibase\Client\Usage\EntityUsage;
 use Wikibase\Client\Usage\PageEntityUsages;
 use Wikibase\DataModel\Entity\EntityId;
@@ -235,7 +235,7 @@
        }
 
        /**
-        * @param array|Iterator $rows
+        * @param array|Traversable $rows
         *
         * @return EntityUsage[]
         */
@@ -325,7 +325,7 @@
         * @param EntityId[] $entityIds
         * @param string[] $aspects
         *
-        * @return Iterator<PageEntityUsages> An iterator over entity usages 
grouped by page
+        * @return Traversable A traversable over PageEntityUsages grouped by 
page
         */
        public function getPagesUsing( array $entityIds, array $aspects = 
array() ) {
                if ( empty( $entityIds ) ) {
@@ -353,7 +353,7 @@
        }
 
        /**
-        * @param array|Iterator $rows
+        * @param array|Traversable $rows
         *
         * @return PageEntityUsages[]
         */
@@ -428,7 +428,7 @@
        /**
         * Returns an array of values extracted from the $key property from 
each object.
         *
-        * @param array|Iterator $objects
+        * @param array|Traversable $objects
         * @param string $key
         *
         * @return array
diff --git a/client/includes/Usage/Sql/SqlUsageTracker.php 
b/client/includes/Usage/Sql/SqlUsageTracker.php
index 34356dc..8434bda 100644
--- a/client/includes/Usage/Sql/SqlUsageTracker.php
+++ b/client/includes/Usage/Sql/SqlUsageTracker.php
@@ -7,7 +7,7 @@
 use DBError;
 use Exception;
 use InvalidArgumentException;
-use Iterator;
+use Traversable;
 use Wikibase\Client\Store\Sql\ConsistentReadConnectionManager;
 use Wikibase\Client\Usage\EntityUsage;
 use Wikibase\Client\Usage\UsageLookup;
@@ -243,7 +243,7 @@
         * @param EntityId[] $entityIds
         * @param string[] $aspects
         *
-        * @return Iterator<PageEntityUsages> An iterator over entity usages 
grouped by page
+        * @return Traversable A traversable over PageEntityUsages grouped by 
page
         * @throws UsageTrackerException
         */
        public function getPagesUsing( array $entityIds, array $aspects = 
array() ) {
diff --git a/client/includes/Usage/UsageLookup.php 
b/client/includes/Usage/UsageLookup.php
index 79a5c16..e98373e 100644
--- a/client/includes/Usage/UsageLookup.php
+++ b/client/includes/Usage/UsageLookup.php
@@ -2,7 +2,7 @@
 
 namespace Wikibase\Client\Usage;
 
-use Iterator;
+use Traversable;
 use Wikibase\DataModel\Entity\EntityId;
 
 /**
@@ -32,7 +32,7 @@
         * @param string[] $aspects Which aspects to consider (if omitted, all 
aspects are considered).
         * Use the EntityUsage::XXX_USAGE constants to represent aspects.
         *
-        * @return Iterator<PageEntityUsages> An iterator over PageEntityUsages 
of pages using any of the given entities.
+        * @return Traversable A traversable over PageEntityUsages of pages 
using any of the given entities.
         *         If $aspects is given, only usages of these aspects are 
included in the result.
         * @throws UsageTrackerException
         */
diff --git a/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php 
b/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php
index a0d4b1d..5daeb3b 100644
--- a/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php
+++ b/client/tests/phpunit/includes/Changes/AffectedPagesFinderTest.php
@@ -4,6 +4,7 @@
 
 use ArrayIterator;
 use Title;
+use Traversable;
 use Wikibase\Client\Changes\AffectedPagesFinder;
 use Wikibase\Client\Store\TitleFactory;
 use Wikibase\Client\Usage\EntityUsage;
@@ -522,7 +523,7 @@
        }
 
        /**
-        * @param PageEntityUsages[]|Iterator<PageEntityUsages> $usagesPerPage
+        * @param PageEntityUsages[]|Traversable $usagesPerPage
         *
         * @return PageEntityUsages[]
         */
diff --git a/client/tests/phpunit/includes/Usage/SiteLinkUsageLookupTest.php 
b/client/tests/phpunit/includes/Usage/SiteLinkUsageLookupTest.php
index 7ce322d..3a4c9a0 100644
--- a/client/tests/phpunit/includes/Usage/SiteLinkUsageLookupTest.php
+++ b/client/tests/phpunit/includes/Usage/SiteLinkUsageLookupTest.php
@@ -105,13 +105,13 @@
                $lookup = $this->getUsageLookup( $links, $titleFactory );
 
                $actual = $lookup->getPagesUsing( array( $q42, $p11 ) );
-               $this->assertInstanceOf( 'Iterator', $actual );
+               $this->assertInstanceOf( 'Traversable', $actual );
 
                $actual = iterator_to_array( $actual );
                $this->assertEmpty( $actual );
 
                $actual = $lookup->getPagesUsing( array( $q23 ), array( 
EntityUsage::OTHER_USAGE ) );
-               $this->assertInstanceOf( 'Iterator', $actual );
+               $this->assertInstanceOf( 'Traversable', $actual );
 
                $actual = iterator_to_array( $actual );
                $usages = $actual[0]->getUsages();
@@ -119,7 +119,7 @@
                $this->assertEquals( $q23, $usage->getEntityId() );
 
                $actual = $lookup->getPagesUsing( array( $q42, $q23, $p11 ) );
-               $this->assertInstanceOf( 'Iterator', $actual );
+               $this->assertInstanceOf( 'Traversable', $actual );
 
                $actual = iterator_to_array( $actual );
                $this->assertCount( 1, $actual );
@@ -179,7 +179,7 @@
 
                $usages = $lookup->getPagesUsing( array( $itemId ), array() );
 
-               $this->assertInstanceOf( 'Iterator', $usages );
+               $this->assertInstanceOf( 'Traversable', $usages );
        }
 
 }
diff --git a/lib/includes/store/sql/TermSqlIndex.php 
b/lib/includes/store/sql/TermSqlIndex.php
index e6cbed7..5a58416 100644
--- a/lib/includes/store/sql/TermSqlIndex.php
+++ b/lib/includes/store/sql/TermSqlIndex.php
@@ -5,8 +5,8 @@
 use DatabaseBase;
 use DBAccessBase;
 use InvalidArgumentException;
-use Iterator;
 use MWException;
+use Traversable;
 use Wikibase\DataModel\Entity\EntityDocument;
 use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Entity\Item;
@@ -591,12 +591,12 @@
        }
 
        /**
-        * @param Iterator $rows
+        * @param Traversable $rows
         * @param int $limit
         *
-        * @return Iterator
+        * @return Traversable
         */
-       private function getRowsOrderedByWeight( Iterator $rows, $limit = 0 ) {
+       private function getRowsOrderedByWeight( Traversable $rows, $limit = 0 
) {
                $sortData = array();
                $rowMap = array();
 
@@ -732,7 +732,7 @@
         * Modifies the provided terms to use the field names expected by the 
interface
         * rather then the table field names. Also ensures the values are of 
the correct type.
         *
-        * @param Iterator|array $obtainedTerms PHP fails for not having a 
common iterator/array thing :<0
+        * @param array[]|Traversable $obtainedTerms
         *
         * @return TermIndexEntry[]
         */
diff --git a/repo/includes/Dumpers/DumpGenerator.php 
b/repo/includes/Dumpers/DumpGenerator.php
index 5833022..ca62758 100644
--- a/repo/includes/Dumpers/DumpGenerator.php
+++ b/repo/includes/Dumpers/DumpGenerator.php
@@ -256,7 +256,7 @@
        /**
         * Generates a dump, writing to the file handle provided to the 
constructor.
         *
-        * @param EntityIdPager $idPager an Iterator that returns EntityId 
instances
+        * @param EntityIdPager $idPager a pager that returns EntityId instances
         */
        public function generateDump( EntityIdPager $idPager ) {
                $dumpCount = 0;
diff --git a/repo/includes/store/sql/EntityPerPageTable.php 
b/repo/includes/store/sql/EntityPerPageTable.php
index aa7f969..cc1c6a7 100644
--- a/repo/includes/store/sql/EntityPerPageTable.php
+++ b/repo/includes/store/sql/EntityPerPageTable.php
@@ -346,6 +346,7 @@
         * @param EntityId $after Only return entities with IDs greater than 
this.
         * @param mixed $redirects A XXX_REDIRECTS constant (default is 
NO_REDIRECTS).
         *
+        * @throws InvalidArgumentException
         * @return EntityId[]
         */
        public function listEntities( $entityType, $limit, EntityId $after = 
null, $redirects = self::NO_REDIRECTS ) {

-- 
To view, visit https://gerrit.wikimedia.org/r/232693
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5a2e3569ae0a8f5cfaa969b2e4842718ba0d73e1
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to