From f37306180384bc15ff272770b4541f1383acc0d7 Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Fri, 3 Jul 2015 00:32:52 +0000 Subject: [PATCH] Bug fix in new export results code: it should be possible to use CSV *and* matrix format. git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10162 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/src/prism/PrismCL.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/prism/src/prism/PrismCL.java b/prism/src/prism/PrismCL.java index 76a3409a..0c95e669 100644 --- a/prism/src/prism/PrismCL.java +++ b/prism/src/prism/PrismCL.java @@ -77,6 +77,7 @@ public class PrismCL implements PrismModelListener private boolean exportbsccs = false; private boolean exportmecs = false; private boolean exportresults = false; + private boolean exportresultsmatrix = false; private String exportResultsFormat = "plain"; private boolean exportPlainDeprecated = false; private boolean exportModelNoBasename = false; @@ -442,7 +443,7 @@ public class PrismCL implements PrismModelListener // export results (if required) if (exportresults) { ResultsExporter exporter = new ResultsExporter(exportResultsFormat, "string"); - mainLog.print("\nExporting results " + (exportResultsFormat.equals("matrix") ? "in matrix form " : "")); + mainLog.print("\nExporting results " + (exportresultsmatrix ? "in matrix form " : "")); mainLog.println(exportResultsFilename.equals("stdout") ? "below:\n" : "to file \"" + exportResultsFilename + "\"..."); PrismFileLog tmpLog = new PrismFileLog(exportResultsFilename); if (!tmpLog.ready()) { @@ -452,16 +453,21 @@ public class PrismCL implements PrismModelListener if (i > 0) tmpLog.println(); if (numPropertiesToCheck > 1) { - if (!exportResultsFormat.equals("matrix")) { + if (!exportresultsmatrix) { exporter.setProperty(propertiesToCheck.get(i)); } else { - tmpLog.print(propertiesToCheck.get(i) + ":\n"); + if (exportResultsFormat.equalsIgnoreCase("csv")) { + tmpLog.print( "\"" + propertiesToCheck.get(i).toString().replaceAll("\"", "\\\\\"") + "\"\n"); + } else { + tmpLog.print(propertiesToCheck.get(i) + ":\n"); + } } } - if (!exportResultsFormat.equals("matrix")) { + if (!exportresultsmatrix) { tmpLog.println(results[i].export(exporter).getExportString()); } else { - tmpLog.println(results[i].toStringMatrix("\t")); + String sep = exportResultsFormat.equals("plain") ? "\t" : ", "; + tmpLog.println(results[i].toStringMatrix(sep)); } } tmpLog.close(); @@ -1139,7 +1145,7 @@ public class PrismCL implements PrismModelListener } else if (ss[j].equals("csv")) exportResultsFormat = "csv"; else if (ss[j].equals("matrix")) - exportResultsFormat = "matrix"; + exportresultsmatrix = true; else if (ss[j].equals("comment")) exportResultsFormat = "comment"; else