}
@Override
- public @Nullable Double resolveDouble(@NonNull LamiTableEntry entry) {
+ public @Nullable Number resolveNumber(@NonNull LamiTableEntry entry) {
LamiData data = entry.getValue(fColIndex);
if (data instanceof LamiInteger) {
LamiInteger range = (LamiInteger) data;
- return Double.valueOf(range.getValue());
+ return Long.valueOf(range.getValue());
}
return null;
}
@Override
public Comparator<LamiTableEntry> getComparator() {
return (o1, o2) -> {
- Double dO1 = resolveDouble(o1);
- Double dO2 = resolveDouble(o2);
- if (dO1 == null || dO2 == null) {
+ Number d1 = resolveNumber(o1);
+ Number d2 = resolveNumber(o2);
+
+ if (d1 == null && d2 == null) {
return 0;
}
+ if (d1 == null) {
+ return 1;
+ }
+
+ if (d2 == null) {
+ return -1;
+ }
- return dO1.compareTo(dO2);
+ return Long.compare(d1.longValue(), d2.longValue());
};
}