1 | package edu.iu.uis.sit.portal.portlet.admin.web; |
2 | |
3 | import org.springframework.validation.Errors; |
4 | import org.springframework.validation.ValidationUtils; |
5 | import org.springframework.validation.Validator; |
6 | |
7 | import edu.iu.uis.sit.portal.portlet.admin.domain.ApplicationConstant; |
8 | import edu.iu.uis.sit.portal.portlet.admin.services.AdminService; |
9 | |
10 | public class ApplicationConstantValidator implements Validator { |
11 | |
12 | private AdminService adminService; |
13 | |
14 | public boolean supports(Class candidate) { |
15 | return ApplicationConstant.class.isAssignableFrom(candidate); |
16 | } |
17 | |
18 | public void validate(Object obj, Errors errors) { |
19 | ApplicationConstant constant = (ApplicationConstant) obj; |
20 | |
21 | ValidationUtils.rejectIfEmptyOrWhitespace(errors, "constantName", "APPLICATION_CONSTANT_NAME_REQUIRED", "Application constant name is required."); |
22 | if (constant.getConstantName() != null) { |
23 | if (constant.getConstantId() == null) { |
24 | if (getAdminService().findApplicationConstantByName(constant.getConstantName()) != null) { |
25 | errors.rejectValue("constantName", "APPLICATION_CONSTANT_NAME_DUPLICATE", "This application constant name already exists."); |
26 | } |
27 | } |
28 | if (constant.getConstantName().indexOf(" ") >= 0) { |
29 | errors.rejectValue("constantName", "APPLICATION_CONSTANT_NAME_SPACE", "This application constant name can not contain spaces."); |
30 | } |
31 | } |
32 | } |
33 | |
34 | public AdminService getAdminService() { |
35 | return adminService; |
36 | } |
37 | |
38 | public void setAdminService(AdminService adminService) { |
39 | this.adminService = adminService; |
40 | } |
41 | |
42 | } |