Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/fixings/ParametersExporter.java @ 6795:0747ca95ad6e
Cosmetics.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 09 Aug 2013 12:20:32 +0200 |
parents | af13ceeba52a |
children | 0a337f0005c2 |
rev | line source |
---|---|
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
2 * Software engineering by Intevation GmbH |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
3 * |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5994
af13ceeba52a
Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5863
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
7 */ |
4897a58c8746
River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5838
diff
changeset
|
8 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3778
diff
changeset
|
9 package org.dive4elements.river.exports.fixings; |
3217
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
11 import au.com.bytecode.opencsv.CSVWriter; |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3778
diff
changeset
|
13 import org.dive4elements.artifacts.CallContext; |
3217
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3778
diff
changeset
|
15 import org.dive4elements.river.artifacts.model.CalculationResult; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3778
diff
changeset
|
16 import org.dive4elements.river.artifacts.model.Parameters; |
3217
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
17 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3778
diff
changeset
|
18 import org.dive4elements.river.artifacts.model.fixings.FixAnalysisResult; |
3217
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
19 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3778
diff
changeset
|
20 import org.dive4elements.river.artifacts.resources.Resources; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3778
diff
changeset
|
21 |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3778
diff
changeset
|
22 import org.dive4elements.river.exports.AbstractExporter; |
3217
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
24 import java.io.IOException; |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 import java.io.OutputStream; |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
27 import java.text.NumberFormat; |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
29 import java.util.ArrayList; |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
30 import java.util.List; |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
31 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 import org.apache.log4j.Logger; |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
33 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
34 import org.w3c.dom.Document; |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
35 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
36 public class ParametersExporter |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
37 extends AbstractExporter |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
38 { |
3778
35a6c9a49a76
Fixed wrong assigned loggers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3417
diff
changeset
|
39 private static Logger log = Logger.getLogger(ParametersExporter.class); |
3217
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
40 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
41 protected List<Parameters> parametersList; |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
42 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
43 @Override |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
44 public void init(Document request, OutputStream out, CallContext context) { |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
45 log.debug("ParametersExporter.init"); |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
46 super.init(request, out, context); |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
47 parametersList = new ArrayList<Parameters>(); |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
48 } |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
49 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
50 @Override |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
51 protected void addData(Object d) { |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 log.debug("ParametersExporter.addData"); |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
53 if (!(d instanceof CalculationResult)) { |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
54 log.warn("Invalid data type"); |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
55 return; |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
56 } |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
57 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
58 Object data = ((CalculationResult)d).getData(); |
3415
e3c7a3228bc2
FixA: Renamed FixResult to FixAnalysisResult.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3223
diff
changeset
|
59 if (!(data instanceof FixAnalysisResult)) { |
3217
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
60 log.warn("Invalid data stored in result."); |
3417
ed9689fbcd26
FixA: Prevent NPE when exporting parameters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3415
diff
changeset
|
61 return; |
3217
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
62 } |
3417
ed9689fbcd26
FixA: Prevent NPE when exporting parameters.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3415
diff
changeset
|
63 |
3415
e3c7a3228bc2
FixA: Renamed FixResult to FixAnalysisResult.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3223
diff
changeset
|
64 FixAnalysisResult result = (FixAnalysisResult)data; |
3217
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
65 parametersList.add(result.getParameters()); |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
66 } |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
67 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
68 @Override |
3223
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
69 public void generate() |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
70 throws IOException |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
71 { |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
72 log.debug("ParametersExporter.generate"); |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
73 |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
74 if (facet == null) { |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
75 throw new IOException("invalid (null) facet for exporter"); |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
76 } |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
77 |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
78 if (facet.equals(FIX_PARAMETERS)) { |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
79 generateCSV(); |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
80 } |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
81 else { |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
82 throw new IOException( |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
83 "invalid facet for exporter: '" + facet + "'"); |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
84 } |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
85 } |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
86 |
282c9da923ab
FixA: flys/issue689: Export CSV for facet 'fix_parameters'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3217
diff
changeset
|
87 @Override |
3217
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
88 protected void writeCSVData(final CSVWriter writer) throws IOException { |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
89 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
90 if (parametersList.isEmpty()) { |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
91 return; |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
92 } |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
93 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
94 Parameters parameters = parametersList.get(0); |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
95 writer.writeNext(parameters.getColumnNames()); |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
96 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
97 final int numColumns = parameters.getNumberColumns(); |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
98 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
99 parameters.visit(new Parameters.Visitor() { |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
100 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
101 String [] row = new String[numColumns]; |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
102 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
103 NumberFormat format = NumberFormat.getInstance( |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
104 Resources.getLocale(context.getMeta())); |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
105 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
106 @Override |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
107 public void visit(double [] data) { |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
108 for (int i = 0; i < data.length; ++i) { |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
109 row[i] = format.format(data[i]); |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
110 } |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
111 writer.writeNext(row); |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
112 } |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
113 }, new double[numColumns]); |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
114 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
115 writer.flush(); |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
116 } |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
117 |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
118 @Override |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
119 protected void writePDF(OutputStream out) { |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
120 // TODO: Implement me! |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
121 } |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
122 } |
79dd823733e2
FixA: Added parameter exporter.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
123 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |