1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.student.contract.model.validation;
17
18 import org.kuali.student.contract.model.SearchCriteria;
19 import org.kuali.student.contract.model.SearchType;
20
21 import java.util.ArrayList;
22 import java.util.Collection;
23
24
25
26
27
28 public class SearchCriteriaValidator implements ModelValidator {
29
30 private SearchCriteria criteria;
31 private SearchType searchType;
32
33 public SearchCriteriaValidator(SearchCriteria criteria, SearchType searchType) {
34 this.criteria = criteria;
35 this.searchType = searchType;
36 }
37 private Collection errors;
38
39 @Override
40 public Collection<String> validate() {
41 errors = new ArrayList();
42 basicValidation();
43 if (criteria.getParameters() == null) {
44 addError("A parameter list is required even if no parameters");
45 }
46 return errors;
47 }
48
49 private void basicValidation() {
50 if (criteria.getKey().equals("")) {
51 addError("criteria key is required");
52 }
53 if (!criteria.getType().equals("Criteria")) {
54 addError("'Type' column in the criteria must be 'Criteria'");
55 }
56 if (criteria.getName().equals("")) {
57 addError("Name is required");
58 }
59 if (criteria.getDescription().equals("")) {
60 addError("Description is required");
61 }
62 if (!criteria.getDataType().equals("")) {
63 addError("Data Type should be blank");
64 }
65 }
66
67 private void addError(String msg) {
68 String error = "Error in criteria entry: " + searchType.getKey() + "." + criteria.getKey()
69 + ": " + msg;
70 if (!errors.contains(error)) {
71 errors.add(error);
72 }
73 }
74 }