Thiemo Mättig (WMDE) has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/334977 )

Change subject: Replace FingerprintProvider with more specific ones in RDF 
builders
......................................................................

Replace FingerprintProvider with more specific ones in RDF builders

This code is still problematic because it is unable to support new types
of terms. But this patch solves one problem: Entity implementations do
not have to support Fingerprints any more, but are free to mix and match
Labels, Descriptions and Aliases as they wish.

Note that one line of code moved outside of the condition. Is this
relevant in terms of performance?

Change-Id: I1c7e71d46a7fef09f6ed1334859474b16a25b73d
---
M repo/includes/Rdf/RdfBuilder.php
M repo/includes/Rdf/TermsRdfBuilder.php
2 files changed, 21 insertions(+), 15 deletions(-)


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

diff --git a/repo/includes/Rdf/RdfBuilder.php b/repo/includes/Rdf/RdfBuilder.php
index 2e28325..986b78f 100644
--- a/repo/includes/Rdf/RdfBuilder.php
+++ b/repo/includes/Rdf/RdfBuilder.php
@@ -10,7 +10,8 @@
 use Wikibase\DataModel\Entity\PropertyId;
 use Wikibase\DataModel\Services\Lookup\EntityLookup;
 use Wikibase\DataModel\Services\Lookup\PropertyDataTypeLookup;
-use Wikibase\DataModel\Term\FingerprintProvider;
+use Wikibase\DataModel\Term\DescriptionsProvider;
+use Wikibase\DataModel\Term\LabelsProvider;
 use Wikibase\Lib\Store\EntityTitleLookup;
 use Wikibase\Lib\Store\RevisionedUnresolvedRedirectException;
 use Wikimedia\Purtle\RdfWriter;
@@ -520,14 +521,14 @@
        private function addEntityStub( EntityDocument $entity ) {
                $this->addEntityMetaData( $entity );
 
-               if ( $entity instanceof FingerprintProvider ) {
-                       $fingerprint = $entity->getFingerprint();
+               $entityLName = $this->vocabulary->getEntityLName( 
$entity->getId() );
 
-                       /** @var EntityDocument $entity */
-                       $entityLName = $this->vocabulary->getEntityLName( 
$entity->getId() );
+               if ( $entity instanceof LabelsProvider ) {
+                       $this->termsBuilder->addLabels( $entityLName, 
$entity->getLabels() );
+               }
 
-                       $this->termsBuilder->addLabels( $entityLName, 
$fingerprint->getLabels() );
-                       $this->termsBuilder->addDescriptions( $entityLName, 
$fingerprint->getDescriptions() );
+               if ( $entity instanceof DescriptionsProvider ) {
+                       $this->termsBuilder->addDescriptions( $entityLName, 
$entity->getDescriptions() );
                }
        }
 
diff --git a/repo/includes/Rdf/TermsRdfBuilder.php 
b/repo/includes/Rdf/TermsRdfBuilder.php
index 457a0df..d58bf2d 100644
--- a/repo/includes/Rdf/TermsRdfBuilder.php
+++ b/repo/includes/Rdf/TermsRdfBuilder.php
@@ -3,9 +3,11 @@
 namespace Wikibase\Rdf;
 
 use Wikibase\DataModel\Entity\EntityDocument;
+use Wikibase\DataModel\Term\AliasesProvider;
 use Wikibase\DataModel\Term\AliasGroup;
 use Wikibase\DataModel\Term\AliasGroupList;
-use Wikibase\DataModel\Term\FingerprintProvider;
+use Wikibase\DataModel\Term\DescriptionsProvider;
+use Wikibase\DataModel\Term\LabelsProvider;
 use Wikibase\DataModel\Term\TermList;
 use Wikimedia\Purtle\RdfWriter;
 
@@ -111,15 +113,18 @@
         * @param EntityDocument $entity the entity to output.
         */
        public function addEntity( EntityDocument $entity ) {
-               if ( $entity instanceof FingerprintProvider ) {
-                       $fingerprint = $entity->getFingerprint();
+               $entityLName = $this->vocabulary->getEntityLName( 
$entity->getId() );
 
-                       /** @var EntityDocument $entity */
-                       $entityLName = $this->vocabulary->getEntityLName( 
$entity->getId() );
+               if ( $entity instanceof LabelsProvider ) {
+                       $this->addLabels( $entityLName, $entity->getLabels() );
+               }
 
-                       $this->addLabels( $entityLName, 
$fingerprint->getLabels() );
-                       $this->addDescriptions( $entityLName, 
$fingerprint->getDescriptions() );
-                       $this->addAliases( $entityLName, 
$fingerprint->getAliasGroups() );
+               if ( $entity instanceof DescriptionsProvider ) {
+                       $this->addDescriptions( $entityLName, 
$entity->getDescriptions() );
+               }
+
+               if ( $entity instanceof AliasesProvider ) {
+                       $this->addAliases( $entityLName, 
$entity->getAliasGroups() );
                }
        }
 

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1c7e71d46a7fef09f6ed1334859474b16a25b73d
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