Mercurial > dive4elements > gnv-client
comparison gnv-artifacts/src/main/java/de/intevation/gnv/utils/InputValidator.java @ 1088:46cc1ab1ee15
Improved the validation of user inserted time periods (issue286).
gnv-artifacts/trunk@1191 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 10 Jun 2010 10:16:29 +0000 |
parents | 8f836fb6f592 |
children | 2b4d197a538c |
comparison
equal
deleted
inserted
replaced
1087:92fce3b3d07f | 1088:46cc1ab1ee15 |
---|---|
25 public class InputValidator { | 25 public class InputValidator { |
26 /** | 26 /** |
27 * the logger, used to log exceptions and additonaly information | 27 * the logger, used to log exceptions and additonaly information |
28 */ | 28 */ |
29 private static Logger log = Logger.getLogger(InputValidator.class); | 29 private static Logger log = Logger.getLogger(InputValidator.class); |
30 | |
31 /** | |
32 * Epsilon for handling unprecise date objects (in ms). | |
33 */ | |
34 public final static long DATE_EPSILON = 750; | |
35 | 30 |
36 | 31 |
37 public final static String NODATASELECTEDVALUE = "n/n"; | 32 public final static String NODATASELECTEDVALUE = "n/n"; |
38 | 33 |
39 /** | 34 /** |
224 * @param lo The lower range bound. | 219 * @param lo The lower range bound. |
225 * @param up The upper range bound. | 220 * @param up The upper range bound. |
226 * @return true, if tmp is valid, otherwise false. | 221 * @return true, if tmp is valid, otherwise false. |
227 */ | 222 */ |
228 public static boolean isDateValid(Date tmp, Date lo, Date up) { | 223 public static boolean isDateValid(Date tmp, Date lo, Date up) { |
229 long tmpTime = tmp.getTime(); | 224 // take the time in seconds to compare |
230 long tmpLow = lo.getTime(); | 225 long tmpTime = tmp.getTime() / 1000; |
231 long tmpUp = up.getTime(); | 226 long tmpLow = lo.getTime() / 1000; |
232 | 227 long tmpUp = up.getTime() / 1000; |
233 if (tmpTime < tmpLow - DATE_EPSILON || tmpTime > tmpUp + DATE_EPSILON) { | 228 |
229 if (log.isDebugEnabled()) { | |
230 log.debug("Date validation..."); | |
231 log.debug("-> lower bound [sec]: " + tmpLow); | |
232 log.debug("-> upper bound [sec]: " + tmpUp); | |
233 log.debug("-> input data [sec]: " + tmpTime); | |
234 } | |
235 | |
236 if (tmpTime < tmpLow || tmpTime > tmpUp) { | |
234 log.warn( | 237 log.warn( |
235 "Date [" + tmp.toString() + "] is out of range [" | 238 "Date [" + tmp.toString() + "] is out of range [" |
236 + lo.toString() + " to "+ up.toString() + "]."); | 239 + lo.toString() + " to "+ up.toString() + "]."); |
237 return false; | 240 return false; |
238 } | 241 } |