| package org.testng.internal.collections; |
| |
| import org.testng.collections.Objects; |
| |
| |
| |
| |
| |
| public class Pair<A, B> { |
| private final A first; |
| private final B second; |
| |
| public Pair(A first, B second) { |
| this.first = first; |
| this.second = second; |
| } |
| |
| public A first() { |
| return first; |
| } |
| |
| public B second() { |
| return second; |
| } |
| |
| @Override |
| public int hashCode() { |
| final int prime = 31; |
| int result = 1; |
| result = prime * result + ((first == null) ? 0 : first.hashCode()); |
| result = prime * result + ((second == null) ? 0 : second.hashCode()); |
| return result; |
| } |
| |
| @Override |
| public boolean equals(Object obj) { |
| if (this == obj) { |
| return true; |
| } |
| if (obj == null) { |
| return false; |
| } |
| if (getClass() != obj.getClass()) { |
| return false; |
| } |
| final Pair other = (Pair) obj; |
| if (first == null) { |
| if (other.first != null) { |
| return false; |
| } |
| } |
| else if (!first.equals(other.first)) { |
| return false; |
| } |
| if (second == null) { |
| if (other.second != null) { |
| return false; |
| } |
| } |
| else if (!second.equals(other.second)) { |
| return false; |
| } |
| return true; |
| } |
| |
| public static <A, B> Pair<A, B> create(A first, B second) { |
| return of(first, second); |
| } |
| |
| public static <A, B> Pair<A, B> of(A a, B b) { |
| return new Pair<>(a, b); |
| } |
| |
| @Override |
| public String toString() { |
| return Objects.toStringHelper(getClass()) |
| .add("first", first()) |
| .add("second", second()) |
| .toString(); |
| } |
| } |