Mercurial > dive4elements > river
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 |