public SecurityAnalysisResultComparisonWriter(Writer writer) { Objects.requireNonNull(writer); formatter = new CsvTableFormatterFactory().create(writer, "Security Analysis Results Comparison", TableFormatterConfig.load(), getColumns()); }
private void exportResult(LoadFlowResult result, ToolRunningContext context, Path outputFile, Format format) { context.getOutputStream().println("Writing results to '" + outputFile + "'"); switch (format) { case CSV: CsvTableFormatterFactory csvTableFormatterFactory = new CsvTableFormatterFactory(); printLoadFlowResult(result, outputFile, csvTableFormatterFactory, TableFormatterConfig.load()); break; case JSON: LoadFlowResultSerializer.write(result, outputFile); break; } } }
public void writeCsv(Writer writer, Locale locale, char separator, boolean writeHeaders) throws IOException { Objects.requireNonNull(writer); TableFormatterConfig formatterConfig = new TableFormatterConfig(locale, separator, "", writeHeaders, false); CsvTableFormatterFactory csvTableFormatterFactory = new CsvTableFormatterFactory(); Column[] cols = headers.stream().map(h -> new Column(h.getName())).toArray(sz -> new Column[sz]); try (TableFormatter formatter = csvTableFormatterFactory.create(writer, "", formatterConfig, cols)) { records.forEach(r -> { r.getValues().forEach(a -> { try { if ("".equals(a.toString())) { formatter.writeEmptyCell(); } else { formatter.writeCell(a.toString()); } } catch (IOException e) { throw new UncheckedIOException(e); } }); }); writer.flush(); } }
private void exportPreventiveActionsApplication(Path folder) throws IOException { LOGGER.info("Exporting preventive action application report of basecase {} to file {}", basecase, folder + File.separator + POST_PREVENTIVE_ACTIONS_FILE); Path violationsPath = folder.resolve(POST_PREVENTIVE_ACTIONS_FILE); Column[] columns = { new Column("Basecase"), new Column("ActionId"), new Column("ViolatedEquipment"), new Column("ViolationType"), new Column("FailureStep"), new Column("FailureDescription"), new Column("ViolationRemoved"), new Column("ActionApplied"), new Column("Comment") }; CsvTableFormatterFactory factory = new CsvTableFormatterFactory(); try (Writer writer = Files.newBufferedWriter(violationsPath, StandardCharsets.UTF_8); TableFormatter formatter = factory.create(writer, POST_PREVENTIVE_ACTIONS_TITLE, tableFormatterConfig, columns)) { writeActionsApplications(formatter, null, new ArrayList<>(preventiveActionsApplication.values())); } }
@Test public void testCsv() throws IOException { ByteArrayOutputStream bos = new ByteArrayOutputStream(); TableFormatterConfig config = new TableFormatterConfig(Locale.US, ';', "inv", true, true); CsvTableFormatterFactory factory = new CsvTableFormatterFactory(); try (Writer writer = new OutputStreamWriter(bos, StandardCharsets.UTF_8); TableFormatter formatter = factory.create(writer, "csv test", config, COLUMNS)) { write(formatter); } assertEquals("csv test" + System.lineSeparator() + "int;double;float;bool;empty;char;string;empty2" + System.lineSeparator() + ";;;;;;;" + System.lineSeparator() + "2;inv;2.40000;true;;a;aaa;" + System.lineSeparator() + ";;;;;;;" + System.lineSeparator() + ";;;;;;;" + System.lineSeparator() + "3;4.20000;inv;false;;b;bbb;" + System.lineSeparator(), new String(bos.toByteArray(), StandardCharsets.UTF_8)); }
private void exportCurativeActionsApplication(Path folder) throws IOException { LOGGER.info("Exporting curative action application report of basecase {} to file {}", basecase, folder + File.separator + POST_CURATIVE_ACTIONS_FILE); Path violationsPath = folder.resolve(POST_CURATIVE_ACTIONS_FILE); Column[] columns = { new Column("Basecase"), new Column("Contingency"), new Column("ActionId"), new Column("ViolatedEquipment"), new Column("ViolationType"), new Column("FailureStep"), new Column("FailureDescription"), new Column("ViolationRemoved"), new Column("ActionApplied"), new Column("Comment") }; CsvTableFormatterFactory factory = new CsvTableFormatterFactory(); try (Writer writer = Files.newBufferedWriter(violationsPath, StandardCharsets.UTF_8); TableFormatter formatter = factory.create(writer, POST_CURATIVE_ACTIONS_TITLE, tableFormatterConfig, columns)) { if (!postContingenciesStatus.isEmpty()) { postContingenciesStatus.forEach(postContingencyStatus -> { writeActionsApplications(formatter, postContingencyStatus.getContingencyId(), postContingencyStatus.getCurativeActionsApplication()); }); } } }
private void exportViolations(Path folder, String file, String title, WCALoadflowResult loadflowResult, List<LimitViolation> violations) throws IOException { Path violationsPath = folder.resolve(file); Column[] columns = { new Column("Basecase"), new Column("FailureStep"), new Column("FailureDescription"), new Column("ViolationType"), new Column("Equipment"), new Column("Value"), new Column("Limit"), new Column("Country"), new Column("BaseVoltage"), new Column("Side"), }; CsvTableFormatterFactory factory = new CsvTableFormatterFactory(); try (Writer writer = Files.newBufferedWriter(violationsPath, StandardCharsets.UTF_8); TableFormatter formatter = factory.create(writer, title, tableFormatterConfig, columns)) { writeViolations(formatter, null, loadflowResult, violations); } }
new Column("Side") }; CsvTableFormatterFactory factory = new CsvTableFormatterFactory(); try (Writer writer1 = Files.newBufferedWriter(violationsPath1, StandardCharsets.UTF_8); TableFormatter formatter1 = factory.create(writer1, POST_CONTINGENCY_VIOLATIONS_WITHOUT_UNCERTAINTIES_TITLE, tableFormatterConfig, columns);
new Column("Cause") }; CsvTableFormatterFactory factory = new CsvTableFormatterFactory(); try (Writer writer = Files.newBufferedWriter(violationsPath, StandardCharsets.UTF_8); TableFormatter formatter = factory.create(writer, SECURITY_RULES_VIOLATIONS_WITHOUT_UNCERTAINTIES_TITLE, tableFormatterConfig, columns)) {