Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/exports/FixWaterlevelExporter.java @ 9601:8f59aa01c22a
Fixed some warnings
author | gernotbelger |
---|---|
date | Tue, 12 Feb 2019 14:06:27 +0100 |
parents | 33ce8eba9806 |
children |
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde * Software engineering by Intevation GmbH * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.exports; import java.text.NumberFormat; import org.apache.log4j.Logger; import org.dive4elements.river.artifacts.D4EArtifact; import org.dive4elements.river.model.Gauge; import org.dive4elements.river.utils.RiverUtils; import au.com.bytecode.opencsv.CSVWriter; /** * Generates different output formats (wst, csv, pdf) of data that resulted from * a waterlevel computation. * * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class FixWaterlevelExporter extends WaterlevelExporter { /** The log used in this exporter. */ private static Logger log = Logger.getLogger(FixWaterlevelExporter.class); @Override protected void writeRow4(final CSVWriter writer, final double wqkm[], final D4EArtifact flys, final Gauge gauge, final boolean isQ) { if (!isQ) { super.writeRow4(writer, wqkm, flys, gauge, isQ); } else { final NumberFormat kmf = getKmFormatter(); final NumberFormat wf = getWFormatter(); final NumberFormat qf = getQFormatter(); final String waterlevel = getWaterlevel(wqkm[1], gauge); writer.writeNext(new String[] { kmf.format(wqkm[2]), wf.format(wqkm[0]), waterlevel, qf.format(RiverUtils.roundQ(wqkm[1])), RiverUtils.getLocationDescription(flys, wqkm[2]) }); } } /** Write an csv-row at gauge location. */ @Override protected void writeRow6(final CSVWriter writer, final double wqkm[], final String wOrQDesc, final D4EArtifact flys, final String gaugeName, final String wAtGauge, final boolean isQ) { if (!isQ) { super.writeRow6(writer, wqkm, wOrQDesc, flys, gaugeName, wAtGauge, isQ); } else { final NumberFormat kmf = getKmFormatter(); final NumberFormat wf = getWFormatter(); final NumberFormat qf = getQFormatter(); writer.writeNext(new String[] { kmf.format(wqkm[2]), wf.format(wqkm[0]), wAtGauge, qf.format(RiverUtils.roundQ(wqkm[1])), wOrQDesc, RiverUtils.getLocationDescription(flys, wqkm[2]), gaugeName }); } } /** * Write the header, with different headings depending on whether at a * gauge or at a location. */ @Override protected void writeCSVHeader(final CSVWriter writer, final boolean atGauge, final boolean isQ) { if (!isQ) { super.writeCSVHeader(writer, atGauge, isQ); } else { log.info("WaterlevelExporter.writeCSVHeader"); final String unit = RiverUtils.getRiver((D4EArtifact) this.master).getWstUnit().getName(); final String headerWamPegelNeu = msg("fix.export.csv.w_at_gauge"); if (atGauge) { writer.writeNext(new String[] { msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER, new Object[] { unit }), headerWamPegelNeu, msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER), // FIXME: use WaterlevelDescriptionBuilder instead and also remove all this duplicate code. (isQ ? msg(CSV_Q_DESC_HEADER, DEFAULT_CSV_Q_DESC_HEADER) : msg(CSV_W_DESC_HEADER, DEFAULT_CSV_W_DESC_HEADER)), msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER), msg(CSV_GAUGE_HEADER, DEFAULT_CSV_GAUGE_HEADER) }); } else { writer.writeNext(new String[] { msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER, new Object[] { unit }), headerWamPegelNeu, msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER), msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER) }); } } } }