annotate artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromLocationInjector.java @ 9726:0a5239a1e46e 3.2.x

Upgrade to Log4j 2
author Tom Gottfried <tom@intevation.de>
date Wed, 02 Mar 2022 10:26:50 +0100
parents a805211690f7
children
rev   line source
8858
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8367
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8367
diff changeset
2 * Software engineering by Intevation GmbH
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8367
diff changeset
3 *
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8367
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8367
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8367
diff changeset
6 * documentation coming with Dive4Elements River for details.
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8367
diff changeset
7 */
a805211690f7 Fix license headers.
Tom Gottfried <tom@intevation.de>
parents: 8367
diff changeset
8
8251
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
9 package org.dive4elements.river.exports.injector;
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
10
9726
0a5239a1e46e Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 8858
diff changeset
11 import org.apache.logging.log4j.Logger;
0a5239a1e46e Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 8858
diff changeset
12 import org.apache.logging.log4j.LogManager;
8251
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
13 import org.dive4elements.artifacts.Artifact;
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
14 import org.dive4elements.artifacts.CallContext;
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
15 import org.dive4elements.artifacts.ContextInjector;
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
16 import org.dive4elements.river.artifacts.D4EArtifact;
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
17 import org.dive4elements.river.artifacts.access.RangeAccess;
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
18 import org.w3c.dom.Document;
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
19 import org.w3c.dom.Element;
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 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
22
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: 8326
diff changeset
23 public class KmFromLocationInjector
8251
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
24 implements ContextInjector
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
9726
0a5239a1e46e Upgrade to Log4j 2
Tom Gottfried <tom@intevation.de>
parents: 8858
diff changeset
27 private static Logger log = LogManager.getLogger(KmFromLocationInjector.class);
8251
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
28
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
29 @Override
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
30 public void setup(Element cfg) {
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
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
33 @Override
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
34 public void injectContext(
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
35 CallContext ctx,
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
36 Artifact artifact,
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
37 Document doc
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
38 ) {
8367
16dc2da05aef Overwriting the current km in context gives unexpected results if artifacts from different km have been loaded.
Tom Gottfried <tom@intevation.de>
parents: 8349
diff changeset
39 if (ctx.getContextValue(CURRENT_KM) instanceof Number) {
16dc2da05aef Overwriting the current km in context gives unexpected results if artifacts from different km have been loaded.
Tom Gottfried <tom@intevation.de>
parents: 8349
diff changeset
40 return;
16dc2da05aef Overwriting the current km in context gives unexpected results if artifacts from different km have been loaded.
Tom Gottfried <tom@intevation.de>
parents: 8349
diff changeset
41 }
16dc2da05aef Overwriting the current km in context gives unexpected results if artifacts from different km have been loaded.
Tom Gottfried <tom@intevation.de>
parents: 8349
diff changeset
42
8251
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
43 RangeAccess access = new RangeAccess((D4EArtifact)artifact);
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: 8326
diff changeset
44 if (access.getLocations() != null &&
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
45 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
46 ctx.putContextValue(CURRENT_KM, access.getLocations()[0]);
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: 8326
diff changeset
47 return;
8310
e3a8aa6eee32 Make SQ-relations loadable in WQ-diagrams.
"Tom Gottfried <tom@intevation.de>"
parents: 8251
diff changeset
48 }
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: 8326
diff changeset
49 log.warn("No locations accessible.");
8251
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
50 }
c7ca9c228314 Added context injectors for discharge curves.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
51 }

http://dive4elements.wald.intevation.org