annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/LogSQ.java @ 8539:84929f882fa2

(issue1753) Carry measurement date through SQ values
author Andre Heinecke <andre.heinecke@intevation.de>
date Fri, 13 Feb 2015 12:34:06 +0100
parents 1c3b2f7dc9a4
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