Aude has uploaded a new change for review.

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


Change subject: Make ItemChange more robust to handle diffOp objects or 
arrayized diffOps
......................................................................

Make ItemChange more robust to handle diffOp objects or arrayized diffOps

Change-Id: Ie9643b5fcb4fd2c54cdd5f9515c3845fa8f7b82a
---
M lib/includes/changes/ItemChange.php
1 file changed, 15 insertions(+), 2 deletions(-)


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

diff --git a/lib/includes/changes/ItemChange.php 
b/lib/includes/changes/ItemChange.php
index 157b870..6216dc3 100644
--- a/lib/includes/changes/ItemChange.php
+++ b/lib/includes/changes/ItemChange.php
@@ -1,6 +1,7 @@
 <?php
 
 namespace Wikibase;
+use \Diff\DiffOpFactory;
 
 /**
  * This program is free software; you can redistribute it and/or modify
@@ -37,10 +38,22 @@
        public function getSiteLinkDiff() {
                $diff = $this->getDiff();
 
-               if ( !$diff instanceof ItemDiff ) {
+               if ( is_array( $diff ) ) {
+                       // @todo: put in a nicer place
+                       $diffOpFactory = new DiffOpFactory();
+                       $diffOps = array();
+
+                       foreach( $diff['operations'] as $key => $opArray ) {
+                               $diffOps[$key] = $diffOpFactory->newFromArray( 
$opArray );
+                       }
+
+                       $itemDiff = new ItemDiff( $diffOps );
+               } else if ( $diff instanceof ItemDiff ) {
+                       $itemDiff = $diff;
+               } else {
                        throw new \MWException( 'Cannot get sitelink diff for ' 
. get_class( $diff ) . '.' );
                }
 
-               return $this->getDiff()->getSiteLinkDiff();
+               return $itemDiff->getSiteLinkDiff();
        }
 }

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

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

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

Reply via email to