}
@Override
- public @Nullable Double resolveDouble(@NonNull LamiTableEntry entry) {
+ public @Nullable Number resolveNumber(@NonNull LamiTableEntry entry) {
if (fIsContinuous) {
try {
if (entry.getValue(fColIndex).toString() != null) {
public Comparator<LamiTableEntry> getComparator() {
if (isContinuous()) {
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 Double.compare(d1.doubleValue(), d2.doubleValue());
};
}
String s1 = resolveString(o1);
String s2 = resolveString(o2);
- if (s1 == null || s2 == null) {
+ if (s1 == null && s2 == null) {
return 0;
}
+ if (s1 == null) {
+ return 1;
+ }
+
+ if (s2 == null) {
+ return -1;
+ }
return s1.compareTo(s2);
};