package net.onrc.onos.core.util;

/**
 * A generic class representing a pair of two values.
 */
public class Pair<F, S> {
    public F first;        // The first value in the pair
    public S second;        // The second value in the pair

    /**
     * Constructor for a pair of two values.
     *
     * @param first  the first value in the pair.
     * @param second the second value in the pair.
     */
    public Pair(F first, S second) {
        this.first = first;
        this.second = second;
    }

    @Override
    public String toString() {
        return String.format("<%s, %s>", first, second);
    }
}

@@ -27,16 +27,43 @@
 .util;%0A%0A
+import java.util.Objects;%0A%0A
 /**%0A * A
@@ -639,11 +639,464 @@
 );%0A    %7D
+%0A%0A    @Override%0A    public boolean equals(Object o) %7B%0A        if (o == this) %7B%0A            return true;%0A        %7D%0A%0A        if (!(o instanceof Pair)) %7B%0A            return false;%0A        %7D%0A%0A        Pair%3C?, ?%3E that = (Pair%3C?, ?%3E) o;%0A        return Objects.equals(this.first, that.first)%0A                && Objects.equals(this.second, that.second);%0A    %7D%0A%0A    @Override%0A    public int hashCode() %7B%0A        return Objects.hash(this.first, this.second);%0A    %7D
 %0A%7D%0A

Make Pair class equality comparable