Bene has uploaded a new change for review.

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

Change subject: Use EntityDocument in SpecialModifyEntity and derivatives
......................................................................

Use EntityDocument in SpecialModifyEntity and derivatives

Change-Id: Ia87ffbb474df9891235153709c3164643f29d315
---
M repo/includes/specials/SpecialModifyEntity.php
M repo/includes/specials/SpecialModifyTerm.php
M repo/includes/specials/SpecialSetAliases.php
M repo/includes/specials/SpecialSetDescription.php
M repo/includes/specials/SpecialSetLabel.php
M repo/includes/specials/SpecialSetLabelDescriptionAliases.php
M repo/includes/specials/SpecialSetSiteLink.php
M repo/includes/specials/SpecialWikibaseRepoPage.php
8 files changed, 47 insertions(+), 32 deletions(-)


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

diff --git a/repo/includes/specials/SpecialModifyEntity.php 
b/repo/includes/specials/SpecialModifyEntity.php
index 4113331..c97b44e 100644
--- a/repo/includes/specials/SpecialModifyEntity.php
+++ b/repo/includes/specials/SpecialModifyEntity.php
@@ -7,7 +7,6 @@
 use Wikibase\ChangeOp\ChangeOpException;
 use Wikibase\ChangeOp\ChangeOpValidationException;
 use Wikibase\CopyrightMessageBuilder;
-use Wikibase\DataModel\Entity\Entity;
 use Wikibase\DataModel\Entity\EntityDocument;
 use Wikibase\EntityRevision;
 use Wikibase\Lib\UserInputException;
@@ -263,11 +262,11 @@
         *
         * @since 0.5
         *
-        * @param Entity $entity
+        * @param EntityDocument $entity
         *
         * @return Summary|bool
         */
-       abstract protected function modifyEntity( Entity $entity );
+       abstract protected function modifyEntity( EntityDocument $entity );
 
        /**
         * Applies the given ChangeOp to the given Entity.
@@ -276,12 +275,12 @@
         * @since 0.5
         *
         * @param ChangeOp $changeOp
-        * @param Entity $entity
+        * @param EntityDocument $entity
         * @param Summary|null $summary The summary object to update with 
information about the change.
         *
         * @throws ChangeOpException
         */
-       protected function applyChangeOp( ChangeOp $changeOp, Entity $entity, 
Summary $summary = null ) {
+       protected function applyChangeOp( ChangeOp $changeOp, EntityDocument 
$entity, Summary $summary = null ) {
                $result = $changeOp->validate( $entity );
 
                if ( !$result->isValid() ) {
diff --git a/repo/includes/specials/SpecialModifyTerm.php 
b/repo/includes/specials/SpecialModifyTerm.php
index 128dfe8..6096086 100644
--- a/repo/includes/specials/SpecialModifyTerm.php
+++ b/repo/includes/specials/SpecialModifyTerm.php
@@ -8,7 +8,6 @@
 use PermissionsError;
 use Wikibase\ChangeOp\ChangeOpException;
 use Wikibase\ChangeOp\FingerprintChangeOpFactory;
-use Wikibase\DataModel\Entity\Entity;
 use Wikibase\DataModel\Entity\EntityDocument;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\Property;
@@ -126,6 +125,10 @@
                        return false;
                }
 
+               if ( !( $this->entityRevision->getEntity() instanceof 
FingerprintProvider ) ) {
+                       return false;
+               }
+
                try {
                        $this->checkTermChangePermissions( 
$this->entityRevision->getEntity() );
                } catch ( PermissionsError $e ) {
@@ -149,11 +152,11 @@
         *
         * @since 0.5
         *
-        * @param Entity $entity
+        * @param EntityDocument $entity
         *
         * @return Summary|bool
         */
-       protected function modifyEntity( Entity $entity ) {
+       protected function modifyEntity( EntityDocument $entity ) {
                try {
                        $summary = $this->setValue( $entity, 
$this->languageCode, $this->value );
                } catch ( ChangeOpException $e ) {
@@ -305,12 +308,11 @@
         *
         * @since 0.5
         *
-        * @param Entity $entity
+        * @param EntityDocument $entity
         * @param string $languageCode
         * @param string $value
-        *
         * @return Summary
         */
-       abstract protected function setValue( Entity $entity, $languageCode, 
$value );
+       abstract protected function setValue( EntityDocument $entity, 
$languageCode, $value );
 
 }
diff --git a/repo/includes/specials/SpecialSetAliases.php 
b/repo/includes/specials/SpecialSetAliases.php
index 862c3f1..ce9d66f 100644
--- a/repo/includes/specials/SpecialSetAliases.php
+++ b/repo/includes/specials/SpecialSetAliases.php
@@ -2,8 +2,10 @@
 
 namespace Wikibase\Repo\Specials;
 
-use Wikibase\DataModel\Entity\Entity;
+use InvalidArgumentException;
+use Wikibase\DataModel\Entity\EntityDocument;
 use Wikibase\DataModel\Term\Fingerprint;
+use Wikibase\DataModel\Term\FingerprintProvider;
 use Wikibase\Summary;
 
 /**
@@ -60,13 +62,17 @@
         *
         * @since 0.4
         *
-        * @param Entity $entity
+        * @param EntityDocument $entity
         * @param string $languageCode
         * @param string $value
         *
         * @return Summary
         */
-       protected function setValue( Entity $entity, $languageCode, $value ) {
+       protected function setValue( EntityDocument $entity, $languageCode, 
$value ) {
+               if ( !( $entity instanceof FingerprintProvider ) ) {
+                       throw new InvalidArgumentException( '$entity has to be 
a FingerprintProvider' );
+               }
+
                $summary = new Summary( 'wbsetaliases' );
 
                if ( $value === '' ) {
diff --git a/repo/includes/specials/SpecialSetDescription.php 
b/repo/includes/specials/SpecialSetDescription.php
index f39c9d7..39ea8a6 100644
--- a/repo/includes/specials/SpecialSetDescription.php
+++ b/repo/includes/specials/SpecialSetDescription.php
@@ -2,7 +2,7 @@
 
 namespace Wikibase\Repo\Specials;
 
-use Wikibase\DataModel\Entity\Entity;
+use Wikibase\DataModel\Entity\EntityDocument;
 use Wikibase\DataModel\Term\Fingerprint;
 use Wikibase\Summary;
 
@@ -58,13 +58,13 @@
         *
         * @since 0.4
         *
-        * @param Entity $entity
+        * @param EntityDocument $entity
         * @param string $languageCode
         * @param string $value
         *
         * @return Summary
         */
-       protected function setValue( Entity $entity, $languageCode, $value ) {
+       protected function setValue( EntityDocument $entity, $languageCode, 
$value ) {
                $value = $value === '' ? null : $value;
                $summary = new Summary( 'wbsetdescription' );
 
diff --git a/repo/includes/specials/SpecialSetLabel.php 
b/repo/includes/specials/SpecialSetLabel.php
index 4bc7e62..5a405c2 100644
--- a/repo/includes/specials/SpecialSetLabel.php
+++ b/repo/includes/specials/SpecialSetLabel.php
@@ -2,7 +2,7 @@
 
 namespace Wikibase\Repo\Specials;
 
-use Wikibase\DataModel\Entity\Entity;
+use Wikibase\DataModel\Entity\EntityDocument;
 use Wikibase\DataModel\Term\Fingerprint;
 use Wikibase\Summary;
 
@@ -58,13 +58,13 @@
         *
         * @since 0.4
         *
-        * @param Entity $entity
+        * @param EntityDocument $entity
         * @param string $languageCode
         * @param string $value
         *
         * @return Summary
         */
-       protected function setValue( Entity $entity, $languageCode, $value ) {
+       protected function setValue( EntityDocument $entity, $languageCode, 
$value ) {
                $value = $value === '' ? null : $value;
                $summary = new Summary( 'wbsetlabel' );
 
diff --git a/repo/includes/specials/SpecialSetLabelDescriptionAliases.php 
b/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
index 923575b..3a12caa 100644
--- a/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
+++ b/repo/includes/specials/SpecialSetLabelDescriptionAliases.php
@@ -3,14 +3,15 @@
 namespace Wikibase\Repo\Specials;
 
 use Html;
+use InvalidArgumentException;
 use Language;
 use SiteStore;
 use Wikibase\ChangeOp\ChangeOp;
 use Wikibase\ChangeOp\ChangeOpException;
 use Wikibase\ChangeOp\FingerprintChangeOpFactory;
-use Wikibase\DataModel\Entity\Entity;
 use Wikibase\DataModel\Entity\EntityDocument;
 use Wikibase\DataModel\Term\Fingerprint;
+use Wikibase\DataModel\Term\FingerprintHolder;
 use Wikibase\DataModel\Term\FingerprintProvider;
 use Wikibase\EditEntityFactory;
 use Wikibase\Lib\ContentLanguages;
@@ -332,11 +333,15 @@
        /**
         * @see SpecialModifyEntity::modifyEntity
         *
-        * @param Entity $entity
+        * @param EntityDocument $entity
         *
         * @return Summary|bool
         */
-       protected function modifyEntity( Entity $entity ) {
+       protected function modifyEntity( EntityDocument $entity ) {
+               if ( !( $entity instanceof FingerprintHolder ) ) {
+                       throw new InvalidArgumentException( '$entity must be a 
FingerprintHolder' );
+               }
+
                $changeOps = $this->getChangeOps( $entity->getFingerprint() );
 
                $summary = false;
diff --git a/repo/includes/specials/SpecialSetSiteLink.php 
b/repo/includes/specials/SpecialSetSiteLink.php
index 425d6d8..4eca378 100644
--- a/repo/includes/specials/SpecialSetSiteLink.php
+++ b/repo/includes/specials/SpecialSetSiteLink.php
@@ -8,7 +8,6 @@
 use Status;
 use Wikibase\ChangeOp\ChangeOpException;
 use Wikibase\ChangeOp\SiteLinkChangeOpFactory;
-use Wikibase\DataModel\Entity\Entity;
 use Wikibase\DataModel\Entity\EntityDocument;
 use Wikibase\DataModel\Entity\Item;
 use Wikibase\DataModel\Entity\ItemId;
@@ -171,11 +170,11 @@
        /**
         * @see SpecialModifyEntity::modifyEntity()
         *
-        * @param Entity $entity
+        * @param EntityDocument $entity
         *
         * @return Summary|bool The summary or false
         */
-       protected function modifyEntity( Entity $entity ) {
+       protected function modifyEntity( EntityDocument $entity ) {
                try {
                        $status = $this->setSiteLink( $entity, $this->site, 
$this->page, $this->badges, $summary );
                } catch ( ChangeOpException $e ) {
@@ -424,7 +423,7 @@
        /**
         * Setting the sitepage of the entity.
         *
-        * @param Item $item
+        * @param EntityDocument $item
         * @param string $siteId
         * @param string $pageName
         * @param string[] $badgeIds
@@ -432,7 +431,11 @@
         *
         * @return Status
         */
-       private function setSiteLink( Item $item, $siteId, $pageName, 
$badgeIds, &$summary ) {
+       private function setSiteLink( EntityDocument $item, $siteId, $pageName, 
$badgeIds, &$summary ) {
+               if ( !( $item instanceof Item ) ) {
+                       throw new InvalidArgumentException( '$entity has to be 
an Item' );
+               }
+
                $status = Status::newGood();
                $site = $this->siteStore->getSite( $siteId );
 
diff --git a/repo/includes/specials/SpecialWikibaseRepoPage.php 
b/repo/includes/specials/SpecialWikibaseRepoPage.php
index 114efbb..aa98f1b 100644
--- a/repo/includes/specials/SpecialWikibaseRepoPage.php
+++ b/repo/includes/specials/SpecialWikibaseRepoPage.php
@@ -7,7 +7,7 @@
 use SiteStore;
 use Status;
 use Title;
-use Wikibase\DataModel\Entity\Entity;
+use Wikibase\DataModel\Entity\EntityDocument;
 use Wikibase\DataModel\Entity\EntityId;
 use Wikibase\DataModel\Entity\ItemId;
 use Wikibase\EditEntityFactory;
@@ -15,8 +15,8 @@
 use Wikibase\Lib\MessageException;
 use Wikibase\Lib\Store\EntityRevisionLookup;
 use Wikibase\Lib\Store\EntityTitleLookup;
-use Wikibase\Lib\Store\StorageException;
 use Wikibase\Lib\Store\RevisionedUnresolvedRedirectException;
+use Wikibase\Lib\Store\StorageException;
 use Wikibase\Lib\UserInputException;
 use Wikibase\Repo\WikibaseRepo;
 use Wikibase\Summary;
@@ -198,7 +198,7 @@
        /**
         * Saves the entity using the given summary.
         *
-        * @param Entity $entity
+        * @param EntityDocument $entity
         * @param Summary $summary
         * @param string $token
         * @param int $flags The edit flags (see WikiPage::doEditContent)
@@ -207,7 +207,7 @@
         * @return Status
         */
        protected function saveEntity(
-               Entity $entity,
+               EntityDocument $entity,
                Summary $summary,
                $token,
                $flags = EDIT_UPDATE,

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia87ffbb474df9891235153709c3164643f29d315
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Bene <[email protected]>

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

Reply via email to