1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.promotego.validators;
20
21 import java.util.Date;
22
23 import org.promotego.formbackingbeans.GameOfferBean;
24 import org.springframework.validation.Errors;
25 import org.springframework.validation.Validator;
26
27 public class GameOfferValidator implements Validator
28 {
29 public boolean supports(@SuppressWarnings("unchecked") Class clazz)
30 {
31 return GameOfferBean.class.isAssignableFrom(clazz);
32 }
33
34 public void validate(Object target, Errors errors)
35 {
36 GameOfferBean gameOfferBean = (GameOfferBean)target;
37
38
39 if (gameOfferBean.getStartTime().before(new Date()))
40 {
41 errors.rejectValue("startTime", "invalidStartTime", "Start time may not be in the past");
42 }
43
44
45 if (!gameOfferBean.getLocation().getStoreHours().isOpen(gameOfferBean.getStartTime(),
46 new Date(gameOfferBean.getStartTime().getTime() + gameOfferBean.getDuration()*1000)))
47 {
48 errors.rejectValue("startTime", "invalidGameTime",
49 "Game must take place during the normal business hours of the location ("
50 + gameOfferBean.getLocation().getStoreHoursString() + ")");
51 }
52 }
53 }