bjoern@3936: package de.intevation.flys.artifacts.model;
bjoern@3936:
bjoern@3936: import java.util.Arrays;
bjoern@3936: import java.util.Map;
bjoern@3936:
bjoern@3936: import de.intevation.artifacts.Artifact;
bjoern@3936: import de.intevation.artifacts.CallContext;
bjoern@3936: import de.intevation.artifacts.CallMeta;
bjoern@3936:
bjoern@3936: import de.intevation.artifactdatabase.state.DefaultFacet;
bjoern@3936: import de.intevation.artifactdatabase.state.Facet;
bjoern@3936:
bjoern@3936: import de.intevation.flys.artifacts.model.WQKms;
bjoern@3936:
bjoern@3936: import de.intevation.flys.model.Gauge;
bjoern@3936:
bjoern@3936: /**
bjoern@3936: * A Facet that returns discharge curve data at a gauge
bjoern@3936: *
bjoern@3936: * @author Björn Ricks
bjoern@3936: */
bjoern@3936: public class GaugeDischargeCurveFacet
bjoern@3936: extends DefaultFacet
bjoern@3936: {
bjoern@3936: private Gauge gauge;
bjoern@3936: private String river;
bjoern@3936:
bjoern@3936: public GaugeDischargeCurveFacet(String river, Gauge gauge) {
bjoern@3936: super(0, "facet.gauge.discharge_curve", "facet.gauge.discharge_curve");
bjoern@3936: this.river = river;
bjoern@3936: this.gauge = gauge;
bjoern@3936: }
bjoern@3936:
bjoern@3936: @Override
bjoern@3936: public Object getData(Artifact art, CallContext context) {
bjoern@3936:
bjoern@3936: DischargeTables dt = new DischargeTables(river, gauge.getName());
bjoern@3936:
bjoern@3936: Map map = dt.getValues(100d);
bjoern@3936:
bjoern@3936: double [][] values = map.get(name);
bjoern@3936: if (values == null) {
bjoern@3936: return null;
bjoern@3936: }
bjoern@3936: double [] kms = new double[values[0].length];
bjoern@3936: Arrays.fill(kms, gauge.getStation().doubleValue());
bjoern@3936: return new WQKms(kms, values[0], values[1], gauge.getName());
bjoern@3936: }
bjoern@3936:
bjoern@3936: @Override
bjoern@3936: public Facet deepCopy() {
bjoern@3936: GaugeDischargeCurveFacet copy =
bjoern@3936: new GaugeDischargeCurveFacet(this.river, this.gauge);
bjoern@3936: copy.set(this);
bjoern@3936: return copy;
bjoern@3936: }
bjoern@3936: }