Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/exports/injector/KmFromRequestInjector.java @ 8367:16dc2da05aef
Overwriting the current km in context gives unexpected results if artifacts from different km have been loaded.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 02 Oct 2014 11:46:44 +0200 |
parents | 7341bebc79d0 |
children | 5e38e2924c07 |
comparison
equal
deleted
inserted
replaced
8366:061e85212d25 | 8367:16dc2da05aef |
---|---|
17 public class KmFromRequestInjector | 17 public class KmFromRequestInjector |
18 implements ContextInjector | 18 implements ContextInjector |
19 { | 19 { |
20 private static final Logger log = Logger.getLogger(KmFromRequestInjector.class); | 20 private static final Logger log = Logger.getLogger(KmFromRequestInjector.class); |
21 | 21 |
22 public static final Double INVALID_KM = Double.valueOf(-1d); | |
23 public static final String XPATH_CHART_CURRENTKM = | 22 public static final String XPATH_CHART_CURRENTKM = |
24 "/art:action/art:attributes/art:currentKm/@art:km"; | 23 "/art:action/art:attributes/art:currentKm/@art:km"; |
25 @Override | 24 @Override |
26 public void setup(Element cfg) { | 25 public void setup(Element cfg) { |
27 | 26 |
29 | 28 |
30 @Override | 29 @Override |
31 public void injectContext( | 30 public void injectContext( |
32 CallContext ctx, | 31 CallContext ctx, |
33 Artifact artifact, | 32 Artifact artifact, |
34 Document request) { | 33 Document request |
34 ) { | |
35 if (ctx.getContextValue(CURRENT_KM) instanceof Number) { | |
36 return; | |
37 } | |
38 | |
35 Double km = getCurrentKmFromRequest(request); | 39 Double km = getCurrentKmFromRequest(request); |
36 if (Double.isNaN(km)) { | 40 if (Double.isNaN(km)) { |
37 RangeAccess access = new RangeAccess((D4EArtifact)artifact); | 41 RangeAccess access = new RangeAccess((D4EArtifact)artifact); |
38 km = access.getFrom(); | 42 km = access.getFrom(); |
39 } | 43 } |