Mercurial > dive4elements > river
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())); }