Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java @ 328:07e642030172
Discharge tables: Added convenience constructors/methods to ease the access to the master discharge table of a gauge.
flys-artifacts/trunk@1726 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 19 Apr 2011 10:32:31 +0000 |
parents | 94c176fdcb89 |
children | 0b2358bc716d |
comparison
equal
deleted
inserted
replaced
327:e09634fbf6bc | 328:07e642030172 |
---|---|
18 import de.intevation.flys.model.DischargeTableValue; | 18 import de.intevation.flys.model.DischargeTableValue; |
19 | 19 |
20 public class DischargeTables | 20 public class DischargeTables |
21 implements Serializable | 21 implements Serializable |
22 { | 22 { |
23 public static final double DEFAULT_SCALE = 100.0; | |
24 | |
25 public static final int MASTER = 0; | |
26 | |
23 private static Logger log = Logger.getLogger(DischargeTables.class); | 27 private static Logger log = Logger.getLogger(DischargeTables.class); |
24 | 28 |
25 protected List<String> gaugeNames; | 29 protected List<String> gaugeNames; |
26 | 30 |
27 protected String riverName; | 31 protected String riverName; |
28 | 32 |
29 protected double scale; | 33 protected double scale; |
30 | 34 |
35 protected int kind; | |
36 | |
31 protected Map<String, double [][]> values; | 37 protected Map<String, double [][]> values; |
32 | 38 |
33 public DischargeTables() { | 39 public DischargeTables() { |
34 } | 40 } |
35 | 41 |
36 public DischargeTables(String riverName, String [] gaugeNames) { | 42 public DischargeTables(String riverName, String gaugeName) { |
37 this(riverName, Arrays.asList(gaugeNames)); | 43 this(riverName, gaugeName, MASTER); |
38 } | 44 } |
39 | 45 |
40 public DischargeTables(String riverName, List<String> gaugeNames) { | 46 public DischargeTables(String riverName, String gaugeName, int kind) { |
47 this(riverName, new String [] { gaugeName }, kind); | |
48 } | |
49 | |
50 public DischargeTables(String riverName, String [] gaugeNames) { | |
51 this(riverName, gaugeNames, MASTER); | |
52 } | |
53 | |
54 public DischargeTables(String riverName, String [] gaugeNames, int kind) { | |
55 this(riverName, Arrays.asList(gaugeNames), kind); | |
56 } | |
57 | |
58 public DischargeTables( | |
59 String riverName, | |
60 List<String> gaugeNames, | |
61 int kind | |
62 ) { | |
41 scale = Double.NaN; | 63 scale = Double.NaN; |
64 this.kind = kind; | |
42 this.riverName = riverName; | 65 this.riverName = riverName; |
43 this.gaugeNames = gaugeNames; | 66 this.gaugeNames = gaugeNames; |
67 } | |
68 | |
69 public double [][] getFirstTable() { | |
70 return getFirstTable(DEFAULT_SCALE); | |
71 } | |
72 | |
73 public double [][] getFirstTable(double scale) { | |
74 Map<String, double [][]> values = getValues(scale); | |
75 for (double [][] table: values.values()) { | |
76 return table; | |
77 } | |
78 return null; | |
79 } | |
80 | |
81 public Map<String, double [][]> getValues() { | |
82 return getValues(DEFAULT_SCALE); | |
44 } | 83 } |
45 | 84 |
46 public Map<String, double [][]> getValues(double scale) { | 85 public Map<String, double [][]> getValues(double scale) { |
47 if (values == null || scale != this.scale) { | 86 if (values == null || scale != this.scale) { |
48 values = loadValues(scale); | 87 values = loadValues(scale); |
55 Map<String, double [][]> values = new HashMap<String, double [][]>(); | 94 Map<String, double [][]> values = new HashMap<String, double [][]>(); |
56 | 95 |
57 Session session = SessionHolder.HOLDER.get(); | 96 Session session = SessionHolder.HOLDER.get(); |
58 | 97 |
59 Query gaugeQuery = session.createQuery( | 98 Query gaugeQuery = session.createQuery( |
60 "from Gauge where name=:gauge and river.name=:river"); | 99 "from Gauge where name=:gauge and river.name=:river and kind=:kind"); |
61 gaugeQuery.setParameter("river", riverName); | 100 gaugeQuery.setParameter("river", riverName); |
101 gaugeQuery.setInteger("kind", kind); | |
62 | 102 |
63 for (String gaugeName: gaugeNames) { | 103 for (String gaugeName: gaugeNames) { |
64 gaugeQuery.setParameter("gauge", gaugeName); | 104 gaugeQuery.setParameter("gauge", gaugeName); |
65 List<Gauge> gauges = gaugeQuery.list(); | 105 List<Gauge> gauges = gaugeQuery.list(); |
66 if (gauges.isEmpty()) { | 106 if (gauges.isEmpty()) { |