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 org.promotego.beans.Location;
22 import org.springframework.validation.Errors;
23 import org.springframework.validation.ValidationUtils;
24 import org.springframework.validation.Validator;
25
26 public class LocationValidator implements Validator
27 {
28 private AddressValidator m_addressValidator = new AddressValidator("address");
29
30 public boolean supports(@SuppressWarnings("unchecked")Class clazz)
31 {
32 return Location.class.isAssignableFrom(clazz);
33 }
34
35 public void validate(Object target, Errors errors)
36 {
37 Location theLocation = (Location)target;
38
39 ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "required", "Name is required.");
40 ValidationUtils.rejectIfEmptyOrWhitespace(errors, "phoneNumber", "required", "Phone number is required.");
41
42 if (!theLocation.getPhoneNumber().matches("[0-9]{3}-[0-9]{3}-[0-9]{4}"))
43 {
44 errors.rejectValue("phoneNumber", "incorrectFormat", "Phone number must have format XXX-XXX-XXXX.");
45 }
46
47 m_addressValidator.validate(((Location)target).getAddress(), errors);
48 }
49 }