Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/FixWaterlevelExporter.java @ 9554:33ce8eba9806
waterlevel export W/am Pegel / "Bezeichnung" fixes
author | gernotbelger |
---|---|
date | Mon, 22 Oct 2018 18:26:05 +0200 |
parents | ce13a2f07290 |
children |
rev | line source |
---|---|
9457 | 1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
2 * Software engineering by Intevation GmbH | |
3 * | |
4 * This file is Free Software under the GNU AGPL (>=v3) | |
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the | |
6 * documentation coming with Dive4Elements River for details. | |
7 */ | |
8 | |
9 package org.dive4elements.river.exports; | |
10 | |
11 import java.text.NumberFormat; | |
12 | |
13 import org.apache.log4j.Logger; | |
14 import org.dive4elements.river.artifacts.D4EArtifact; | |
15 import org.dive4elements.river.model.Gauge; | |
16 import org.dive4elements.river.utils.RiverUtils; | |
17 | |
18 import au.com.bytecode.opencsv.CSVWriter; | |
19 | |
20 /** | |
21 * Generates different output formats (wst, csv, pdf) of data that resulted from | |
22 * a waterlevel computation. | |
23 * | |
24 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | |
25 */ | |
26 public class FixWaterlevelExporter extends WaterlevelExporter { | |
27 | |
28 /** The log used in this exporter. */ | |
29 private static Logger log = Logger.getLogger(FixWaterlevelExporter.class); | |
30 | |
31 @Override | |
9485 | 32 protected void writeRow4(final CSVWriter writer, final double wqkm[], final D4EArtifact flys, final Gauge gauge, final boolean isQ) { |
33 if (!isQ) { | |
34 super.writeRow4(writer, wqkm, flys, gauge, isQ); | |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
35 } else { |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
36 final NumberFormat kmf = getKmFormatter(); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
37 final NumberFormat wf = getWFormatter(); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
38 final NumberFormat qf = getQFormatter(); |
9457 | 39 |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
40 final String waterlevel = getWaterlevel(wqkm[1], gauge); |
9457 | 41 |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
42 writer.writeNext(new String[] { kmf.format(wqkm[2]), wf.format(wqkm[0]), waterlevel, qf.format(RiverUtils.roundQ(wqkm[1])), |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
43 RiverUtils.getLocationDescription(flys, wqkm[2]) }); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
44 } |
9457 | 45 } |
46 | |
47 /** Write an csv-row at gauge location. */ | |
48 @Override | |
9485 | 49 protected void writeRow6(final CSVWriter writer, final double wqkm[], final String wOrQDesc, final D4EArtifact flys, final String gaugeName, |
9554
33ce8eba9806
waterlevel export W/am Pegel / "Bezeichnung" fixes
gernotbelger
parents:
9486
diff
changeset
|
50 final String wAtGauge, final boolean isQ) { |
9485 | 51 if (!isQ) { |
9554
33ce8eba9806
waterlevel export W/am Pegel / "Bezeichnung" fixes
gernotbelger
parents:
9486
diff
changeset
|
52 super.writeRow6(writer, wqkm, wOrQDesc, flys, gaugeName, wAtGauge, isQ); |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
53 } else { |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
54 final NumberFormat kmf = getKmFormatter(); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
55 final NumberFormat wf = getWFormatter(); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
56 final NumberFormat qf = getQFormatter(); |
9457 | 57 |
9554
33ce8eba9806
waterlevel export W/am Pegel / "Bezeichnung" fixes
gernotbelger
parents:
9486
diff
changeset
|
58 writer.writeNext(new String[] { kmf.format(wqkm[2]), wf.format(wqkm[0]), wAtGauge, qf.format(RiverUtils.roundQ(wqkm[1])), wOrQDesc, |
9485 | 59 RiverUtils.getLocationDescription(flys, wqkm[2]), gaugeName }); |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
60 } |
9457 | 61 } |
62 | |
63 /** | |
64 * Write the header, with different headings depending on whether at a | |
65 * gauge or at a location. | |
66 */ | |
67 | |
68 @Override | |
69 protected void writeCSVHeader(final CSVWriter writer, final boolean atGauge, final boolean isQ) { | |
9485 | 70 if (!isQ) { |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
71 super.writeCSVHeader(writer, atGauge, isQ); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
72 } else { |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
73 log.info("WaterlevelExporter.writeCSVHeader"); |
9457 | 74 |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
75 final String unit = RiverUtils.getRiver((D4EArtifact) this.master).getWstUnit().getName(); |
9457 | 76 |
9459
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
77 final String headerWamPegelNeu = msg("fix.export.csv.w_at_gauge"); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
78 |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
79 if (atGauge) { |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
80 writer.writeNext(new String[] { msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER, new Object[] { unit }), |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
81 headerWamPegelNeu, msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER), |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
82 |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
83 // FIXME: use WaterlevelDescriptionBuilder instead and also remove all this duplicate code. |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
84 (isQ ? msg(CSV_Q_DESC_HEADER, DEFAULT_CSV_Q_DESC_HEADER) : msg(CSV_W_DESC_HEADER, DEFAULT_CSV_W_DESC_HEADER)), |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
85 msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER), msg(CSV_GAUGE_HEADER, DEFAULT_CSV_GAUGE_HEADER) }); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
86 } else { |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
87 writer.writeNext(new String[] { msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER, new Object[] { unit }), |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
88 headerWamPegelNeu, msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER), msg(CSV_LOCATION_HEADER, DEFAULT_CSV_LOCATION_HEADER) }); |
f06e3766997f
fallunterscheidung isQ - fixWaterlevelExporter
gernotbelger
parents:
9457
diff
changeset
|
89 } |
9457 | 90 } |
91 } | |
92 | |
93 } |