Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/WKmsJRDataSource.java @ 6152:0587819960c3
Waterlevel differences & bed height differences: Add new model LinearInterpolated intented to unify the two very similiar calculations. The focus of the current implementation is correctness and not speed! The fact that the data sets more mostly sorted by station is not exploited. Doing so would improve performance significantly.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Sun, 02 Jun 2013 17:52:53 +0200 |
parents | af13ceeba52a |
children | 40c77429319d |
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:
3085
diff
changeset
|
9 package org.dive4elements.river.artifacts.model; |
2176 | 10 |
11 import java.util.ArrayList; | |
12 import java.util.HashMap; | |
13 | |
14 import org.apache.log4j.Logger; | |
15 | |
16 import net.sf.jasperreports.engine.JRDataSource; | |
17 import net.sf.jasperreports.engine.JRException; | |
18 import net.sf.jasperreports.engine.JRField; | |
19 | |
20 | |
21 /** | |
22 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> | |
23 */ | |
24 public class WKmsJRDataSource implements JRDataSource | |
25 { | |
26 /** The logger used in this exporter.*/ | |
27 private static Logger logger = Logger.getLogger(WKmsJRDataSource.class); | |
28 | |
29 /** | |
30 * | |
31 */ | |
32 private ArrayList<String[]> data; | |
33 private HashMap<String, String> metaData; | |
34 | |
35 private int index = -1; | |
36 | |
37 /** | |
38 * | |
39 */ | |
40 public WKmsJRDataSource() | |
41 { | |
42 data = new ArrayList<String[]>(); | |
43 metaData = new HashMap<String, String>(); | |
44 } | |
45 | |
46 | |
47 /** | |
48 * | |
49 */ | |
50 public void addData(String[] data) { | |
51 this.data.add(data); | |
52 } | |
53 | |
54 | |
55 /** | |
56 * | |
57 */ | |
58 public void addMetaData(String key, String value) { | |
59 this.metaData.put(key, value); | |
60 } | |
61 | |
62 | |
63 /** | |
64 * | |
65 */ | |
66 public boolean next() throws JRException | |
67 { | |
68 index++; | |
69 | |
70 return (index < data.size()); | |
71 } | |
72 | |
73 | |
74 /** | |
75 * | |
76 */ | |
77 public Object getFieldValue(JRField field) throws JRException | |
78 { | |
79 Object value = ""; | |
80 String fieldName = field.getName(); | |
81 if ("river".equals(fieldName)) { | |
82 value = metaData.get("river"); | |
83 } | |
3085
3e5f45a9e052
Added missing 'else's in if/else ladders.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3083
diff
changeset
|
84 else if ("date".equals(fieldName)) { |
2176 | 85 value = metaData.get("date"); |
86 } | |
3085
3e5f45a9e052
Added missing 'else's in if/else ladders.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3083
diff
changeset
|
87 else if ("range".equals(fieldName)) { |
2176 | 88 value = metaData.get("range"); |
89 } | |
3085
3e5f45a9e052
Added missing 'else's in if/else ladders.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3083
diff
changeset
|
90 else if ("gauge".equals(fieldName)) { |
2176 | 91 value = metaData.get("gauge"); |
92 } | |
3085
3e5f45a9e052
Added missing 'else's in if/else ladders.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3083
diff
changeset
|
93 else if ("calculation".equals(fieldName)) { |
2176 | 94 value = metaData.get("calculation"); |
95 } | |
3085
3e5f45a9e052
Added missing 'else's in if/else ladders.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3083
diff
changeset
|
96 else if ("differences".equals(fieldName)) { |
2180
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2178
diff
changeset
|
97 value = metaData.get("differences"); |
65b32220f197
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2178
diff
changeset
|
98 } |
3085
3e5f45a9e052
Added missing 'else's in if/else ladders.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3083
diff
changeset
|
99 else if ("km".equals(fieldName)) { |
2176 | 100 value = data.get(index)[0]; |
101 } | |
3085
3e5f45a9e052
Added missing 'else's in if/else ladders.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3083
diff
changeset
|
102 else if ("W".equals(fieldName)) { |
2176 | 103 value = data.get(index)[1]; |
104 } | |
3085
3e5f45a9e052
Added missing 'else's in if/else ladders.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3083
diff
changeset
|
105 else if ("Q".equals(fieldName)) { |
2176 | 106 value = data.get(index)[2]; |
107 } | |
3085
3e5f45a9e052
Added missing 'else's in if/else ladders.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3083
diff
changeset
|
108 else if ("description".equals(fieldName)) { |
2176 | 109 value = data.get(index)[3]; |
110 } | |
3085
3e5f45a9e052
Added missing 'else's in if/else ladders.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3083
diff
changeset
|
111 else if ("location".equals(fieldName)) { |
2176 | 112 value = data.get(index)[4]; |
113 } | |
3085
3e5f45a9e052
Added missing 'else's in if/else ladders.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3083
diff
changeset
|
114 else if ("gaugename".equals(fieldName)) { |
2176 | 115 value = data.get(index)[5]; |
116 } | |
3085
3e5f45a9e052
Added missing 'else's in if/else ladders.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3083
diff
changeset
|
117 else if ("day".equals(fieldName)) { |
2178
1d7fb2cabfc7
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
118 value = data.get(index)[6]; |
1d7fb2cabfc7
Issue 138.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2176
diff
changeset
|
119 } |
2176 | 120 return value; |
121 } | |
122 } | |
3083
4bd3d8bbb60c
Added missing vim lines.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2180
diff
changeset
|
123 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |