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

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

Change subject: Proposed refactoring for ReferencedEntitiesFinder
......................................................................

Proposed refactoring for ReferencedEntitiesFinder

Change-Id: Ibb6e011b6de9cce1629619c810b94f13a1ff33de
---
M lib/includes/ReferencedEntitiesFinder.php
1 file changed, 23 insertions(+), 24 deletions(-)


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

diff --git a/lib/includes/ReferencedEntitiesFinder.php 
b/lib/includes/ReferencedEntitiesFinder.php
index 6ead007..6147192 100644
--- a/lib/includes/ReferencedEntitiesFinder.php
+++ b/lib/includes/ReferencedEntitiesFinder.php
@@ -20,45 +20,44 @@
 class ReferencedEntitiesFinder {
 
        /**
-        * @var EntityId[] serialized entity ids pointing to entity id objects
-        */
-       private $foundEntityIds;
-
-       /**
-        * Finds linked entities within a set of snaks.
+        * Finds linked Entities within a set of Snaks.
         *
         * @param Snak[] $snaks
         *
-        * @return EntityId[]
+        * @return EntityId[] Entity ID strings pointing to Entity ID objects.
         */
        public function findSnakLinks( array $snaks ) {
-               $this->foundEntityIds = array();
+               $entityIds = array();
 
                foreach ( $snaks as $snak ) {
-                       $this->handleSnak( $snak );
+                       $this->addEntityIds( $entityIds, $snak );
                }
 
-               return $this->foundEntityIds;
+               return $entityIds;
        }
 
-       private function handleSnak( Snak $snak ) {
-               // all of the Snak's properties are referenced entities
-               $this->addEntityId( $snak->getPropertyId() );
+       /**
+        * @param EntityId[] $entityIds
+        * @param Snak $snak
+        */
+       private function addEntityIds( array &$entityIds, Snak $snak ) {
+               $this->addEntityId( $entityIds, $snak->getPropertyId() );
 
-               // PropertyValueSnaks might have a value referencing an Entity
-               if( $snak instanceof PropertyValueSnak ) {
-                       $this->handleDataValue( $snak->getDataValue() );
+               if ( $snak instanceof PropertyValueSnak ) {
+                       $dataValue = $snak->getDataValue();
+
+                       if ( $dataValue instanceof EntityIdValue ) {
+                               $this->addEntityId( $entityIds, 
$dataValue->getEntityId() );
+                       }
                }
        }
 
-       private function handleDataValue( DataValue $dataValue ) {
-               if ( $dataValue instanceof EntityIdValue ) {
-                       $this->addEntityId( $dataValue->getEntityId() );
-               }
-       }
-
-       private function addEntityId( EntityId $entityId ) {
-               $this->foundEntityIds[$entityId->getSerialization()] = 
$entityId;
+       /**
+        * @param EntityId[] $entityIds
+        * @param EntityId $entityId
+        */
+       private function addEntityId( array &$entityIds, EntityId $entityId ) {
+               $entityIds[$entityId->getSerialization()] = $entityId;
        }
 
 }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibb6e011b6de9cce1629619c810b94f13a1ff33de
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to