@@ -0,0 +1,1739 @@
+/*%0A * JVSTM: a Java library for Software Transactional Memory%0A * Copyright (C) 2005 INESC-ID Software Engineering Group%0A * http://www.esw.inesc-id.pt%0A *%0A * This library is free software; you can redistribute it and/or%0A * modify it under the terms of the GNU Lesser General Public%0A * License as published by the Free Software Foundation; either%0A * version 2.1 of the License, or (at your option) any later version.%0A *%0A * This library is distributed in the hope that it will be useful,%0A * but WITHOUT ANY WARRANTY; without even the implied warranty of%0A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU%0A * Lesser General Public License for more details.%0A *%0A * You should have received a copy of the GNU Lesser General Public%0A * License along with this library; if not, write to the Free Software%0A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA%0A *%0A * Author's contact:%0A * INESC-ID Software Engineering Group%0A * Rua Alves Redol 9%0A * 1000 - 029 Lisboa%0A * Portugal%0A */%0Apackage jvstm.util;%0A%0Apublic class Pair%3CE1,E2%3E %7B%0A    public E1 first;%0A    public E2 second;%0A%0A    public Pair() %7B%0A    %7D%0A%0A    public Pair(E1 first, E2 second) %7B%0A        this.first = first;%0A        this.second = second;%0A    %7D%0A%0A    @Override%0A    public int hashCode() %7B%0A        return first.hashCode() + second.hashCode();%0A    %7D%0A%0A    @Override%0A    public boolean equals(Object other) %7B%0A        if ((other != null) && (other.getClass() == this.getClass())) %7B%0A            Pair p2 = (Pair)other;%0A            return eq(this.first, p2.first) && eq(this.second, p2.second);%0A        %7D%0A        return false;%0A    %7D%0A%0A    private static boolean eq(Object o1, Object o2) %7B%0A        return ((o1 == o2) %7C%7C ((o1 != null) && o1.equals(o2)));%0A    %7D%0A%7D%0A

add the jvstm.util.Pair class