rrenkert@8251: package org.dive4elements.river.exports.injector; rrenkert@8251: rrenkert@8251: import org.apache.log4j.Logger; rrenkert@8251: import org.dive4elements.artifacts.Artifact; rrenkert@8251: import org.dive4elements.artifacts.CallContext; rrenkert@8251: import org.dive4elements.artifacts.ContextInjector; rrenkert@8251: import org.dive4elements.river.artifacts.D4EArtifact; rrenkert@8251: import org.dive4elements.river.artifacts.access.HistoricalDischargeAccess; rrenkert@8251: import org.dive4elements.river.model.Gauge; rrenkert@8251: import org.w3c.dom.Document; rrenkert@8251: import org.w3c.dom.Element; rrenkert@8251: rrenkert@8251: import static org.dive4elements.river.exports.injector.InjectorConstants.CURRENT_KM; rrenkert@8251: rrenkert@8251: public class HistoricalDischargeInjector rrenkert@8251: implements ContextInjector rrenkert@8251: { rrenkert@8251: private static Logger log = rrenkert@8251: Logger.getLogger(HistoricalDischargeInjector.class); rrenkert@8251: rrenkert@8251: @Override rrenkert@8251: public void setup(Element cfg) { rrenkert@8251: rrenkert@8251: } rrenkert@8251: rrenkert@8251: @Override rrenkert@8251: public void injectContext( rrenkert@8251: CallContext ctx, rrenkert@8251: Artifact artifact, rrenkert@8251: Document request rrenkert@8251: ) { rrenkert@8251: HistoricalDischargeAccess access = rrenkert@8251: new HistoricalDischargeAccess((D4EArtifact)artifact); rrenkert@8251: Long gaugeNumber = access.getOfficialGaugeNumber(); rrenkert@8251: if (gaugeNumber == null) { rrenkert@8251: return; rrenkert@8251: } rrenkert@8251: Gauge gauge = Gauge.getGaugeByOfficialNumber(gaugeNumber); rrenkert@8251: if (gauge == null) { rrenkert@8251: return; rrenkert@8251: } rrenkert@8251: double km = gauge.getStation().doubleValue(); rrenkert@8251: ctx.putContextValue(CURRENT_KM, km); rrenkert@8251: } rrenkert@8251: }