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