f@0: /*
f@0: CCmI Editor - A Collaborative Cross-Modal Diagram Editing Tool
f@0:
f@0: Copyright (C) 2011 Queen Mary University of London (http://ccmi.eecs.qmul.ac.uk/)
f@0:
f@0: This program is free software: you can redistribute it and/or modify
f@0: it under the terms of the GNU General Public License as published by
f@0: the Free Software Foundation, either version 3 of the License, or
f@0: (at your option) any later version.
f@0:
f@0: This program is distributed in the hope that it will be useful,
f@0: but WITHOUT ANY WARRANTY; without even the implied warranty of
f@0: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
f@0: GNU General Public License for more details.
f@0:
f@0: You should have received a copy of the GNU General Public License
f@0: along with this program. If not, see .
f@0: */
f@0:
f@0: package uk.ac.qmul.eecs.ccmi.utils;
f@0:
f@0: /**
f@0: *
f@0: * A Pair of objects.
f@0: *
f@0: * @param The first item type
f@0: * @param The second item type
f@0: */
f@0: public class Pair {
f@0: public Pair(T1 first, T2 second){
f@0: this.first = first;
f@0: this.second = second;
f@0: }
f@0:
f@0: @Override
f@0: public int hashCode() {
f@0: final int prime = 31;
f@0: int result = 1;
f@0: result = prime * result + ((first == null) ? 0 : first.hashCode());
f@0: result = prime * result + ((second == null) ? 0 : second.hashCode());
f@0: return result;
f@0: }
f@0:
f@0: @Override
f@0: public boolean equals(Object obj) {
f@0: if (this == obj)
f@0: return true;
f@0: if (obj == null)
f@0: return false;
f@0: if (getClass() != obj.getClass())
f@0: return false;
f@0: @SuppressWarnings("rawtypes")
f@0: Pair other = (Pair) obj;
f@0: if (first == null) {
f@0: if (other.first != null)
f@0: return false;
f@0: } else if (!first.equals(other.first))
f@0: return false;
f@0: if (second == null) {
f@0: if (other.second != null)
f@0: return false;
f@0: } else if (!second.equals(other.second))
f@0: return false;
f@0: return true;
f@0: }
f@0:
f@0: /**
f@0: * the first item of the pair
f@0: */
f@0: public T1 first;
f@0: /**
f@0: * the second item of the pair
f@0: */
f@0: public T2 second;
f@0: }