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 }

http://dive4elements.wald.intevation.org