Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
ActivityTypeValidator |
|
| 7.0;7 |
1 | package org.kuali.student.lum.course.service.utils; | |
2 | ||
3 | import java.util.ArrayList; | |
4 | import java.util.List; | |
5 | import java.util.Stack; | |
6 | ||
7 | import org.kuali.student.common.dictionary.dto.FieldDefinition; | |
8 | import org.kuali.student.common.dictionary.dto.ObjectStructureDefinition; | |
9 | import org.kuali.student.common.dto.AmountInfo; | |
10 | import org.kuali.student.common.dto.TimeAmountInfo; | |
11 | import org.kuali.student.common.validation.dto.ValidationResultInfo; | |
12 | import org.kuali.student.common.validator.DefaultValidatorImpl; | |
13 | import org.kuali.student.lum.course.dto.ActivityInfo; | |
14 | ||
15 | /** | |
16 | * Validates Subject COde usage | |
17 | * If the Course has a subject code with usage of all, the | |
18 | * | |
19 | */ | |
20 | 1 | public class ActivityTypeValidator extends DefaultValidatorImpl { |
21 | ||
22 | @Override | |
23 | public List<ValidationResultInfo> validateObject(FieldDefinition field, Object o, ObjectStructureDefinition objStructure, | |
24 | Stack<String> elementStack) { | |
25 | ||
26 | 24 | List<ValidationResultInfo> validationResults = new ArrayList<ValidationResultInfo>(); |
27 | ||
28 | 24 | if (o instanceof ActivityInfo && o != null) { |
29 | 24 | ActivityInfo activity = (ActivityInfo)o; |
30 | 24 | if (hasActivityData(activity) && !hasText(activity.getActivityType())){ |
31 | 0 | ValidationResultInfo vr = new ValidationResultInfo(); |
32 | 0 | String elementPath = getElementXpath(elementStack) + "/activityType"; |
33 | 0 | vr.setElement(elementPath); |
34 | 0 | vr.setError("validation.required"); |
35 | 0 | validationResults.add(vr); |
36 | } | |
37 | } | |
38 | ||
39 | 24 | return validationResults; |
40 | } | |
41 | ||
42 | protected boolean hasActivityData(ActivityInfo activity){ | |
43 | 24 | boolean hasData = false; |
44 | ||
45 | 24 | AmountInfo contactHours = activity.getContactHours(); |
46 | 24 | if (contactHours != null){ |
47 | 24 | hasData = hasData || hasText(contactHours.getUnitQuantity()) || hasText(contactHours.getUnitType()); |
48 | } | |
49 | ||
50 | 24 | int enrollmentEstimate = activity.getDefaultEnrollmentEstimate(); |
51 | 24 | hasData = hasData || enrollmentEstimate >= 0; |
52 | ||
53 | 24 | TimeAmountInfo duration = activity.getDuration(); |
54 | 24 | if (duration != null){ |
55 | 24 | hasData = hasData || hasText(duration.getAtpDurationTypeKey()); |
56 | 24 | hasData = hasData || (duration.getTimeQuantity() != null && duration.getTimeQuantity().intValue() >= 0); |
57 | } | |
58 | ||
59 | 24 | return hasData; |
60 | } | |
61 | ||
62 | } |