1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.student.enrollment.class2.courseoffering.krms.naturallanguage.context;
17
18 import org.kuali.rice.core.api.exception.RiceIllegalStateException;
19 import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader;
20 import org.kuali.student.r2.common.dto.ContextInfo;
21 import org.kuali.student.r2.common.util.ContextUtils;
22 import org.kuali.student.r2.core.constants.PopulationServiceConstants;
23 import org.kuali.student.r2.core.krms.naturallanguage.TermParameterTypes;
24 import org.kuali.student.r2.core.population.dto.PopulationInfo;
25 import org.kuali.student.r2.core.population.service.PopulationService;
26
27 import javax.xml.namespace.QName;
28 import java.util.Map;
29
30
31
32
33
34 public class PopulationContextImpl extends BasicContextImpl {
35
36 private PopulationService populationService;
37
38 public final static String POPULATION_TOKEN = "population";
39
40
41 public void setPopulationService(PopulationService populationService) {
42 this.populationService = populationService;
43 }
44 private PopulationService getPopulationService() {
45 if(populationService == null) {
46 populationService = (PopulationService) GlobalResourceLoader.getService(new QName(PopulationServiceConstants.NAMESPACE, "PopulationService"));
47 }
48 return this.populationService;
49 }
50 private PopulationInfo getClassStanding(String populationId, ContextInfo context) {
51 if (populationId == null) {
52 return null;
53 }
54 try {
55
56 return this.getPopulationService().getPopulation(populationId, context);
57 } catch (Exception e) {
58 throw new RiceIllegalStateException (e);
59 }
60 }
61
62
63
64
65
66
67 @Override
68 public Map<String, Object> createContextMap(Map<String, Object> parameters) {
69 ContextInfo contextInfo = ContextUtils.getContextInfo();
70 Map<String, Object> contextMap = super.createContextMap(parameters);
71
72 String populationId = (String) parameters.get(TermParameterTypes.POPULATION_KEY.getId());
73
74 if (populationId != null) {
75 PopulationInfo populationInfo = this.getClassStanding(populationId, contextInfo);
76 contextMap.put(POPULATION_TOKEN, populationInfo);
77 }
78
79 return contextMap;
80 }
81 }