@SuppressWarnings("rawtypes")
	@Override
	public boolean equals(Object obj) {

		if (obj == null) {
			return false;
		}

		if (getClass() != obj.getClass()) {
			return false;
		}

		final Pair other = (Pair) obj;

		if (this.first != other.first && (this.first == null || !this.first.equals(other.first))) {
			return false;
		}

		if (this.second != other.second && (this.second == null || !this.second.equals(other.second))) {
			return false;
		}

		return true;
	}