Pair.java
01 /*
02  *  Pair.java
03  *
04  *  Copyright (c) 1995-2012, The University of Sheffield. See the file
05  *  COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
06  *
07  *  This file is part of GATE (see http://gate.ac.uk/), and is free
08  *  software, licenced under the GNU Library General Public License,
09  *  Version 2, June 1991 (in the distribution as file licence.html,
10  *  and also available at http://gate.ac.uk/gate/licence.html).
11  *
12  *  Kalina Bontcheva, 13/Sept/2001
13  *
14  *  $Id: Pair.java 17530 2014-03-04 15:57:43Z markagreenwood $
15  */
16 
17 
18 package gate.util;
19 
20 // Imports
21 import java.io.Serializable;
22 
23 public class Pair implements Serializable {
24 
25   // Fields
26   public Object first;
27   public Object second;
28   static final long serialVersionUID = 3690756099267025454L;
29 
30   // Constructors
31   public Pair(Object p0, Object p1) { first = p0; second = p1;}
32   public Pair() { first = null; second = null;}
33   public Pair(Pair p0) {first = p0.first; second = p0.second; }
34 
35   // Methods
36   @Override
37   public String toString() { return "<" + first.toString() +
38                                     ", " + second.toString() ">" ;}
39   
40   @Override
41   public int hashCode() {
42     final int prime = 31;
43     int result = 1;
44     result = prime * result + ((first == null: first.hashCode());
45     result = prime * result + ((second == null: second.hashCode());
46     return result;
47   }
48   
49   @Override
50   public boolean equals(Object obj) {
51     if(this == objreturn true;
52     if(obj == nullreturn false;
53     if(getClass() != obj.getClass()) return false;
54     Pair other = (Pair)obj;
55     if(first == null) {
56       if(other.first != nullreturn false;
57     else if(!first.equals(other.first)) return false;
58     if(second == null) {
59       if(other.second != nullreturn false;
60     else if(!second.equals(other.second)) return false;
61     return true;
62   }
63   
64   @Override
65   public synchronized Object clone() { return new Pair(first, second)}
66 }