Mercurial > dive4elements > river
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 } |