package droidkit.util;
import android.support.annotation.Nullable;
import java.util.Map;
/**
* @author Daniel Serdyukov
*/
public class KeyValue<K, V> implements Map.Entry<K, V> {
private final K mKey;
private V mValue;
public KeyValue(@Nullable K key) {
this(key, null);
}
public KeyValue(@Nullable K key, @Nullable V value) {
mKey = key;
mValue = value;
}
@Nullable
@Override
public K getKey() {
return mKey;
}
@Nullable
@Override
public V getValue() {
return mValue;
}
@Nullable
@Override
public V setValue(@Nullable V value) {
final V oldValue = mValue;
mValue = value;
return oldValue;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
final KeyValue keyValue = (KeyValue) o;
return !(mKey != null ? !mKey.equals(keyValue.mKey) : keyValue.mKey != null)
&& !(mValue != null ? !mValue.equals(keyValue.mValue) : keyValue.mValue != null);
}
@Override
public int hashCode() {
int result = mKey != null ? mKey.hashCode() : 0;
result = 31 * result + (mValue != null ? mValue.hashCode() : 0);
return result;
}
}