jenkins-bot has submitted this change and it was merged.

Change subject: Use SiteLinkLookup in WikibaseLuaBindings for 
getSiteLinkPageName
......................................................................


Use SiteLinkLookup in WikibaseLuaBindings for getSiteLinkPageName

instead of loading entire entities here.

Bug: T108928
Change-Id: Ie0bd94e9b31ecc0c244c079a44ed71953ca42f8d
---
M client/includes/DataAccess/Scribunto/WikibaseLuaBindings.php
1 file changed, 19 insertions(+), 12 deletions(-)

Approvals:
  Jonas Kress (WMDE): Looks good to me, but someone else must approve
  Daniel Kinzler: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/client/includes/DataAccess/Scribunto/WikibaseLuaBindings.php 
b/client/includes/DataAccess/Scribunto/WikibaseLuaBindings.php
index fad00b7..621e16f 100644
--- a/client/includes/DataAccess/Scribunto/WikibaseLuaBindings.php
+++ b/client/includes/DataAccess/Scribunto/WikibaseLuaBindings.php
@@ -12,6 +12,7 @@
 use Wikibase\DataModel\Services\EntityId\EntityIdParsingException;
 use Wikibase\DataModel\Services\Lookup\EntityLookup;
 use Wikibase\DataModel\Services\Lookup\LabelDescriptionLookup;
+use Wikibase\DataModel\SiteLink;
 use Wikibase\Lib\Store\SiteLinkLookup;
 use Wikibase\Lib\Store\StorageException;
 use Wikibase\SettingsArray;
@@ -41,7 +42,7 @@
        /**
         * @var SiteLinkLookup
         */
-       private $siteLinkTable;
+       private $siteLinkLookup;
 
        /**
         * @var SettingsArray
@@ -71,7 +72,7 @@
        /**
         * @param EntityIdParser $entityIdParser
         * @param EntityLookup $entityLookup
-        * @param SiteLinkLookup $siteLinkTable
+        * @param SiteLinkLookup $siteLinkLookup
         * @param SettingsArray $settings
         * @param LabelDescriptionLookup $labelDescriptionLookup
         * @param UsageAccumulator $usageAccumulator for tracking title usage 
via getEntityId.
@@ -84,7 +85,7 @@
        public function __construct(
                EntityIdParser $entityIdParser,
                EntityLookup $entityLookup,
-               SiteLinkLookup $siteLinkTable,
+               SiteLinkLookup $siteLinkLookup,
                SettingsArray $settings,
                LabelDescriptionLookup $labelDescriptionLookup,
                UsageAccumulator $usageAccumulator,
@@ -93,7 +94,7 @@
        ) {
                $this->entityIdParser = $entityIdParser;
                $this->entityLookup = $entityLookup;
-               $this->siteLinkTable = $siteLinkTable;
+               $this->siteLinkLookup = $siteLinkLookup;
                $this->settings = $settings;
                $this->labelDescriptionLookup = $labelDescriptionLookup;
                $this->usageAccumulator = $usageAccumulator;
@@ -111,7 +112,7 @@
         * @return string|null
         */
        public function getEntityId( $pageTitle ) {
-               $id = $this->siteLinkTable->getItemIdForLink( $this->siteId, 
$pageTitle );
+               $id = $this->siteLinkLookup->getItemIdForLink( $this->siteId, 
$pageTitle );
 
                if ( !$id ) {
                        return null;
@@ -186,7 +187,7 @@
         * @param string $prefixedEntityId
         *
         * @since 0.5
-        * @return string|null Null if entity couldn't be found/ no label 
present
+        * @return string|null Null if no site link found.
         */
        public function getSiteLinkPageName( $prefixedEntityId ) {
                try {
@@ -195,14 +196,20 @@
                        return null;
                }
 
-               /** @var Item $item */
-               $item = $this->entityLookup->getEntity( $itemId );
-               if ( !$item || !$item->getSiteLinkList()->hasLinkWithSiteId( 
$this->siteId ) ) {
-                       return null;
+               // @fixme the SiteLinks do not contain badges! but all we want 
here is page name.
+               $siteLinkRows = $this->siteLinkLookup->getLinks(
+                       array( $itemId->getNumericId() ),
+                       array( $this->siteId )
+               );
+
+               foreach ( $siteLinkRows as $siteLinkRow ) {
+                       $siteLink = new SiteLink( $siteLinkRow[0], 
$siteLinkRow[1] );
+
+                       $this->usageAccumulator->addTitleUsage( $itemId );
+                       return $siteLink->getPageName();
                }
 
-               $this->usageAccumulator->addTitleUsage( $itemId );
-               return $item->getSiteLinkList()->getBySiteId( $this->siteId 
)->getPageName();
+               return null;
        }
 
        /**

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie0bd94e9b31ecc0c244c079a44ed71953ca42f8d
Gerrit-PatchSet: 6
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Aude <aude.w...@gmail.com>
Gerrit-Reviewer: Addshore <addshorew...@gmail.com>
Gerrit-Reviewer: Aude <aude.w...@gmail.com>
Gerrit-Reviewer: Daniel Kinzler <daniel.kinz...@wikimedia.de>
Gerrit-Reviewer: Hoo man <h...@online.de>
Gerrit-Reviewer: Jonas Kress (WMDE) <jonas.kr...@wikimedia.de>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to