diff artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthdev/FlowDepthDevelopmentExporter.java @ 8953:c40db8e8dcae

SINFO - Flow depth development - implemented exporters
author gernotbelger
date Mon, 19 Mar 2018 14:01:21 +0100
parents 322b0e6298ea
children 7c1611b5a59e
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthdev/FlowDepthDevelopmentExporter.java	Mon Mar 19 09:12:17 2018 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepthdev/FlowDepthDevelopmentExporter.java	Mon Mar 19 14:01:21 2018 +0100
@@ -29,6 +29,14 @@
 // REMARK: must be public because its registered in generators.xml
 public class FlowDepthDevelopmentExporter extends AbstractSInfoExporter<FlowDepthDevelopmentCalculationResult, FlowDepthDevelopmentCalculationResults> {
 
+    private static final String CSV_META_HEADER_SOUNDING_CURRENT = "sinfo.export.csv.meta.header.sounding.current";
+
+    private static final String CSV_META_HEADER_SOUNDING_HISTORICAL = "sinfo.export.csv.meta.header.sounding.historical";
+
+    private static final String CSV_META_HEADER_WATERLEVEL_CURRENT = "sinfo.export.csv.meta.header.waterlevel.current";
+
+    private static final String CSV_META_HEADER_WATERLEVEL_HISTORICAL = "sinfo.export.csv.meta.header.waterlevel.historical";
+
     /** The log used in this exporter. */
     private static Logger log = Logger.getLogger(FlowDepthDevelopmentExporter.class);
 
@@ -43,13 +51,10 @@
     protected void writeCSVResultMetadata(final CSVWriter writer, final FlowDepthDevelopmentCalculationResults results,
             final FlowDepthDevelopmentCalculationResult result) {
 
-        // FIXME: distinguish header labels
-        writeCSVSoundingMetadata(writer, result.getCurrentSounding());
-        writeCSVWaterlevelMetadata(writer, result.getCurrentWst());
-
-        // FIXME: distinguish header labels
-        writeCSVSoundingMetadata(writer, result.getHistoricalSounding());
-        writeCSVWaterlevelMetadata(writer, result.getHistoricalWst());
+        writeCSVSoundingMetadata(writer, result.getCurrentSounding(), CSV_META_HEADER_SOUNDING_CURRENT);
+        writeCSVWaterlevelMetadata(writer, result.getCurrentWst(), CSV_META_HEADER_WATERLEVEL_CURRENT);
+        writeCSVSoundingMetadata(writer, result.getHistoricalSounding(), CSV_META_HEADER_SOUNDING_HISTORICAL);
+        writeCSVWaterlevelMetadata(writer, result.getHistoricalWst(), CSV_META_HEADER_WATERLEVEL_HISTORICAL);
     }
 
     @Override
@@ -71,19 +76,21 @@
     protected void writeCSVHeader(final CSVWriter writer, final FlowDepthDevelopmentCalculationResults results, final RiverInfo river) {
         log.info("FlowDepthExporter.writeCSVHeader");
 
+        final FlowDepthDevelopmentCalculationResult result = results.getResult();
+
         final Collection<String> header = new ArrayList<>(11);
 
         header.add(msg(SInfoResultType.station.getCsvHeader()));
         header.add(msgUnit(SInfoResultType.flowdepthDevelopment.getCsvHeader(), SInfoResultType.flowdepthDevelopment.getUnit()));
         header.add(msgUnit(SInfoResultType.flowdepthDevelopmentPerYear.getCsvHeader(), SInfoResultType.flowdepthDevelopmentPerYear.getUnit()));
-
-        // FIXME: add data-labels in header
-        header.add(msgUnit(SInfoResultType.waterlevelDifference.getCsvHeader(), SInfoResultType.waterlevelDifference.getUnit()));
-        header.add(msgUnit(SInfoResultType.bedHeightDifference.getCsvHeader(), SInfoResultType.bedHeightDifference.getUnit()));
-
-        header.add(msgUnit(SInfoResultType.flowdepthCurrent.getCsvHeader(), SInfoResultType.flowdepthCurrent.getUnit()));
-        header.add(msgUnit(SInfoResultType.flowdepthHistorical.getCsvHeader(), SInfoResultType.flowdepthHistorical.getUnit()));
-
+        header.add(msgUnitLabel(SInfoResultType.waterlevelDifference.getCsvHeader(), SInfoResultType.waterlevelDifference.getUnit(),
+                result.getWaterlevelDifferenceLabel()));
+        header.add(msgUnitLabel(SInfoResultType.bedHeightDifference.getCsvHeader(), SInfoResultType.bedHeightDifference.getUnit(),
+                result.getBedHeightDifferenceLabel()));
+        header.add(
+                msgUnitLabel(SInfoResultType.flowdepthCurrent.getCsvHeader(), SInfoResultType.flowdepthCurrent.getUnit(), result.getFlowDepthCurrentLabel()));
+        header.add(msgUnitLabel(SInfoResultType.flowdepthHistorical.getCsvHeader(), SInfoResultType.flowdepthHistorical.getUnit(),
+                result.getFlowDepthHistoricalLabel()));
         header.add(msg(SInfoResultType.location.getCsvHeader()));
 
         writer.writeNext(header.toArray(new String[header.size()]));
@@ -108,22 +115,12 @@
 
         lines.add(row.exportValue(this.context, SInfoResultType.station));
 
-        // FIXME
-
-        // REMARK: null check as pdf will call this with null and in that case we show all columns (to avoid multiple jasper
-        // FIXME: does not work like this: we may have several pairs of min/max; so we need to look at all of them?
-        // templates)
-        // if (result == null || result.getMinSounding() != null)
-        lines.add(row.exportValue(this.context, SInfoResultType.flowdepthmin));
-        // if (result == null || result.getMaxSounding() != null)
-        lines.add(row.exportValue(this.context, SInfoResultType.flowdepthmax));
-
-        lines.add(row.exportValue(this.context, SInfoResultType.waterlevel));
-        lines.add(row.exportValue(this.context, SInfoResultType.discharge));
-        lines.add(row.exportValue(this.context, SInfoResultType.waterlevelLabel));
-        lines.add(row.exportValue(this.context, SInfoResultType.gaugeLabel));
-        lines.add(row.exportValue(this.context, SInfoResultType.meanBedHeight));
-        lines.add(row.exportValue(this.context, SInfoResultType.soundingLabel));
+        lines.add(row.exportValue(this.context, SInfoResultType.flowdepthDevelopment));
+        lines.add(row.exportValue(this.context, SInfoResultType.flowdepthDevelopmentPerYear));
+        lines.add(row.exportValue(this.context, SInfoResultType.waterlevelDifference));
+        lines.add(row.exportValue(this.context, SInfoResultType.bedHeightDifference));
+        lines.add(row.exportValue(this.context, SInfoResultType.flowdepthCurrent));
+        lines.add(row.exportValue(this.context, SInfoResultType.flowdepthHistorical));
         lines.add(row.exportValue(this.context, SInfoResultType.location));
 
         return lines.toArray(new String[lines.size()]);
@@ -140,17 +137,25 @@
         /* general metadata */
         super.addJRMetaDataDefaults(source, results);
 
+        final FlowDepthDevelopmentCalculationResult result = results.getResult();
+
         /* column headings */
-        // FIXME
         source.addMetaData("station_header", SInfoResultType.station.getPdfHeader(this.context.getMeta()));
-        source.addMetaData("flowdepthmin_header", SInfoResultType.flowdepthmin.getPdfHeader(this.context.getMeta()));
-        source.addMetaData("flowdepthmax_header", SInfoResultType.flowdepthmax.getPdfHeader(this.context.getMeta()));
-        source.addMetaData("waterlevel_header", SInfoResultType.waterlevel.getPdfHeader(this.context.getMeta()));
-        source.addMetaData("discharge_header", SInfoResultType.discharge.getPdfHeader(this.context.getMeta()));
-        source.addMetaData("waterlevel_name_header", SInfoResultType.waterlevelLabel.getPdfHeader(this.context.getMeta()));
-        source.addMetaData("gauge_header", SInfoResultType.gaugeLabel.getPdfHeader(this.context.getMeta()));
-        source.addMetaData("bedheight_header", SInfoResultType.meanBedHeight.getPdfHeader(this.context.getMeta()));
-        source.addMetaData("sounding_name_header", SInfoResultType.soundingLabel.getPdfHeader(this.context.getMeta()));
+        source.addMetaData("flowdeptdevelopment_header", SInfoResultType.flowdepthDevelopment.getPdfHeader(this.context.getMeta()));
+        source.addMetaData("flowdeptdevelopmentperyear_header", SInfoResultType.flowdepthDevelopmentPerYear.getPdfHeader(this.context.getMeta()));
+
+        source.addMetaData("waterleveldifference_header", SInfoResultType.waterlevelDifference.getPdfHeader(this.context.getMeta()));
+        source.addMetaData("waterleveldifference_header_label", result.getWaterlevelDifferenceLabel());
+
+        source.addMetaData("bedheightdifference_header", SInfoResultType.bedHeightDifference.getPdfHeader(this.context.getMeta()));
+        source.addMetaData("bedheightdifference_header_label", result.getBedHeightDifferenceLabel());
+
+        source.addMetaData("flowdepthcurrent_header", SInfoResultType.flowdepthCurrent.getPdfHeader(this.context.getMeta()));
+        source.addMetaData("flowdepthcurrent_header_label", result.getFlowDepthCurrentLabel());
+
+        source.addMetaData("flowdepthhistorical_header", SInfoResultType.flowdepthHistorical.getPdfHeader(this.context.getMeta()));
+        source.addMetaData("flowdepthhistorical_header_label", result.getFlowDepthHistoricalLabel());
+
         source.addMetaData("location_header", SInfoResultType.location.getPdfHeader(this.context.getMeta()));
     }
 

http://dive4elements.wald.intevation.org