Jeroen De Dauw has uploaded a new change for review. https://gerrit.wikimedia.org/r/173840
Change subject: Remove usage of deprecated Entity methods ...................................................................... Remove usage of deprecated Entity methods This includes fixing two of the issues listed here https://gerrit.wikimedia.org/r/#/c/173724/1/lib/includes/store/sql/TermSqlIndex.php Change-Id: I42b15469d765d40c5db21b1fc956141bcb0b0a75 --- M lib/includes/store/TermIndex.php M lib/includes/store/sql/TermSqlIndex.php M lib/tests/phpunit/store/MockTermIndex.php 3 files changed, 27 insertions(+), 17 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/40/173840/1 diff --git a/lib/includes/store/TermIndex.php b/lib/includes/store/TermIndex.php index e975e90..a52fa4b 100644 --- a/lib/includes/store/TermIndex.php +++ b/lib/includes/store/TermIndex.php @@ -2,7 +2,7 @@ namespace Wikibase; -use Wikibase\DataModel\Entity\Entity; +use Wikibase\DataModel\Entity\EntityDocument; use Wikibase\DataModel\Entity\EntityId; use Wikibase\Lib\Store\LabelConflictFinder; @@ -37,11 +37,11 @@ * * @since 0.1 * - * @param Entity $entity + * @param EntityDocument $entity * * @return boolean Success indicator */ - public function saveTermsOfEntity( Entity $entity ); + public function saveTermsOfEntity( EntityDocument $entity ); /** * Deletes the terms of the provided entity from the term cache. diff --git a/lib/includes/store/sql/TermSqlIndex.php b/lib/includes/store/sql/TermSqlIndex.php index ec9e931..3f1ea4d 100644 --- a/lib/includes/store/sql/TermSqlIndex.php +++ b/lib/includes/store/sql/TermSqlIndex.php @@ -8,9 +8,12 @@ use Iterator; use MWException; use Wikibase\DataModel\Entity\Entity; +use Wikibase\DataModel\Entity\EntityDocument; use Wikibase\DataModel\Entity\EntityId; use Wikibase\DataModel\Entity\Item; use Wikibase\DataModel\LegacyIdInterpreter; +use Wikibase\DataModel\Term\Fingerprint; +use Wikibase\DataModel\Term\FingerprintProvider; /** * Term lookup cache. @@ -88,11 +91,11 @@ * * @since 0.1 * - * @param Entity $entity + * @param EntityDocument $entity * * @return boolean Success indicator */ - public function saveTermsOfEntity( Entity $entity ) { + public function saveTermsOfEntity( EntityDocument $entity ) { wfProfileIn( __METHOD__ ); //First check whether there's anything to update @@ -180,17 +183,24 @@ } /** - * TODO: this method belongs in Entity itself. This change can only be made once - * there is a sane Term object in DataModel itself though. - * - * @param Entity $entity + * @param EntityDocument $entity * * @return Term[] */ - public function getEntityTerms( Entity $entity ) { + public function getEntityTerms( EntityDocument $entity ) { + // FIXME: OCP violation. No support for new types of entities can be registered + + if ( $entity instanceof FingerprintProvider ) { + return $this->getFingerprintTerms( $entity->getFingerprint() ); + } + + return array(); + } + + private function getFingerprintTerms( Fingerprint $fingerprint ) { $terms = array(); - foreach ( $entity->getDescriptions() as $languageCode => $description ) { + foreach ( $fingerprint->getDescriptions()->toTextArray() as $languageCode => $description ) { $term = new Term(); $term->setLanguage( $languageCode ); @@ -200,7 +210,7 @@ $terms[] = $term; } - foreach ( $entity->getLabels() as $languageCode => $label ) { + foreach ( $fingerprint->getLabels()->toTextArray() as $languageCode => $label ) { $term = new Term(); $term->setLanguage( $languageCode ); @@ -210,11 +220,11 @@ $terms[] = $term; } - foreach ( $entity->getAllAliases() as $languageCode => $aliases ) { - foreach ( $aliases as $alias ) { + foreach ( $fingerprint->getAliasGroups() as $aliasGroup ) { + foreach ( $aliasGroup->getAliases() as $alias ) { $term = new Term(); - $term->setLanguage( $languageCode ); + $term->setLanguage( $aliasGroup->getLanguageCode() ); $term->setType( Term::TYPE_ALIAS ); $term->setText( $alias ); diff --git a/lib/tests/phpunit/store/MockTermIndex.php b/lib/tests/phpunit/store/MockTermIndex.php index f92570e..45510df 100644 --- a/lib/tests/phpunit/store/MockTermIndex.php +++ b/lib/tests/phpunit/store/MockTermIndex.php @@ -4,7 +4,7 @@ use Exception; use InvalidArgumentException; -use Wikibase\DataModel\Entity\Entity; +use Wikibase\DataModel\Entity\EntityDocument; use Wikibase\DataModel\Entity\EntityId; use Wikibase\Term; use Wikibase\TermIndex; @@ -168,7 +168,7 @@ /** * @throws Exception always */ - public function saveTermsOfEntity( Entity $entity ) { + public function saveTermsOfEntity( EntityDocument $entity ) { throw new Exception( 'not implemented by mock class ' ); } -- To view, visit https://gerrit.wikimedia.org/r/173840 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I42b15469d765d40c5db21b1fc956141bcb0b0a75 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Jeroen De Dauw <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
