From 77ba04e77a93c24cf2d5703532c502c78c49c0d0 Mon Sep 17 00:00:00 2001
From: Reiner Jung <reiner.jung@email.uni-kiel.de>
Date: Tue, 13 Sep 2022 13:51:24 +0200
Subject: [PATCH] Updated sort order in json files.

---
 .../moobench/tools/results/data/Chart.java    | 58 ++++++++++++-------
 .../tools/results/data/ValueTuple.java        | 32 +++++-----
 .../tools/results/stages/JsonChartSink.java   |  3 +
 3 files changed, 57 insertions(+), 36 deletions(-)

diff --git a/tools/compile-results/src/main/java/moobench/tools/results/data/Chart.java b/tools/compile-results/src/main/java/moobench/tools/results/data/Chart.java
index 0c6ca85..a25fde8 100644
--- a/tools/compile-results/src/main/java/moobench/tools/results/data/Chart.java
+++ b/tools/compile-results/src/main/java/moobench/tools/results/data/Chart.java
@@ -1,27 +1,45 @@
 package moobench.tools.results.data;
 
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 
 public class Chart {
-	
-	final String name;
-	final List<String> headers = new ArrayList<>();
-	final List<ValueTuple> values = new ArrayList<ValueTuple>();
-	
-	public Chart(String name) {
-		this.name = name;
-	}
-	
-	public String getName() {
-		return name;
-	}
-
-	public List<String> getHeaders() {
-		return headers;
-	}
-	
-	public List<ValueTuple> getValues() {
-		return values;
-	}	
+
+    final String name;
+    final List<String> headers = new ArrayList<>();
+    final List<ValueTuple> values = new ArrayList<ValueTuple>();
+
+    public Chart(final String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return this.name;
+    }
+
+    public List<String> getHeaders() {
+        return this.headers;
+    }
+
+    public List<ValueTuple> getValues() {
+        return this.values;
+    }
+
+    public void sort() {
+        Collections.sort(this.values, new Comparator<ValueTuple>() {
+
+            @Override
+            public int compare(final ValueTuple left, final ValueTuple right) {
+                if (left.getTimestamp() < right.getTimestamp()) {
+                    return -1;
+                } else if (left.getTimestamp() > right.getTimestamp()) {
+                    return 1;
+                } else {
+                    return 0;
+                }
+            }
+        });
+    }
 }
diff --git a/tools/compile-results/src/main/java/moobench/tools/results/data/ValueTuple.java b/tools/compile-results/src/main/java/moobench/tools/results/data/ValueTuple.java
index 905a075..26db567 100644
--- a/tools/compile-results/src/main/java/moobench/tools/results/data/ValueTuple.java
+++ b/tools/compile-results/src/main/java/moobench/tools/results/data/ValueTuple.java
@@ -4,20 +4,20 @@ import java.util.ArrayList;
 import java.util.List;
 
 public class ValueTuple {
-	
-	long timestamp;
-	
-	List<Double> values = new ArrayList<>();
-	
-	public ValueTuple(long timestamp) {
-		this.timestamp = timestamp;
-	}
-	
-	public long getTimestamp() {
-		return timestamp;
-	}
-	
-	public List<Double> getValues() {
-		return values;
-	}
+
+    private final long timestamp;
+
+    List<Double> values = new ArrayList<>();
+
+    public ValueTuple(final long timestamp) {
+        this.timestamp = timestamp;
+    }
+
+    public long getTimestamp() {
+        return this.timestamp;
+    }
+
+    public List<Double> getValues() {
+        return this.values;
+    }
 }
diff --git a/tools/compile-results/src/main/java/moobench/tools/results/stages/JsonChartSink.java b/tools/compile-results/src/main/java/moobench/tools/results/stages/JsonChartSink.java
index 6a9fd5e..296635d 100644
--- a/tools/compile-results/src/main/java/moobench/tools/results/stages/JsonChartSink.java
+++ b/tools/compile-results/src/main/java/moobench/tools/results/stages/JsonChartSink.java
@@ -28,7 +28,10 @@ public class JsonChartSink extends AbstractConsumerStage<Chart> {
         final ObjectNode node = mapper.createObjectNode();
         final ArrayNode arrayNode = node.putArray("results");
 
+        chart.sort();
+
         for(final ValueTuple value : chart.getValues()) {
+            System.err.printf("time %d\n", value.getTimestamp());
             final ObjectNode objectNode = mapper.createObjectNode();
             for (int i = 0;i < chart.getHeaders().size();i++) {
                 final String name = chart.getHeaders().get(i);
-- 
GitLab