zcommon/src/main/java/org/zkoss/util/Pair.java

Summary

Maintainability
A
0 mins
Test Coverage
/* Pair.java


    Purpose: 
    Description: 
    History:
     2001/8/8, Tom M. Yeh: Created.


Copyright (C) 2001 Potix Corporation. All Rights Reserved.

{{IS_RIGHT
    This program is distributed under LGPL Version 2.1 in the hope that
    it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.util;

import org.zkoss.lang.Objects;

/**
 * A pair of keys. It is used with DualHashSet and DualHashMap to
 * represent a pair of keys as an object.
 *
 * @author tomyeh
 */
public class Pair<X, Y> implements java.io.Serializable {
    /** The first key. */
    public final X x;
    /** The second key. */
    public final Y y;

    public Pair(X x, Y y) {
        this.x = x;
        this.y = y;
    }
    protected Pair() {
        this(null, null);
    }

    /** Returns the first value of the pair.
     */
    public X getX() {
        return this.x;
    }
    /** Returns the second value of the pair.
     */
    public Y getY() {
        return this.y;
    }

    //-- Object --//
    public final boolean equals(Object o) {
        if (this == o) return true;
        if (!(o instanceof Pair))
            return false;
        final Pair pair = (Pair)o;
        return Objects.equals(x, pair.x) &&
                Objects.equals(y, pair.y);
    }
    public final int hashCode() {
        return Objects.hashCode(x) ^ Objects.hashCode(y);
    }

    public String toString() {
        return '(' + Objects.toString(x) + ", "  + Objects.toString(y) + ')';
    }
}