From df17e6dd07f16eddebb5902d5e15b8c47107eb0c Mon Sep 17 00:00:00 2001 From: Reiner Jung <reiner.jung@email.uni-kiel.de> Date: Sun, 29 Nov 2020 17:27:25 +0100 Subject: [PATCH] Improved compile results with time and build numbers. --- .../compile/results/CompileResultsMain.java | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/tools/compile-results/src/main/java/moobench/tools/compile/results/CompileResultsMain.java b/tools/compile-results/src/main/java/moobench/tools/compile/results/CompileResultsMain.java index 6b40cde..5bbf3fa 100644 --- a/tools/compile-results/src/main/java/moobench/tools/compile/results/CompileResultsMain.java +++ b/tools/compile-results/src/main/java/moobench/tools/compile/results/CompileResultsMain.java @@ -7,6 +7,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -21,13 +22,14 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.DoubleNode; import com.fasterxml.jackson.databind.node.JsonNodeFactory; +import com.fasterxml.jackson.databind.node.LongNode; import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.ObjectMapper; /** * Read the CSV output of the R script and the existing JSON file and append a * record to the JSON file based on the CSV dataset. - * + * * @author Reiner Jung * */ @@ -51,6 +53,24 @@ public class CompileResultsMain { ArrayNode arrayResultsNode = (ArrayNode)resultsNode; + long build = arrayResultsNode.size(); + + /** Fix old data in necessary. */ + for (int i=0;i<arrayResultsNode.size();i++) { + JsonNode node = arrayResultsNode.get(i); + if (node instanceof ObjectNode) { + ObjectNode objectNode = (ObjectNode)node; + JsonNode timeValue = objectNode.get("time"); + if (timeValue == null) { + objectNode.put("time", new Date().getTime()); + } + JsonNode buildValue = objectNode.get("build"); + if (buildValue == null) { + objectNode.put("build", i); + } + } + } + /** Read CSV file. */ final CSVParser csvParser = new CSVParser(Files.newBufferedReader(Paths.get(args[0])), CSVFormat.DEFAULT.withHeader()); @@ -59,13 +79,18 @@ public class CompileResultsMain { JsonNodeFactory factory = JsonNodeFactory.instance; /** Put CSV in JSON. */ - for (CSVRecord record : csvParser.getRecords()) { + for (CSVRecord record : csvParser.getRecords()) { Map<String, JsonNode> recordMap = new HashMap<>(); + recordMap.put("time",new LongNode(new Date().getTime())); + recordMap.put("build",new LongNode(build++)); for (int i=0; i < record.size(); i++) { recordMap.put(header.get(i), new DoubleNode(Double.parseDouble(record.get(i)))); } arrayResultsNode.add(new ObjectNode(factory, recordMap)); } + + /** Check consistency. */ + /** Write JSON file. */ ObjectMapper mapper = new ObjectMapper(); -- GitLab