1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.student.krms.termresolver;
17
18 import org.kuali.rice.krms.api.engine.TermResolutionException;
19 import org.kuali.rice.krms.api.engine.TermResolver;
20 import org.kuali.student.common.util.krms.RulesExecutionConstants;
21 import org.kuali.student.enrollment.academicrecord.dto.StudentCourseRecordInfo;
22 import org.kuali.student.enrollment.academicrecord.service.AcademicRecordService;
23 import org.kuali.student.krms.util.KSKRMSExecutionConstants;
24 import org.kuali.student.krms.util.KSKRMSExecutionUtil;
25 import org.kuali.student.r2.common.dto.ContextInfo;
26 import org.kuali.student.r2.common.exceptions.InvalidParameterException;
27 import org.kuali.student.r2.common.exceptions.MissingParameterException;
28 import org.kuali.student.r2.common.exceptions.OperationFailedException;
29 import org.kuali.student.r2.common.exceptions.PermissionDeniedException;
30 import org.kuali.student.r2.core.atp.dto.MilestoneInfo;
31 import org.kuali.student.r2.core.atp.service.AtpService;
32
33 import java.util.Calendar;
34 import java.util.Collections;
35 import java.util.Date;
36 import java.util.HashSet;
37 import java.util.List;
38 import java.util.Map;
39 import java.util.Set;
40
41 public class CompletedCourseCodeTermResolver implements TermResolver<List<StudentCourseRecordInfo>> {
42
43 private AcademicRecordService academicRecordService;
44
45
46 public AcademicRecordService getAcademicRecordService() {
47 return academicRecordService;
48 }
49
50 public void setAcademicRecordService(AcademicRecordService academicRecordService) {
51 this.academicRecordService = academicRecordService;
52 }
53
54 @Override
55 public Set<String> getPrerequisites() {
56 return Collections.singleton(RulesExecutionConstants.CONTEXT_INFO_TERM_NAME);
57 }
58
59 @Override
60 public String getOutput() {
61 return "CompletedCourseCodeTermResolver.getOutput()";
62 }
63
64 @Override
65 public Set<String> getParameterNames() {
66 Set<String> temp = new HashSet<String>(1);
67 temp.add(KSKRMSExecutionConstants.PERSON_ID_TERM_PROPERTY);
68 return Collections.unmodifiableSet(temp);
69 }
70
71 @Override
72 public int getCost() {
73
74 return 5;
75 }
76
77 @Override
78 public List<StudentCourseRecordInfo> resolve(Map<String, Object> resolvedPrereqs, Map<String, String> parameters) throws TermResolutionException {
79 ContextInfo context = (ContextInfo) resolvedPrereqs.get(RulesExecutionConstants.CONTEXT_INFO_TERM_NAME);
80 String personId = parameters.get(KSKRMSExecutionConstants.PERSON_ID_TERM_PROPERTY);
81
82 List<StudentCourseRecordInfo> result = null;
83 try {
84 result = academicRecordService.getCompletedCourseRecords(personId, context);
85 } catch (Exception e) {
86 KSKRMSExecutionUtil.convertExceptionsToTermResolutionException(parameters, e, this);
87 }
88 return result;
89 }
90 }