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 }

http://dive4elements.wald.intevation.org