Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/exports/WaterlevelExporter.java @ 389:69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
flys-artifacts/trunk@1810 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 03 May 2011 16:36:21 +0000 |
parents | |
children | 5d6988836f01 |
rev | line source |
---|---|
389
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.exports; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
3 import java.io.IOException; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
4 import java.io.OutputStream; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
5 import java.io.OutputStreamWriter; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
6 import java.util.ArrayList; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
7 import java.util.List; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
9 import org.w3c.dom.Document; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
11 import org.apache.log4j.Logger; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 import au.com.bytecode.opencsv.CSVWriter; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import de.intevation.artifacts.Artifact; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 import de.intevation.artifacts.CallContext; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 import de.intevation.flys.artifacts.WINFOArtifact; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 import de.intevation.flys.artifacts.model.WQKms; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
20 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
22 /** |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
23 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
24 */ |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 public class WaterlevelExporter implements OutGenerator { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
26 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
27 /** The logger used in this exporter.*/ |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
28 private static Logger logger = Logger.getLogger(WaterlevelExporter.class); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
29 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
31 public static final String WATERLEVEL_FACET_CSV = "waterlevel_export.csv"; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
32 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 public static final String DEFAULT_CSV_CHARSET = "UTF-8"; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 public static final char DEFAULT_CSV_SEPARATOR = ','; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
36 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 /** The document of the incoming out() request.*/ |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 protected Document request; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 /** The output stream where the data should be written to.*/ |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 protected OutputStream out; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 /** The CallContext object.*/ |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 protected CallContext context; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 /** The selected facet.*/ |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
48 protected String facet; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
49 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
50 /** The storage that contains all WQKms objects for the different facets.*/ |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 protected List<WQKms[]> data; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
54 public void init(Document request, OutputStream out, CallContext context) { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
55 logger.debug("WaterlevelExporter.init"); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
56 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 this.request = request; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
58 this.out = out; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
59 this.context = context; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
60 this.data = new ArrayList<WQKms[]>(); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
63 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
64 /** |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
65 * This doOut() just collects the data of multiple artifacts. The real data |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
66 * generation takes place in the concrete generate() methods. |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
67 * |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
68 * @param artifact The artifact. |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 * @param facet The facet to add - NOTE: the facet needs to fit to the first |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
70 * facet inserted into this exporter. Otherwise this artifact/facet is |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
71 * skipped. |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
72 * @param attr The attr document. |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
73 */ |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 public void doOut(Artifact artifact, String facet, Document attr) { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
75 logger.debug("WaterlevelExporter.doOut: " + facet); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 if (!isFacetValid(facet)) { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 logger.warn("Facet '" + facet + "' not valid. No output created!"); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 return; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
80 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
81 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
82 data.add(getWaterlevelData(artifact)); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
83 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
84 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
86 public void generate() |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
87 throws IOException |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
89 if (facet != null && facet.equals(WATERLEVEL_FACET_CSV)) { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
90 generateCSV(); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
91 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
92 else { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
93 throw new IOException("invalid facet for exporter."); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
94 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
95 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
96 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
97 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
98 /** |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
99 * Determines if the desired facet is valid for this exporter. If no facet |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
100 * is currently set, <i>facet</i> is set. |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
101 * |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
102 * @param facet The desired facet. |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
103 * |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
104 * @return true, if <i>facet</i> is valid, otherwise false. |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
105 */ |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
106 protected boolean isFacetValid(String facet) { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
107 logger.debug("WaterlevelExporter.isFacetValid"); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
108 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
109 if (facet == null || facet.length() == 0) { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
110 return false; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
111 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
112 else if (this.facet == null || this.facet.length() == 0) { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
113 logger.debug("Set the facet of this export: " + facet); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
114 this.facet = facet; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
115 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
116 return true; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
117 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
118 else { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
119 return this.facet.equals(facet); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
120 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
121 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
122 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
123 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
124 /** |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
125 * Returns the waterlevel data computed by the WINFOArtifact. |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
126 * |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
127 * @param artifact The WINFOArtifact. |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
128 * |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
129 * @return the computed waterlevel data. |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
130 */ |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
131 protected WQKms[] getWaterlevelData(Artifact artifact) { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
132 WINFOArtifact winfoArtifact = (WINFOArtifact) artifact; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
133 WQKms[] wqkms = winfoArtifact.getWaterlevelData(); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
134 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
135 logger.debug("Got " + wqkms.length + " WQKms objects."); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
136 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
137 return wqkms; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
138 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
139 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
140 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
141 protected void generateCSV() |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
142 throws IOException |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
143 { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
144 logger.info("WaterlevelExporter.generateCSV"); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
145 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
146 CSVWriter writer = new CSVWriter( |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
147 new OutputStreamWriter( |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
148 out, |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
149 DEFAULT_CSV_CHARSET), |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
150 DEFAULT_CSV_SEPARATOR); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
151 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
152 for (WQKms[] tmp: data) { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
153 for (WQKms wqkms: tmp) { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
154 wQKms2CSV(writer, wqkms); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
155 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
156 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
157 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
158 writer.close(); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
159 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
160 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
161 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
162 protected void wQKms2CSV(CSVWriter writer, WQKms wqkms) { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
163 logger.debug("WaterlevelExporter.wQKms2CSV"); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
164 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
165 int size = wqkms.size(); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
166 double[] result = new double[3]; |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
167 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
168 for (int i = 0; i < size; i ++) { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
169 result = wqkms.get(i, result); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
170 |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
171 writer.writeNext(new String[] { |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
172 Double.toString(result[2]), |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
173 Double.toString(result[0]), |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
174 Double.toString(result[1]) |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
175 }); |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
176 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
177 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
178 } |
69d05357c177
Added an exporter (OutGenerator) for waterlevels which currently supports CSV exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
179 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |