Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/SQRelationJRDataSource.java @ 8578:4eb1a3c71579
(issue1753) Implement PDF export of SQ Measurement data.
The SQRelationExporter now consists of two reports
(to avoid subreport woes). The old SQReleation PDF
only takes the Page count of the Measurement attachment
as argument to correctly print the page numbers. Otherwise
it is unchanged.
The new SQMeasurements report lists the measured data points
on which the calculation was based.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 16 Mar 2015 11:35:19 +0100 |
parents | e4606eae8ea5 |
children | 0a5239a1e46e |
rev | line source |
---|---|
6173
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
3 * |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
7 */ |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
8 |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.artifacts.model.sq; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
10 |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
11 import java.util.ArrayList; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
12 import java.util.HashMap; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
13 |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
14 import org.apache.log4j.Logger; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
15 |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
16 import net.sf.jasperreports.engine.JRDataSource; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
17 import net.sf.jasperreports.engine.JRException; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
18 import net.sf.jasperreports.engine.JRField; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
19 |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
20 |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
21 /** |
6239
f0f62743c83a
Change author I'm the culprit of that class.
Andre Heinecke <aheinecke@intevation.de>
parents:
6173
diff
changeset
|
22 * @author <a href="mailto:aheinecke@intevation.de">Andre Heinecke</a> |
6173
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
23 */ |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
24 public class SQRelationJRDataSource implements JRDataSource |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
25 { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6859
diff
changeset
|
26 /** The log used in this exporter.*/ |
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
6859
diff
changeset
|
27 private static Logger log = Logger.getLogger(SQRelationJRDataSource.class); |
6173
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
28 |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
29 private ArrayList<String[]> data; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
30 private HashMap<String, String> metaData; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
31 |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
32 private int index = -1; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
33 |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
34 public SQRelationJRDataSource() { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
35 data = new ArrayList<String[]>(); |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
36 metaData = new HashMap<String, String>(); |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
37 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
38 |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
39 public void addData(String[] val) { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
40 data.add(val); |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
41 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
42 |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
43 public void addMetaData(String key, String value) { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
44 metaData.put(key, value); |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
45 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
46 |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
47 public boolean next() throws JRException { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
48 index++; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
49 return (index < data.size()); |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
50 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
51 |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
52 public Object getFieldValue(JRField field) throws JRException { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
53 Object value = ""; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
54 String fieldName = field.getName(); |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
55 if ("river".equals(fieldName)) { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
56 value = metaData.get("river"); |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
57 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
58 else if ("date".equals(fieldName)) { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
59 value = metaData.get("date"); |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
60 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
61 else if ("calculation".equals(fieldName)) { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
62 value = metaData.get("calculation"); |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
63 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
64 else if ("location".equals(fieldName)) { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
65 value = metaData.get("location"); |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
66 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
67 else if ("outliers".equals(fieldName)) { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
68 value = metaData.get("outliers"); |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
69 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
70 else if ("outliertest".equals(fieldName)) { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
71 value = metaData.get("outliertest"); |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
72 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
73 else if ("periods".equals(fieldName)) { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
74 value = metaData.get("periods"); |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
75 } |
6859
3ccbc278f2e6
(issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents:
6828
diff
changeset
|
76 else if ("msName".equals(fieldName)) { |
3ccbc278f2e6
(issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents:
6828
diff
changeset
|
77 value = metaData.get("msName"); |
3ccbc278f2e6
(issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents:
6828
diff
changeset
|
78 } |
3ccbc278f2e6
(issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents:
6828
diff
changeset
|
79 else if ("msGauge".equals(fieldName)) { |
3ccbc278f2e6
(issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents:
6828
diff
changeset
|
80 value = metaData.get("msGauge"); |
3ccbc278f2e6
(issue1347) Add SQ Relation fields for measurement station information
Andre Heinecke <aheinecke@intevation.de>
parents:
6828
diff
changeset
|
81 } |
6173
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
82 else if ("km".equals(fieldName)) { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
83 value = data.get(index)[0]; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
84 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
85 else if ("param".equals(fieldName)) { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
86 value = data.get(index)[1]; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
87 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
88 else if ("a".equals(fieldName)) { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
89 value = data.get(index)[2]; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
90 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
91 else if ("b".equals(fieldName)) { |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
92 value = data.get(index)[3]; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
93 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
94 else if ("total".equals(fieldName)) { |
6828
708416bb560c
(issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents:
6239
diff
changeset
|
95 value = data.get(index)[7]; |
6173
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
96 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
97 else if ("out".equals(fieldName)) { |
6828
708416bb560c
(issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents:
6239
diff
changeset
|
98 value = data.get(index)[8]; |
708416bb560c
(issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents:
6239
diff
changeset
|
99 } |
708416bb560c
(issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents:
6239
diff
changeset
|
100 else if ("sd".equals(fieldName)) { |
708416bb560c
(issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents:
6239
diff
changeset
|
101 value = data.get(index)[4]; |
708416bb560c
(issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents:
6239
diff
changeset
|
102 } |
708416bb560c
(issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents:
6239
diff
changeset
|
103 else if ("qmax".equals(fieldName)) { |
6173
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
104 value = data.get(index)[5]; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
105 } |
6828
708416bb560c
(issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents:
6239
diff
changeset
|
106 else if ("cferg".equals(fieldName)) { |
708416bb560c
(issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents:
6239
diff
changeset
|
107 value = data.get(index)[10]; |
708416bb560c
(issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents:
6239
diff
changeset
|
108 } |
708416bb560c
(issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents:
6239
diff
changeset
|
109 else if ("cduan".equals(fieldName)) { |
708416bb560c
(issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents:
6239
diff
changeset
|
110 value = data.get(index)[9]; |
708416bb560c
(issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents:
6239
diff
changeset
|
111 } |
708416bb560c
(issue1347) Add new variables to SQ Relation output.
Andre Heinecke <aheinecke@intevation.de>
parents:
6239
diff
changeset
|
112 else if ("r2".equals(fieldName)) { |
6173
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
113 value = data.get(index)[6]; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
114 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
115 return value; |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
116 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
117 } |
5d88268f184d
Add SQRelationJRDataSource class
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
118 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |