public void constructComparison ( Map < ? , BigInteger > sourceChecksumMap , Map < ? , BigInteger > targetMap ) { if ( sourceChecksumMap == null ) { if ( targetMap != null && ! targetMap . isEmpty ( ) ) { this . keysRemovedFromSource . addAll ( targetMap . keySet ( ) ) ; } return ; } if ( targetMap == null ) { this . keysMissingOnTarget . addAll ( sourceChecksumMap . keySet ( ) ) ; return ; } BigInteger targetBi = null ; BigInteger sourceBi = null ; for ( Map . Entry < ? , BigInteger > entrySource : sourceChecksumMap . entrySet ( ) ) { targetBi = targetMap . get ( entrySource . getKey ( ) ) ; sourceBi = sourceChecksumMap . get ( entrySource . getKey ( ) ) ; if ( targetBi == null ) { keysMissingOnTarget . add ( entrySource . getKey ( ) ) ; } else if ( ! targetBi . equals ( sourceBi ) ) { keysDifferentOnTarget . add ( entrySource . getKey ( ) ) ; } } //determine keysRemovedFromSource Set < ? > sourceKeySet = sourceChecksumMap . keySet ( ) ; for ( Map . Entry < ? , ? > targetEntry : targetMap . entrySet ( ) ) { if ( ! sourceKeySet . contains ( targetEntry . getKey ( ) ) ) { keysRemovedFromSource . add ( targetEntry . getKey ( ) ) ; } } }
Build the RegionSyncReport the given