comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/GaugeDischargeCurveFacet.java @ 3986:b7bdef1831ac

Removed heavy weight data from the gauge discharge curve facet.
author Sascha L. Teichmann <teichmann@intevation.de>
date Sun, 30 Sep 2012 13:55:28 +0200
parents a4930c43b806
children a5e1ca620f15
comparison
equal deleted inserted replaced
3985:a4930c43b806 3986:b7bdef1831ac
7 import de.intevation.artifacts.CallContext; 7 import de.intevation.artifacts.CallContext;
8 8
9 import de.intevation.artifactdatabase.state.DefaultFacet; 9 import de.intevation.artifactdatabase.state.DefaultFacet;
10 import de.intevation.artifactdatabase.state.Facet; 10 import de.intevation.artifactdatabase.state.Facet;
11 11
12 import de.intevation.flys.artifacts.FLYSArtifact;
13
12 import de.intevation.flys.model.Gauge; 14 import de.intevation.flys.model.Gauge;
15
16 import de.intevation.flys.utils.FLYSUtils;
17
18 import org.apache.log4j.Logger;
13 19
14 /** 20 /**
15 * A Facet that returns discharge curve data at a gauge 21 * A Facet that returns discharge curve data at a gauge
16 * 22 *
17 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a> 23 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a>
18 */ 24 */
19 public class GaugeDischargeCurveFacet 25 public class GaugeDischargeCurveFacet
20 extends DefaultFacet 26 extends DefaultFacet
21 { 27 {
22 private Gauge gauge; 28 private static final Logger log =
23 private String river; 29 Logger.getLogger(GaugeDischargeCurveFacet.class);
24 30
25 public GaugeDischargeCurveFacet(String river, Gauge gauge) { 31 public GaugeDischargeCurveFacet() {
26 super(0, "facet.gauge.discharge_curve", "facet.gauge.discharge_curve"); 32 super(0, "facet.gauge.discharge_curve", "facet.gauge.discharge_curve");
27 this.river = river;
28 this.gauge = gauge;
29 } 33 }
30 34
31 @Override 35 @Override
32 public Object getData(Artifact art, CallContext context) { 36 public Object getData(Artifact art, CallContext context) {
33 37
34 DischargeTables dt = new DischargeTables(river, gauge.getName()); 38 if (!(art instanceof FLYSArtifact)) {
39 log.warn("Invalid artifact type");
40 return null;
41 }
42
43 FLYSArtifact flys = (FLYSArtifact)art;
44
45 String river = flys.getDataAsString("river");
46
47 Gauge gauge = FLYSUtils.getReferenceGauge(flys);
48
49 if (river == null || gauge == null) {
50 log.warn("Unknown river or gauge");
51 return null;
52 }
53
54 String name = gauge.getName();
55
56 DischargeTables dt = new DischargeTables(river, name);
35 57
36 Map<String, double [][]> map = dt.getValues(100d); 58 Map<String, double [][]> map = dt.getValues(100d);
37 59
38 double [][] values = map.get(name); 60 double [][] values = map.get(name);
39 if (values == null) { 61 if (values == null) {
40 return null; 62 return null;
41 } 63 }
42 double [] kms = new double[values[0].length]; 64 double [] kms = new double[values[0].length];
43 Arrays.fill(kms, gauge.getStation().doubleValue()); 65 Arrays.fill(kms, gauge.getStation().doubleValue());
44 return new WQKms(kms, values[0], values[1], gauge.getName()); 66 return new WQKms(kms, values[0], values[1], name);
45 } 67 }
46 68
47 @Override 69 @Override
48 public Facet deepCopy() { 70 public Facet deepCopy() {
49 GaugeDischargeCurveFacet copy = 71 GaugeDischargeCurveFacet copy = new GaugeDischargeCurveFacet();
50 new GaugeDischargeCurveFacet(this.river, this.gauge);
51 copy.set(this); 72 copy.set(this);
52 return copy; 73 return copy;
53 } 74 }
54 } 75 }

http://dive4elements.wald.intevation.org