Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/injector/PNPInjector.java @ 8304:c4bd57172aa7
Added injector for PNP.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Mon, 22 Sep 2014 17:10:23 +0200 |
parents | |
children | 10917ec29625 |
rev | line source |
---|---|
8304
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
1 package org.dive4elements.river.exports.injector; |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
2 |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
3 import org.dive4elements.artifacts.Artifact; |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
4 import org.dive4elements.artifacts.CallContext; |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 import org.dive4elements.artifacts.ContextInjector; |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 import org.dive4elements.river.artifacts.D4EArtifact; |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
7 import org.dive4elements.river.artifacts.access.RiverAccess; |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 import org.dive4elements.river.model.Gauge; |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 import org.w3c.dom.Document; |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 import org.w3c.dom.Element; |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import static org.dive4elements.river.exports.injector.InjectorConstants.CURRENT_KM; |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 import static org.dive4elements.river.exports.injector.InjectorConstants.PNP; |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 import static org.dive4elements.river.exports.injector.InjectorConstants.GAUGE_EPSILON; |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 public class PNPInjector |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 implements ContextInjector |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 { |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 @Override |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 public void setup(Element cfg) { |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 // TODO Auto-generated method stub |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 } |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 @Override |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 public void injectContext( |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 CallContext ctx, |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 Artifact artifact, |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 Document request |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 ) { |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 Object currentKm = ctx.getContextValue(CURRENT_KM); |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 if (currentKm == null) { |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 return; |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 } |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 RiverAccess access = new RiverAccess((D4EArtifact)artifact); |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 Double km = (Double)currentKm; |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 Gauge gauge = |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 access.getRiver().determineGaugeByStation( |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 km - GAUGE_EPSILON, |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 km + GAUGE_EPSILON); |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 if (gauge == null) { |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 return; |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 } |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 ctx.putContextValue(PNP, gauge.getDatum()); |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 } |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 |
c4bd57172aa7
Added injector for PNP.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 } |