Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WWAxisTypes.java @ 2308:41a5c87c2761
Renamed data item names to allow translations.
flys-artifacts/trunk@3982 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Thu, 09 Feb 2012 08:40:39 +0000 |
parents | 08811a335baf |
children | b56e8613ce0d |
rev | line source |
---|---|
2256
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.artifacts.model; |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
3 import de.intevation.flys.artifacts.math.Function; |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
4 import de.intevation.flys.artifacts.math.Identity; |
2281
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
5 import de.intevation.flys.artifacts.math.LinearFunction; |
2256
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
7 public class WWAxisTypes |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
8 { |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
9 protected boolean inCm1; |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
10 protected boolean inCm2; |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
11 |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
12 public WWAxisTypes() { |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
13 inCm1 = inCm2 = true; |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
14 } |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
15 |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
16 public WWAxisTypes(WW ww) { |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
17 this(); |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
18 classify(ww); |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
19 } |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
20 |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
21 public void classify(WW ww) { |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
22 if (!ww.startAtGauge()) inCm1 = false; |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
23 if (!ww.endAtGauge()) inCm2 = false; |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
24 } |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
25 |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 public boolean getInCm1() { |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
27 return inCm1; |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 } |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
29 |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
30 public void setInCm1(boolean inCm1) { |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
31 this.inCm1 = inCm1; |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
32 } |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
33 |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
34 public boolean getInCm2() { |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
35 return inCm2; |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
36 } |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
37 |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
38 public void setInCm2(boolean inCm2) { |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
39 this.inCm2 = inCm2; |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
40 } |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
41 |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
42 public WW.ApplyFunctionIterator transform(WW ww) { |
2278
08bb95e1fc41
"Bezugslinienverfahren": Fetch axis types from call context.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2256
diff
changeset
|
43 return transform(ww, false); |
08bb95e1fc41
"Bezugslinienverfahren": Fetch axis types from call context.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2256
diff
changeset
|
44 } |
08bb95e1fc41
"Bezugslinienverfahren": Fetch axis types from call context.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2256
diff
changeset
|
45 |
08bb95e1fc41
"Bezugslinienverfahren": Fetch axis types from call context.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2256
diff
changeset
|
46 public WW.ApplyFunctionIterator transform(WW ww, boolean normalized) { |
08bb95e1fc41
"Bezugslinienverfahren": Fetch axis types from call context.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2256
diff
changeset
|
47 |
2281
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
48 Function function1; |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
49 Function function2; |
2256
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
50 |
2281
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
51 if (!normalized) { |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
52 function1 = inCm1 |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
53 ? new LinearFunction(100d, -ww.getStartDatum()) |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
54 : Identity.IDENTITY; |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
55 |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
56 function2 = inCm2 |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
57 ? new LinearFunction(100d, -ww.getEndDatum()) |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
58 : Identity.IDENTITY; |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
59 } |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
60 else { |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
61 double minW1 = ww.minWs(); |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
62 double minW2 = ww.minWs2(); |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
63 double scale1 = inCm1 ? 100d : 1d; |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
64 double scale2 = inCm2 ? 100d : 1d; |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
65 function1 = new LinearFunction(scale1, -minW1); |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
66 function2 = new LinearFunction(scale1, -minW2); |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
67 } |
08811a335baf
"Bezugslinienverfahren": Do normalisation of reference curves.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2278
diff
changeset
|
68 |
2256
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
69 |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
70 return new WW.ApplyFunctionIterator(ww, function1, function2); |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
71 } |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
72 } |
dd93a8e1377a
First steps to serve the data in cm if we are are gauges only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
73 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |