package com.beoui.geocell.comparator; import com.beoui.geocell.model.LocationCapable; import com.beoui.geocell.model.Tuple; /** * This class is used to merge lists of Tuple<T, Double>. Lists are sorted following Double value but are equals only if T.key (same entity) are equals. * * @author Alexandre Gellibert * * @param <T> */ @Deprecated public class LocationComparableTuple<T extends LocationCapable> extends Tuple<T ,Double> implements Comparable<LocationComparableTuple<T>>{ public LocationComparableTuple(T first, Double second) { super(first, second); } public int compareTo(LocationComparableTuple<T> o) { if(o == null) { return -1; } int doubleCompare = this.getSecond().compareTo(o.getSecond()); if(doubleCompare == 0) { return this.getFirst().getKeyString().compareTo(o.getFirst().getKeyString()); } else { return doubleCompare; } } @Override @SuppressWarnings("unchecked") public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } LocationComparableTuple<LocationCapable> other = (LocationComparableTuple<LocationCapable>) obj; if (getFirst() == null) { if (other.getFirst() != null) { return false; } } else if (!getFirst().getKeyString().equals(other.getFirst().getKeyString())) { return false; } return true; } @Override public int hashCode() { return getFirst().getKeyString().hashCode(); } }