Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/injector/ComputedDischargeInjector.java @ 8326:10917ec29625
Inject current km and pnp into the context used to calculate W in cm at gauge.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Thu, 25 Sep 2014 17:23:12 +0200 |
parents | e3a8aa6eee32 |
children |
rev | line source |
---|---|
8251
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
1 package org.dive4elements.river.exports.injector; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
2 |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
3 import org.apache.log4j.Logger; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
4 import org.dive4elements.artifacts.Artifact; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 import org.dive4elements.artifacts.CallContext; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 import org.dive4elements.artifacts.ContextInjector; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
7 import org.dive4elements.river.artifacts.D4EArtifact; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 import org.dive4elements.river.artifacts.access.RangeAccess; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 import org.w3c.dom.Document; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 import org.w3c.dom.Element; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import static org.dive4elements.river.exports.injector.InjectorConstants.CURRENT_KM; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 public class ComputedDischargeInjector |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 implements ContextInjector |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 { |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
18 private static Logger log = Logger.getLogger(ComputedDischargeInjector.class); |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 @Override |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 public void setup(Element cfg) { |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 } |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 @Override |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 public void injectContext( |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 CallContext ctx, |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 Artifact artifact, |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 Document doc |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 ) { |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 RangeAccess access = new RangeAccess((D4EArtifact)artifact); |
8310
e3a8aa6eee32
Make SQ-relations loadable in WQ-diagrams.
"Tom Gottfried <tom@intevation.de>"
parents:
8251
diff
changeset
|
31 if (access.hasFrom()) { |
8326
10917ec29625
Inject current km and pnp into the context used to calculate W in cm at gauge.
Raimund Renkert <rrenkert@intevation.de>
parents:
8310
diff
changeset
|
32 ctx.putContextValue(CURRENT_KM, access.getFrom()); |
10917ec29625
Inject current km and pnp into the context used to calculate W in cm at gauge.
Raimund Renkert <rrenkert@intevation.de>
parents:
8310
diff
changeset
|
33 } |
10917ec29625
Inject current km and pnp into the context used to calculate W in cm at gauge.
Raimund Renkert <rrenkert@intevation.de>
parents:
8310
diff
changeset
|
34 else if (access.getLocations() != null && |
10917ec29625
Inject current km and pnp into the context used to calculate W in cm at gauge.
Raimund Renkert <rrenkert@intevation.de>
parents:
8310
diff
changeset
|
35 access.getLocations().length > 0) { |
10917ec29625
Inject current km and pnp into the context used to calculate W in cm at gauge.
Raimund Renkert <rrenkert@intevation.de>
parents:
8310
diff
changeset
|
36 ctx.putContextValue(CURRENT_KM, access.getLocations()[0]); |
8310
e3a8aa6eee32
Make SQ-relations loadable in WQ-diagrams.
"Tom Gottfried <tom@intevation.de>"
parents:
8251
diff
changeset
|
37 } |
8251
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 } |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 } |