Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Calculation6.java @ 2219:4b6e9b377a84
Fetch parameters for 'historical discharge curve' calculation; call Calculation6 with those information and check input parameters.
flys-artifacts/trunk@3858 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 01 Feb 2012 13:33:58 +0000 |
parents | ebbb18ed78c4 |
children | 4db19a88bddb |
comparison
equal
deleted
inserted
replaced
2218:39933df6d0fe | 2219:4b6e9b377a84 |
---|---|
1 package de.intevation.flys.artifacts.model; | 1 package de.intevation.flys.artifacts.model; |
2 | 2 |
3 import org.apache.log4j.Logger; | 3 import org.apache.log4j.Logger; |
4 | |
5 import de.intevation.flys.model.Gauge; | |
4 | 6 |
5 | 7 |
6 /** | 8 /** |
7 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 9 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
8 */ | 10 */ |
9 public class Calculation6 extends Calculation { | 11 public class Calculation6 extends Calculation { |
10 | 12 |
11 private static final Logger logger = Logger.getLogger(Calculation6.class); | 13 private static final Logger logger = Logger.getLogger(Calculation6.class); |
12 | 14 |
15 private int mode; | |
16 private int[] timerange; | |
17 private double[] values; | |
13 | 18 |
14 public Calculation6() { | 19 |
20 public static final int MODE_W = 0; | |
21 public static final int MODE_Q = 1; | |
22 | |
23 | |
24 public Calculation6(int mode, int[] timerange, double[] values) { | |
25 this.mode = mode; | |
26 this.timerange = timerange; | |
27 this.values = values; | |
15 } | 28 } |
16 | 29 |
17 | 30 |
18 public CalculationResult calculate() { | 31 public CalculationResult calculate(Gauge gauge) { |
32 if (!checkParameters() || gauge == null) { | |
33 logger.warn("Parameters not valid for calculation."); | |
34 | |
35 return null; | |
36 } | |
37 | |
38 if (logger.isDebugEnabled()) { | |
39 debug(); | |
40 } | |
41 | |
19 logger.warn("TODO: IMPLEMENT ME"); | 42 logger.warn("TODO: IMPLEMENT ME"); |
43 | |
20 return null; | 44 return null; |
45 } | |
46 | |
47 | |
48 protected boolean checkParameters() { | |
49 if (!(mode == MODE_W || mode == MODE_Q)) { | |
50 logger.warn("Invalid mode '" + mode + "' for calculation."); | |
51 return false; | |
52 } | |
53 | |
54 if (timerange == null || timerange.length < 2) { | |
55 logger.warn("Invalid timerange for calculation."); | |
56 return false; | |
57 } | |
58 | |
59 if (values == null || values.length == 0) { | |
60 logger.warn("No values for W or Q specified."); | |
61 return false; | |
62 } | |
63 | |
64 return true; | |
65 } | |
66 | |
67 | |
68 /** | |
69 * Writes the parameters used for this calculation to logger. | |
70 */ | |
71 public void debug() { | |
72 StringBuilder sb = new StringBuilder(); | |
73 for (double value: values) { | |
74 sb.append(String.valueOf(value) + " "); | |
75 } | |
76 | |
77 logger.debug("========== Calculation6 =========="); | |
78 logger.debug(" Mode: " + mode); | |
79 logger.debug(" Timerange: " + timerange[0] + " - " + timerange[1]); | |
80 logger.debug(" Input values: " + sb.toString()); | |
81 logger.debug("=================================="); | |
21 } | 82 } |
22 } | 83 } |
23 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 84 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |