package org.antlr.v4.runtime.misc;
import java.io.Serializable;
public class Pair<A,B> implements Serializable {
public final A a;
public final B b;
public Pair(A a, B b) {
this.a = a;
this.b = b;
}
@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
else if (!(obj instanceof Pair<?, ?>)) {
return false;
}
Pair<?, ?> other = (Pair<?, ?>)obj;
return ObjectEqualityComparator.INSTANCE.equals(a, other.a)
&& ObjectEqualityComparator.INSTANCE.equals(b, other.b);
}
@Override
public int hashCode() {
int hash = MurmurHash.initialize();
hash = MurmurHash.update(hash, a);
hash = MurmurHash.update(hash, b);
return MurmurHash.finish(hash, 2);
}
@Override
public String toString() {
return String.format("(%s, %s)", a, b);
}
}