1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.student.ui.admin.lrc;
17
18
19 import org.kuali.rice.core.api.criteria.Predicate;
20 import org.kuali.rice.core.api.criteria.PredicateFactory;
21 import org.kuali.rice.core.api.criteria.QueryByCriteria;
22 import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader;
23 import org.kuali.rice.krad.lookup.LookupForm;
24 import org.kuali.rice.krad.lookup.LookupableImpl;
25 import org.kuali.student.common.util.ContextBuilder;
26 import org.kuali.student.r2.common.dto.ContextInfo;
27 import org.kuali.student.r2.lum.lrc.dto.ResultScaleInfo;
28 import org.kuali.student.r2.lum.lrc.service.LRCService;
29 import org.kuali.student.r2.lum.util.constants.LrcServiceConstants;
30
31 import javax.xml.namespace.QName;
32 import java.util.ArrayList;
33 import java.util.List;
34 import java.util.Map;
35
36
37 public class ResultScaleInfoAdminLookupableImpl extends LookupableImpl
38 {
39 private transient LRCService lRCService;
40 private static final long serialVersionUID = 1L;
41 @Override
42 public List<ResultScaleInfo> performSearch(LookupForm lookupForm, Map<String, String> searchCriteria, boolean bounded)
43 {
44 QueryByCriteria.Builder qBuilder = QueryByCriteria.Builder.create();
45 List<Predicate> pList = new ArrayList<Predicate>();
46
47 for(Map.Entry<String, String> entry: searchCriteria.entrySet()) {
48 String fieldName = entry.getKey();
49 String value = entry.getValue();
50 if (value != null && !value.isEmpty())
51 {
52 if (fieldName.equals("maxResultsToReturn"))
53 {
54 qBuilder.setMaxResults (Integer.parseInt(value));
55 continue;
56 }
57 pList.add(PredicateFactory.equal(fieldName, value));
58 }
59 }
60 if (!pList.isEmpty())
61 {
62 qBuilder.setPredicates(PredicateFactory.and(pList.toArray(new Predicate[pList.size()])));
63 }
64 try
65 {
66 List<ResultScaleInfo> list = this.getLRCService().searchForResultScales(qBuilder.build(), getContextInfo());
67 return list;
68 }
69 catch (Exception ex) {
70 throw new RuntimeException(ex);
71 }
72 }
73
74 public void setLRCService(LRCService lRCService)
75 {
76 this.lRCService = lRCService;
77 }
78
79 public LRCService getLRCService()
80 {
81 if (lRCService == null)
82 {
83 QName qname = new QName(LrcServiceConstants.NAMESPACE,LrcServiceConstants.SERVICE_NAME_LOCAL_PART);
84 lRCService = (LRCService) GlobalResourceLoader.getService(qname);
85 }
86 return this.lRCService;
87 }
88
89 private ContextInfo getContextInfo() {
90 return ContextBuilder.loadContextInfo();
91 }
92 }
93