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

Change subject: DM 1.0 compat: do not use DataModel\Internal\ObjectComparer
......................................................................


DM 1.0 compat: do not use DataModel\Internal\ObjectComparer

Change-Id: I72f79342663015369ad7b7dc0fca013f0386d080
---
M repo/includes/ClaimDiffer.php
1 file changed, 29 insertions(+), 15 deletions(-)

Approvals:
  WikidataJenkins: Verified
  Thiemo Mättig (WMDE): Looks good to me, approved
  jenkins-bot: Verified



diff --git a/repo/includes/ClaimDiffer.php b/repo/includes/ClaimDiffer.php
index 0a11777..420aca9 100644
--- a/repo/includes/ClaimDiffer.php
+++ b/repo/includes/ClaimDiffer.php
@@ -5,7 +5,6 @@
 use Diff\DiffOp\Diff\Diff;
 use Diff\Differ\Differ;
 use Diff\DiffOp\DiffOpChange;
-use Wikibase\DataModel\Internal\ObjectComparer;
 
 /**
  * Class for generating a ClaimDifference given two claims.
@@ -59,10 +58,15 @@
                $oldClaimMainSnak = $oldClaim === null ? null : 
$oldClaim->getMainSnak();
                $newClaimMainSnak = $newClaim === null ? null : 
$newClaim->getMainSnak();
 
-               $mainSnakComparer = new ObjectComparer();
-               if( !$mainSnakComparer->dataEquals( $oldClaimMainSnak, 
$newClaimMainSnak ) ) {
+               if ( $oldClaimMainSnak === null && $newClaimMainSnak === null ) 
{
+                       return null;
+               }
+
+               if( ( $oldClaimMainSnak === null && $newClaimMainSnak !== null )
+                       || !$oldClaimMainSnak->equals( $newClaimMainSnak ) ) {
                        return new DiffOpChange( $oldClaimMainSnak, 
$newClaimMainSnak );
                }
+
                return null;
        }
 
@@ -73,13 +77,18 @@
         * @return Diff
         */
        private function diffQualifiers( Claim $oldClaim = null, Claim 
$newClaim = null ) {
-               $oldQualifiers = $oldClaim === null ? array() : 
iterator_to_array( $oldClaim->getQualifiers() );
-               $newQualifiers = $newClaim === null ? array() : 
iterator_to_array( $newClaim->getQualifiers() );
+               $oldQualifiers = $oldClaim === null ? new SnakList( array() ): 
$oldClaim->getQualifiers();
+               $newQualifiers = $newClaim === null ? new SnakList( array() ) : 
$newClaim->getQualifiers();
 
-               $qualifierComparer = new ObjectComparer();
-               if (  !$qualifierComparer->dataEquals( $oldQualifiers, 
$newQualifiers ) ) {
-                       return new Diff( $this->listDiffer->doDiff( 
$oldQualifiers, $newQualifiers ), false );
+               if ( !$oldQualifiers->equals( $newQualifiers ) ) {
+                       $diffOps = $this->listDiffer->doDiff(
+                               iterator_to_array( $oldQualifiers ),
+                               iterator_to_array( $newQualifiers )
+                       );
+
+                       return new Diff( $diffOps, false );
                }
+
                return null;
        }
 
@@ -93,10 +102,10 @@
                $oldRank = $oldClaim === null ? null : $oldClaim->getRank();
                $newRank = $newClaim === null ? null : $newClaim->getRank();
 
-               $rankComparer = new ObjectComparer();
-               if( !$rankComparer->dataEquals( $oldRank, $newRank ) ){
+               if( $oldRank !== $newRank ) {
                        return new DiffOpChange( $oldRank, $newRank );
                }
+
                return null;
        }
 
@@ -107,13 +116,18 @@
         * @return Diff
         */
        private function diffReferences( Statement $oldClaim = null, Statement 
$newClaim = null ) {
-               $oldReferences = $oldClaim === null ? array() : 
iterator_to_array( $oldClaim->getReferences() );
-               $newReferences = $newClaim === null ? array() : 
iterator_to_array( $newClaim->getReferences() );
+               $oldReferences = $oldClaim === null ? new ReferenceList( 
array() ) : $oldClaim->getReferences();
+               $newReferences = $newClaim === null ? new ReferenceList( 
array() ) : $newClaim->getReferences();
 
-               $referenceComparer = new ObjectComparer();
-               if ( !$referenceComparer->dataEquals( $oldReferences, 
$newReferences ) ) {
-                       return new Diff( $this->listDiffer->doDiff( 
$oldReferences, $newReferences ), false );
+               if ( !$oldReferences->equals( $newReferences ) ) {
+                       $diffOps = $this->listDiffer->doDiff(
+                               iterator_to_array( $oldReferences ),
+                               iterator_to_array( $newReferences )
+                       );
+
+                       return new Diff( $diffOps, false );
                }
+
                return null;
        }
 

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I72f79342663015369ad7b7dc0fca013f0386d080
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Jeroen De Dauw <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: WikidataJenkins <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to