jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/343849 )
Change subject: Do not use StatementListHolder interface in ChangeOpStatement
......................................................................
Do not use StatementListHolder interface in ChangeOpStatement
Critical for MediaInfo as well as Lexeme, because both should not
implement StatementListHolder if possible.
Change-Id: I214e3d9bff9d403a304ab9c90bd23006a2b706e8
Depends-On: Id5e83ec591346b205cc099a48b44a92a4c518e41
---
M composer.json
M repo/includes/ChangeOp/ChangeOpStatement.php
M repo/tests/phpunit/includes/ChangeOp/ChangeOpStatementTest.php
3 files changed, 11 insertions(+), 15 deletions(-)
Approvals:
Aleksey Bekh-Ivanov (WMDE): Looks good to me, but someone else must approve
Jakob: Looks good to me, approved
jenkins-bot: Verified
diff --git a/composer.json b/composer.json
index 88a59b8..6c88971 100644
--- a/composer.json
+++ b/composer.json
@@ -32,7 +32,7 @@
"data-values/serialization": "^1.2.0",
"data-values/javascript": "^0.8.3",
"data-values/value-view": "^0.19.0",
- "wikibase/data-model": "^6.3.1",
+ "wikibase/data-model": "^7.0.0",
"wikibase/data-model-serialization": "^2.1.0",
"wikibase/internal-serialization": "^2.2.0",
"wikibase/data-model-services": "^3.7.0",
diff --git a/repo/includes/ChangeOp/ChangeOpStatement.php
b/repo/includes/ChangeOp/ChangeOpStatement.php
index 92c3ebb..784762e 100644
--- a/repo/includes/ChangeOp/ChangeOpStatement.php
+++ b/repo/includes/ChangeOp/ChangeOpStatement.php
@@ -13,7 +13,6 @@
use Wikibase\DataModel\Services\Statement\StatementGuidValidator;
use Wikibase\DataModel\Statement\Statement;
use Wikibase\DataModel\Statement\StatementList;
-use Wikibase\DataModel\Statement\StatementListHolder;
use Wikibase\DataModel\Statement\StatementListProvider;
use Wikibase\Repo\Validators\SnakValidator;
use Wikibase\Summary;
@@ -95,28 +94,29 @@
* @throws ChangeOpException
*/
public function apply( EntityDocument $entity, Summary $summary = null
) {
- $entityId = $entity->getId();
-
if ( !( $entity instanceof StatementListProvider ) ) {
throw new InvalidArgumentException( '$entity must be a
StatementListProvider' );
}
+
+ $entityId = $entity->getId();
if ( $this->statement->getGuid() === null ) {
$this->statement->setGuid(
$this->guidGenerator->newGuid( $entityId ) );
}
$this->validateStatementGuid( $entityId );
- $oldIndex = $this->removeStatement( $entity->getStatements() );
+
+ $entityStatements = $entity->getStatements();
+ $oldIndex = $this->removeStatement( $entityStatements );
if ( $this->index !== null ) {
- if ( !( $entity instanceof StatementListHolder ) ) {
- throw new ChangeOpException( 'Setting an index
is not supported on this entity type' );
+ $statements = $this->addStatementToGroup(
$entityStatements, $this->index );
+ $entityStatements->clear();
+ foreach ( $statements as $statement ) {
+ $entityStatements->addStatement( $statement );
}
-
- $statements = $this->addStatementToGroup(
$entity->getStatements(), $this->index );
- $entity->setStatements( new StatementList( $statements
) );
} else {
- $entity->getStatements()->addStatement(
$this->statement, $oldIndex );
+ $entityStatements->addStatement( $this->statement,
$oldIndex );
}
$this->updateSummary( $summary, $oldIndex === null ? 'create' :
'update' );
diff --git a/repo/tests/phpunit/includes/ChangeOp/ChangeOpStatementTest.php
b/repo/tests/phpunit/includes/ChangeOp/ChangeOpStatementTest.php
index 621445a..b8deaea 100644
--- a/repo/tests/phpunit/includes/ChangeOp/ChangeOpStatementTest.php
+++ b/repo/tests/phpunit/includes/ChangeOp/ChangeOpStatementTest.php
@@ -314,10 +314,6 @@
$args['wrong main snak property'] = array( $item, $changeOp );
- $statementListProvider = new StatementListProviderDummy( 'Q777'
);
- $changeOp = $this->newChangeOpStatement( $newStatement, 0 );
- $args['index on unsupported entity type'] = [
$statementListProvider, $changeOp ];
-
return $args;
}
--
To view, visit https://gerrit.wikimedia.org/r/343849
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I214e3d9bff9d403a304ab9c90bd23006a2b706e8
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Aleksey Bekh-Ivanov (WMDE) <[email protected]>
Gerrit-Reviewer: Jakob <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: WMDE-leszek <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits