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

http://dive4elements.wald.intevation.org