package com.github.drapostolos.rdp4j;
import java.util.HashMap;
import java.util.Map;
final class HashMapComparer<K, V> {
private Map<K, V> m1, m2, added, removed;
HashMapComparer(Map<K, V> m1, Map<K, V> m2) {
this.m1 = m1;
this.m2 = m2;
setAdded();
setRemoved();
}
private void setAdded() {
added = new HashMap<K, V>(m2);
for (K key : m1.keySet()) {
added.remove(key);
}
}
private void setRemoved() {
removed = new HashMap<K, V>(m1);
for (K key : m2.keySet()) {
removed.remove(key);
}
}
/**
* Returns the element that are in m2, but not in m1.
*
* @return
*/
Map<K, V> getAdded() {
return added;
}
/**
* Returns the element that are in m1, but not in m2.
*
* @return
*/
Map<K, V> getRemoved() {
return removed;
}
/**
* @return
*/
boolean hasDiff() {
return !m1.equals(m2);
}
@Override
public String toString() {
return "Removed: " + getRemoved() + ", Added: " + getAdded();
}
}