jenkins-bot has submitted this change and it was merged.

Change subject: Simplify ChangeOpStatement implementation
......................................................................


Simplify ChangeOpStatement implementation

Main advantage is that the $this->index and $summary variables are not
passed around any more. They are defined and used in a single place.

Change-Id: I400e9a6e37899acd2b112a50459c94eebc2c373c
---
M repo/includes/ChangeOp/ChangeOpStatement.php
1 file changed, 7 insertions(+), 19 deletions(-)

Approvals:
  Hoo man: Looks good to me, approved
  Aude: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/repo/includes/ChangeOp/ChangeOpStatement.php 
b/repo/includes/ChangeOp/ChangeOpStatement.php
index 37b3042..abb7019 100644
--- a/repo/includes/ChangeOp/ChangeOpStatement.php
+++ b/repo/includes/ChangeOp/ChangeOpStatement.php
@@ -112,17 +112,20 @@
                }
 
                $this->validateStatementGuid( $entityId );
+               $oldIndex = $this->removeStatement( $entity->getStatements() );
 
                if ( $this->index !== null ) {
                        if ( !( $entity instanceof StatementListHolder ) ) {
                                throw new ChangeOpException( 'Setting an index 
is not supported on this entity type' );
                        }
 
-                       $this->applyStatementToEntity( $entity, $summary );
+                       $statements = $this->addStatementToGroup( 
$entity->getStatements(), $this->index );
+                       $entity->setStatements( new StatementList( $statements 
) );
                } else {
-                       $oldIndex = $this->removeStatement( 
$entity->getStatements(), $summary );
                        $entity->getStatements()->addStatement( 
$this->statement, $oldIndex );
                }
+
+               $this->updateSummary( $summary, $oldIndex === null ? 'create' : 
'update' );
        }
 
        /**
@@ -143,23 +146,11 @@
        }
 
        /**
-        * @param StatementListHolder $entity
-        * @param Summary|null $summary
-        */
-       private function applyStatementToEntity( StatementListHolder $entity, 
Summary $summary = null ) {
-               $oldIndex = $this->removeStatement( $entity->getStatements(), 
$summary );
-               $newIndex = $this->index !== null ? $this->index : $oldIndex;
-               $statements = $this->addStatementToGroup( 
$entity->getStatements(), $newIndex );
-               $entity->setStatements( new StatementList( $statements ) );
-       }
-
-       /**
         * @param StatementList $statements
-        * @param Summary|null $summary
         *
         * @return int|null
         */
-       private function removeStatement( StatementList $statements, Summary 
$summary = null ) {
+       private function removeStatement( StatementList $statements ) {
                $guid = $this->statement->getGuid();
                $oldIndex = null;
                $oldStatement = null;
@@ -173,11 +164,8 @@
                        }
                }
 
-               if ( $oldStatement === null ) {
-                       $this->updateSummary( $summary, 'create' );
-               } else {
+               if ( $oldStatement !== null ) {
                        $this->checkMainSnakUpdate( $oldStatement );
-                       $this->updateSummary( $summary, 'update' );
                }
 
                return $oldIndex;

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I400e9a6e37899acd2b112a50459c94eebc2c373c
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de>
Gerrit-Reviewer: Aude <aude.w...@gmail.com>
Gerrit-Reviewer: Daniel Kinzler <daniel.kinz...@wikimedia.de>
Gerrit-Reviewer: Hoo man <h...@online.de>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to