package com.github.pfichtner.jrunalyser.ui.tracklist;
import com.github.pfichtner.jrunalyser.base.data.WayPoint;
import com.google.common.math.IntMath;
import com.google.common.primitives.Ints;
public class MinMaxElevation implements Comparable<MinMaxElevation> {
private final WayPoint minElevation;
private final WayPoint maxElevation;
public MinMaxElevation(WayPoint minElevation, WayPoint maxElevation) {
this.minElevation = minElevation;
this.maxElevation = maxElevation;
}
public WayPoint getMinElevation() {
return this.minElevation;
}
public WayPoint getMaxElevation() {
return this.maxElevation;
}
public int getDiff() {
return IntMath.checkedSubtract(getMaxElevation().getElevation()
.intValue(), getMinElevation().getElevation().intValue());
}
public int getDiffAbs() {
return Math.abs(getDiff());
}
public String getText() {
return getMinElevation().getElevation().intValue() + "/" //$NON-NLS-1$
+ getMaxElevation().getElevation().intValue();
}
public String getTextLong() {
return getText() + " (" + getDiffAbs() + ")"; //$NON-NLS-1$ //$NON-NLS-2$
}
@Override
public int compareTo(MinMaxElevation other) {
return Ints.compare(getDiffAbs(), other.getDiffAbs());
}
@Override
public int hashCode() {
return getDiff();
}
@Override
public boolean equals(Object obj) {
MinMaxElevation other = (MinMaxElevation) obj;
return getDiff() == other.getDiff()
&& getTextLong().equals(other.getTextLong());
}
@Override
public String toString() {
return getTextLong();
}
}