Mega Code Archive

 
Categories / Java / Generics
 

Generic Pair

/**  * This program is free software; you can redistribute it and/or modify  * it under the terms of the GNU General Public License as published by  * the Free Software Foundation; either version 2 of the License, or  * (at your option) any later version.  *   *  This program 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 General Public License for more details.  *    *  You should have received a copy of the GNU General Public License  *  along with this program; if not, write to the Free Software  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */ //package org.cspoker.common.util; public class Pair<L,R> {   private final L left;   private final R right;      public Pair(L left, R right) {     if(left==null){       throw new IllegalArgumentException("Left value is not effective.");     }     if(right==null){       throw new IllegalArgumentException("Right value is not effective.");     }     this.left =left;     this.right = right;   }      public L getLeft() {     return this.left;   }      public R getRight() {     return this.right;   }   @Override   public int hashCode() {     final int prime = 31;     int result = 1;     result = prime * result + ((left == null) ? 0 : left.hashCode());     result = prime * result + ((right == null) ? 0 : right.hashCode());     return result;   }   @SuppressWarnings("unchecked")   @Override   public boolean equals(Object obj) {     if (this == obj)       return true;     if (obj == null)       return false;     if (!(obj instanceof Pair))       return false;     Pair<Object, Object> other = (Pair<Object, Object>) obj;     if (left == null) {       if (other.left != null)         return false;     } else if (!left.equals(other.left))       return false;     if (right == null) {       if (other.right != null)         return false;     } else if (!right.equals(other.right))       return false;     return true;   }      @Override   public String toString() {     return "<"+left.toString()+","+right.toString()+">";   }    }