analysis.lami: correctly handle Number (double, long etc.) type graphing
[deliverable/tracecompass.git] / analysis / org.eclipse.tracecompass.analysis.lami.core / src / org / eclipse / tracecompass / internal / provisional / analysis / lami / core / aspect / LamiGenericAspect.java
index 075bdccb08fe8c184454fbc6e172c32b25ef847b..d1db60823b03623dffbf14b4e57d3215678edd9a 100644 (file)
@@ -63,7 +63,7 @@ public class LamiGenericAspect extends LamiTableEntryAspect {
     }
 
     @Override
-    public @Nullable Double resolveDouble(@NonNull LamiTableEntry entry) {
+    public @Nullable Number resolveNumber(@NonNull LamiTableEntry entry) {
         if (fIsContinuous) {
             try {
                 if (entry.getValue(fColIndex).toString() != null) {
@@ -80,13 +80,21 @@ public class LamiGenericAspect extends LamiTableEntryAspect {
     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());
             };
         }
 
@@ -95,9 +103,16 @@ public class LamiGenericAspect extends LamiTableEntryAspect {
             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);
         };
This page took 0.026164 seconds and 5 git commands to generate.