# HG changeset patch # User Sascha L. Teichmann # Date 1303209151 0 # Node ID 07e642030172d4389faa2fbf17227367dc951e2f # Parent e09634fbf6bc1961ec2b2347763b439bf538e1d9 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 diff -r e09634fbf6bc -r 07e642030172 flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Mon Apr 18 16:01:23 2011 +0000 +++ b/flys-artifacts/ChangeLog Tue Apr 19 10:32:31 2011 +0000 @@ -1,3 +1,9 @@ +2011-04-19 Sascha L. Teichmann + + * src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java: + Added convenience constructors/methods to ease the access to the master + discharge table of a gauge. + 2011-04-18 Sascha L. Teichmann * src/main/java/de/intevation/flys/artifacts/model/WstValueTable.java: diff -r e09634fbf6bc -r 07e642030172 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java Mon Apr 18 16:01:23 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/DischargeTables.java Tue Apr 19 10:32:31 2011 +0000 @@ -20,6 +20,10 @@ public class DischargeTables implements Serializable { + public static final double DEFAULT_SCALE = 100.0; + + public static final int MASTER = 0; + private static Logger log = Logger.getLogger(DischargeTables.class); protected List gaugeNames; @@ -28,21 +32,56 @@ protected double scale; + protected int kind; + protected Map values; public DischargeTables() { } - public DischargeTables(String riverName, String [] gaugeNames) { - this(riverName, Arrays.asList(gaugeNames)); + public DischargeTables(String riverName, String gaugeName) { + this(riverName, gaugeName, MASTER); } - public DischargeTables(String riverName, List gaugeNames) { + public DischargeTables(String riverName, String gaugeName, int kind) { + this(riverName, new String [] { gaugeName }, kind); + } + + public DischargeTables(String riverName, String [] gaugeNames) { + this(riverName, gaugeNames, MASTER); + } + + public DischargeTables(String riverName, String [] gaugeNames, int kind) { + this(riverName, Arrays.asList(gaugeNames), kind); + } + + public DischargeTables( + String riverName, + List gaugeNames, + int kind + ) { scale = Double.NaN; + this.kind = kind; this.riverName = riverName; this.gaugeNames = gaugeNames; } + public double [][] getFirstTable() { + return getFirstTable(DEFAULT_SCALE); + } + + public double [][] getFirstTable(double scale) { + Map values = getValues(scale); + for (double [][] table: values.values()) { + return table; + } + return null; + } + + public Map getValues() { + return getValues(DEFAULT_SCALE); + } + public Map getValues(double scale) { if (values == null || scale != this.scale) { values = loadValues(scale); @@ -57,8 +96,9 @@ Session session = SessionHolder.HOLDER.get(); Query gaugeQuery = session.createQuery( - "from Gauge where name=:gauge and river.name=:river"); + "from Gauge where name=:gauge and river.name=:river and kind=:kind"); gaugeQuery.setParameter("river", riverName); + gaugeQuery.setInteger("kind", kind); for (String gaugeName: gaugeNames) { gaugeQuery.setParameter("gauge", gaugeName);