/* * Copyright LGPL3 * YES Technology Association * http://yestech.org * * http://www.opensource.org/licenses/lgpl-3.0.html */ /* * * Author: Artie Copeland * Last Modified Date: $DateTime: $ */ package org.yestech.lib.util; /** * Represents a tuple of 2 * * @author Artie Copeland * @version $Revision: $ */ public class Pair<T1, T2> implements ITuple { private T1 first; private T2 second; private static final long serialVersionUID = 5366420016223666321L; public Pair() { } public Pair(T1 first, T2 second) { this.first = first; this.second = second; } public T1 getFirst() { return first; } public void setFirst(T1 first) { this.first = first; } public T2 getSecond() { return second; } public void setSecond(T2 second) { this.second = second; } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Pair)) return false; Pair pair = (Pair) o; if (first != null ? !first.equals(pair.first) : pair.first != null) return false; if (second != null ? !second.equals(pair.second) : pair.second != null) return false; return true; } @Override public int hashCode() { int result = first != null ? first.hashCode() : 0; result = 31 * result + (second != null ? second.hashCode() : 0); return result; } @Override public String toString() { return "Pair{" + "first=" + first + ", second=" + second + '}'; } public static <F, S> Pair<F, S> create(F first, S second) { return new Pair<F, S>(first, second); } }