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 }

http://dive4elements.wald.intevation.org