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

Reply via email to