Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/exports/DischargeLongitudinalSectionExporter.java @ 418:e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
flys-artifacts/trunk@1885 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 10 May 2011 16:10:01 +0000 |
parents | 340dc41a7ea3 |
children | c8bb38115290 |
rev | line source |
---|---|
407
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.exports; |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
418
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
3 import java.text.NumberFormat; |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
4 |
407
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
5 import org.apache.log4j.Logger; |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
6 |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
7 import au.com.bytecode.opencsv.CSVWriter; |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
9 import de.intevation.artifacts.Artifact; |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
11 import de.intevation.flys.artifacts.WINFOArtifact; |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 import de.intevation.flys.artifacts.model.WQCKms; |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 import de.intevation.flys.artifacts.model.WQKms; |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 /** |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 */ |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 public class DischargeLongitudinalSectionExporter extends WaterlevelExporter { |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
20 /** The logger used in this exporter.*/ |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 private static Logger logger = |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
22 Logger.getLogger(DischargeLongitudinalSectionExporter.class); |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
23 |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
24 |
416
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
25 public static final String CSV_KM_HEADER = |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
26 "export.discharge.longitudinal.section.csv.header.km"; |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
27 |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
28 public static final String CSV_W_HEADER = |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
29 "export.discharge.longitudinal.section.csv.header.w"; |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
30 |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
31 public static final String CSV_CW_HEADER = |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
32 "export.discharge.longitudinal.section.csv.header.cw"; |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
33 |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
34 public static final String CSV_Q_HEADER = |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
35 "export.discharge.longitudinal.section.csv.header.q"; |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
36 |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
37 public static final String DEFAULT_CSV_KM_HEADER = "Fluss-Km"; |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
38 public static final String DEFAULT_CSV_W_HEADER = "W [NN + m]"; |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
39 public static final String DEFAULT_CSV_CW_HEADER = "W korr."; |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
40 public static final String DEFAULT_CSV_Q_HEADER = "Q [m³/s]"; |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
41 |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
42 |
407
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 @Override |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 protected void addData(Artifact artifact) { |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 WINFOArtifact winfo = (WINFOArtifact) artifact; |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 WQKms[] wqkms = winfo.getDischargeLongitudinalSectionData(); |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
48 logger.debug("Got " + wqkms != null ? wqkms.length : 0 + " WQKms obj."); |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
49 |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
50 data.add(wqkms); |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 } |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
54 @Override |
416
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
55 protected void writeCSVHeader(CSVWriter writer) { |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
56 logger.info("WaterlevelExporter.writeCSVHeader"); |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
57 |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
58 writer.writeNext(new String[] { |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
59 msg(CSV_KM_HEADER, DEFAULT_CSV_KM_HEADER), |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
60 msg(CSV_W_HEADER, DEFAULT_CSV_W_HEADER), |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
61 msg(CSV_CW_HEADER, DEFAULT_CSV_CW_HEADER), |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
62 msg(CSV_Q_HEADER, DEFAULT_CSV_Q_HEADER) |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
63 }); |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
64 } |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
65 |
340dc41a7ea3
The CSV exports will now have headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
407
diff
changeset
|
66 @Override |
407
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
67 protected void wQKms2CSV(CSVWriter writer, WQKms wqkms) { |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
68 logger.debug("WaterlevelExporter.wQKms2CSV"); |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
70 int size = wqkms.size(); |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
71 double[] result = new double[4]; |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
72 |
418
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
73 NumberFormat kmf = getKmFormatter(); |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
74 NumberFormat wf = getWFormatter(); |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
75 NumberFormat qf = getQFormatter(); |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
76 |
407
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 for (int i = 0; i < size; i ++) { |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 result = wqkms.get(i, result); |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
80 String wc = ""; |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
81 if (wqkms instanceof WQCKms) { |
418
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
82 wc = wf.format(result[3]); |
407
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
83 } |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
84 |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 writer.writeNext(new String[] { |
418
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
86 kmf.format(result[2]), |
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
87 wf.format(result[0]), |
407
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 wc, |
418
e0fec407a280
ISSUE-53 Formatted number values of CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
416
diff
changeset
|
89 qf.format(result[1]) |
407
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
90 }); |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
91 } |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
92 } |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
93 } |
9eb5f0c8fe7f
Added a CSV exporter for the discharge longitudinal section computation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
94 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |