Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoExporter.java @ 8938:9c02733a1b3c
Work on Sinfo-tkh - exports; using same logic for wst-description as winfo
author | gernotbelger |
---|---|
date | Tue, 06 Mar 2018 17:09:39 +0100 |
parents | 791714b92b5c |
children | 5d5d482da3e9 |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoExporter.java Tue Mar 06 17:08:51 2018 +0100 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoExporter.java Tue Mar 06 17:09:39 2018 +0100 @@ -52,8 +52,11 @@ if (d instanceof CalculationResult) { final Object dat = ((CalculationResult) d).getData(); - if (dat != null) - this.data = (RESULTS) dat; + if (dat != null) { + @SuppressWarnings("unchecked") + final RESULTS result = (RESULTS) dat; + this.data = result; + } } } @@ -67,17 +70,20 @@ final RiverInfo river = results.getRiver(); /* write as csv */ - writeCSVMeta(writer, results); - writeCSVHeader(writer, river); + writeCSVGlobalMetadata(writer, results); + writeCSVHeader(writer, results, river); for (final RESULT result : results.getResults()) { - writeCSVResult(writer, result); + writeCSVResult(writer, results, result); } } - protected abstract void writeCSVHeader(final CSVWriter writer, final RiverInfo river); + protected abstract void writeCSVHeader(final CSVWriter writer, final RESULTS results, final RiverInfo river); - protected abstract void writeCSVMeta(final CSVWriter writer, final RESULTS results); + /** + * Add metadata that is once written to the top of the file. + */ + protected abstract void writeCSVGlobalMetadata(final CSVWriter writer, final RESULTS results); protected final void writeCSVMetaEntry(final CSVWriter writer, final String message, final Object... messageArgs) { @@ -86,27 +92,30 @@ writer.writeNext(new String[] { Resources.getMsg(meta, message, message, messageArgs) }); } - protected final void writeCSVResult(final CSVWriter writer, final RESULT result) { + protected final void writeCSVResult(final CSVWriter writer, final RESULTS results, final RESULT result) { - writeCSVResultHeader(writer, result); + writeCSVResultMetadata(writer, results, result); /* nwo the value rows */ final Collection<ROW> rows = result.getRows(); for (final ROW row : rows) { - writeCSVRow(writer, row); + writeCSVRow(writer, results, row); } } - protected abstract void writeCSVResultHeader(CSVWriter writer, RESULT result); + /** + * Add metadata that is written once per result set. + */ + protected abstract void writeCSVResultMetadata(CSVWriter writer, RESULTS results, RESULT result); - protected final void writeCSVRow(final CSVWriter writer, final ROW row) { + protected final void writeCSVRow(final CSVWriter writer, final RESULTS results, final ROW row) { getLog().debug("writeCSVFlowDepthRow"); - final String[] formattedRow = formatCSVRow(row); + final String[] formattedRow = formatCSVRow(results, row); writer.writeNext(formattedRow); } - protected abstract String[] formatCSVRow(final ROW row); + protected abstract String[] formatCSVRow(RESULTS results, final ROW row); @Override protected final void writePDF(final OutputStream outStream) { @@ -144,7 +153,7 @@ addJRMetaData(source, results); for (final RESULT result : results.getResults()) { - addJRTableData(source, result); + addJRTableData(source, results, result); } return source; @@ -152,16 +161,16 @@ protected abstract void addJRMetaData(final MetaAndTableJRDataSource source, final RESULTS results); - protected final void addJRTableData(final MetaAndTableJRDataSource source, final RESULT result) { + protected final void addJRTableData(final MetaAndTableJRDataSource source, final RESULTS results, final RESULT result) { final Collection<ROW> rows = result.getRows(); for (final ROW row : rows) { - final String[] formattedRow = formatPDFRow(row); + final String[] formattedRow = formatPDFRow(results, row); source.addData(formattedRow); } } - protected abstract String[] formatPDFRow(final ROW row); + protected abstract String[] formatPDFRow(RESULTS results, final ROW row); } \ No newline at end of file