Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromGaugeNumberInjector.java @ 8349:7341bebc79d0
Let injectors be strictly distinct from each other and give more meaningful names (they know what they do, not where they will be used. The latter is configuration).
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Wed, 01 Oct 2014 12:23:39 +0200 |
parents | artifacts/src/main/java/org/dive4elements/river/exports/injector/HistoricalDischargeInjector.java@5ffbf97766f7 |
children | 16dc2da05aef |
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.HistoricalDischargeAccess; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 import org.dive4elements.river.model.Gauge; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 import org.w3c.dom.Document; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import org.w3c.dom.Element; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 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
|
14 |
8349
7341bebc79d0
Let injectors be strictly distinct from each other and give more meaningful names (they know what they do, not where they will be used. The latter is configuration).
Tom Gottfried <tom@intevation.de>
parents:
8255
diff
changeset
|
15 public class KmFromGaugeNumberInjector |
8251
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 implements ContextInjector |
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 = |
8349
7341bebc79d0
Let injectors be strictly distinct from each other and give more meaningful names (they know what they do, not where they will be used. The latter is configuration).
Tom Gottfried <tom@intevation.de>
parents:
8255
diff
changeset
|
19 Logger.getLogger(KmFromGaugeNumberInjector.class); |
8251
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 @Override |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 public void setup(Element cfg) { |
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 } |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 @Override |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 public void injectContext( |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 CallContext ctx, |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 Artifact artifact, |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 Document request |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 ) { |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
32 HistoricalDischargeAccess access = |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
33 new HistoricalDischargeAccess((D4EArtifact)artifact); |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 Long gaugeNumber = access.getOfficialGaugeNumber(); |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 if (gaugeNumber == null) { |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 return; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 } |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 Gauge gauge = Gauge.getGaugeByOfficialNumber(gaugeNumber); |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 if (gauge == null) { |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 return; |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 } |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 double km = gauge.getStation().doubleValue(); |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 ctx.putContextValue(CURRENT_KM, km); |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 } |
c7ca9c228314
Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 } |