//
// $Id: Tuple.java,v 1.2 2001/08/11 22:43:29 mdb Exp $
//
// samskivert library - useful routines for java programs
// Copyright (C) 2001 Michael Bayne
// 
// This library is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License as published
// by the Free Software Foundation; either version 2.1 of the License, or
// (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

package com.samskivert.util;

/**
 * A tuple is a simple object that holds a reference to two other objects.
 */
public class Tuple
{
    /** The left object. */
    public Object left;

    /** The right object. */
    public Object right;

    /** Construct a tuple with the specified two objects. */
    public Tuple (Object left, Object right)
    {
        this.left = left;
        this.right = right;
    }

    /** Construct a blank tuple. */
    public Tuple ()
    {
    }

    public String toString ()
    {
        return "[left=" + left + ", right=" + right + "]";
    }
}

@@ -23,29 +23,29 @@
 v 1.
-2
+3
  2001/
-08/11 22:43:29
+11/26 19:22:12
  mdb
@@ -996,16 +996,156 @@
 bjects.%0A
+ * It provides hashcode and equality semantics that allow it to be used to%0A * combine two objects into a single key (for hashtables, etc.).%0A
  */%0Apubl
@@ -1507,24 +1507,690 @@
    %7B%0A    %7D%0A%0A
+    /**%0A     * Returns the combined hashcode of the two elements.%0A     */%0A    public int hashCode ()%0A    %7B%0A        return left.hashCode() %5E right.hashCode();%0A    %7D%0A%0A    /**%0A     * A tuple is equal to another tuple if the left and right elements%0A     * are equal to the left and right elements (respectively) of the%0A     * other tuple.%0A     */%0A    public boolean equals (Object other)%0A    %7B%0A        if (other instanceof Tuple) %7B%0A            Tuple to = (Tuple)other;%0A            return (left.equals(to.left) && right.equals(to.right));%0A        %7D else %7B%0A            return false;%0A        %7D%0A    %7D%0A%0A    /**%0A     * Generates a string representation of this tuple.%0A     */%0A
     public S

Add equals() and hashCode() implementations that allow a Tuple to be used as a HashMap key.