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: bjoern@3936: import de.intevation.artifactdatabase.state.DefaultFacet; bjoern@3936: import de.intevation.artifactdatabase.state.Facet; 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: }