Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/LogSQ.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 | 84929f882fa2 |
children |
rev | line source |
---|---|
6821
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
3 * |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
7 */ |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
8 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.artifacts.model.sq; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
10 |
8539
84929f882fa2
(issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents:
6821
diff
changeset
|
11 import java.util.Date; |
84929f882fa2
(issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents:
6821
diff
changeset
|
12 |
6821
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
13 public class LogSQ extends SQ { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
14 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
15 public static final View LOG_SQ_VIEW = new View() { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
16 @Override |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
17 public double getS(SQ sq) { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
18 return ((LogSQ)sq).getLogS(); |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
19 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
20 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
21 @Override |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
22 public double getQ(SQ sq) { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
23 return ((LogSQ)sq).getLogQ(); |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
24 } |
8539
84929f882fa2
(issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents:
6821
diff
changeset
|
25 |
84929f882fa2
(issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents:
6821
diff
changeset
|
26 @Override |
84929f882fa2
(issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents:
6821
diff
changeset
|
27 public Date getDate(SQ sq) { |
84929f882fa2
(issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents:
6821
diff
changeset
|
28 return sq.getDate(); |
84929f882fa2
(issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents:
6821
diff
changeset
|
29 } |
6821
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
30 }; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
31 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
32 public static final Factory LOG_SQ_FACTORY = new Factory() { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
33 @Override |
8539
84929f882fa2
(issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents:
6821
diff
changeset
|
34 public SQ createSQ(double s, double q, Date d) { |
84929f882fa2
(issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents:
6821
diff
changeset
|
35 return new LogSQ(s, q, d); |
6821
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
36 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
37 }; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
38 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
39 protected double logS; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
40 protected double logQ; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
41 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
42 protected boolean logTrans; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
43 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
44 public LogSQ() { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
45 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
46 |
8539
84929f882fa2
(issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents:
6821
diff
changeset
|
47 public LogSQ(double s, double q, Date d) { |
84929f882fa2
(issue1753) Carry measurement date through SQ values
Andre Heinecke <andre.heinecke@intevation.de>
parents:
6821
diff
changeset
|
48 super(s, q, d); |
6821
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
49 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
50 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
51 /** important: We cannot process negative s/q. */ |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
52 @Override |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
53 public boolean isValid() { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
54 return super.isValid() && s > 0d && q > 0d; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
55 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
56 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
57 protected void ensureLogTrans() { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
58 if (!logTrans) { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
59 logTrans = true; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
60 logS = Math.log(s); |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
61 logQ = Math.log(q); |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
62 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
63 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
64 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
65 public double getLogS() { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
66 ensureLogTrans(); |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
67 return logS; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
68 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
69 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
70 public double getLogQ() { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
71 ensureLogTrans(); |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
72 return logQ; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
73 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
74 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
75 |