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 0c6ca85152ef21a72033e256889627318774a05b..a25fde8da164ed31931e71eb3af3fcf7fa366043 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 905a075dcf60ae76ffa9dea58cc41805141562fd..26db5673fb408464262c0da1444caa9f2297db72 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 6a9fd5ed9369a1b25af7385feaad245a7a9472d9..296635d0441b6c5e25dbf655cc16c6bcae9d55db 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);