package dfatool.util;

public class Pair<A,B> {
	
	private A fst;
	private B snd;
	
	public Pair(A fst, B snd) {
		this.fst = fst;
		this.snd = snd;
	}

	public A getFst() {
		return fst;
	}

	public void setFst(A fst) {
		this.fst = fst;
	}

	public B getSnd() {
		return snd;
	}

	public void setSnd(B snd) {
		this.snd = snd;
	}
	
	@Override
	public boolean equals(Object obj) {
		if(obj instanceof Pair){
			Pair<A,B> p = (Pair<A, B>) obj; 
			return fst.equals(p.fst) && snd.equals(p.snd);
		}else{
			return false;
		}
	}
	
	@Override
	public int hashCode() {
		return fst.hashCode() + snd.hashCode();
	}
	
	@Override
	public String toString() {
		return "("+fst+","+snd+")";
	}
	
	

}
