View Javadoc

1   /*
2    * Copyright 2011 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may	obtain a copy of the License at
7    *
8    * 	http://www.osedu.org/licenses/ECL-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.student.ui.admin.atp;
17  
18  
19  import java.util.ArrayList;
20  import java.util.List;
21  import java.util.Map;
22  import javax.xml.namespace.QName;
23  import org.apache.log4j.Logger;
24  import org.kuali.rice.core.api.criteria.Predicate;
25  import org.kuali.rice.core.api.criteria.PredicateFactory;
26  import org.kuali.rice.core.api.criteria.QueryByCriteria;
27  import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader;
28  import org.kuali.rice.krad.lookup.LookupableImpl;
29  import org.kuali.rice.krad.web.form.LookupForm;
30  import org.kuali.student.enrollment.common.util.ContextBuilder;
31  import org.kuali.student.r2.common.dto.ContextInfo;
32  import org.kuali.student.r2.core.atp.dto.AtpAtpRelationInfo;
33  import org.kuali.student.r2.core.atp.service.AtpService;
34  import org.kuali.student.r2.core.constants.AtpServiceConstants;
35  
36  
37  public class AtpAtpRelationInfoAdminLookupableImpl extends LookupableImpl
38  {
39  	private static final Logger LOG = Logger.getLogger(AtpAtpRelationInfoAdminLookupableImpl.class);
40  	private transient AtpService atpService;
41      private static final long serialVersionUID = 1L;
42  	@Override
43  	protected List<AtpAtpRelationInfo> getSearchResults(LookupForm lookupForm, Map<String, String> fieldValues, boolean unbounded)
44  	{
45  		QueryByCriteria.Builder qBuilder = QueryByCriteria.Builder.create();
46  		List<Predicate> pList = new ArrayList<Predicate>();
47  		for (String fieldName : fieldValues.keySet())
48  		{
49  			String value = fieldValues.get(fieldName);
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<AtpAtpRelationInfo> list = this.getAtpService().searchForAtpAtpRelations(qBuilder.build(), getContextInfo());
67  			return list;
68  		}
69  		catch (Exception ex) {
70  		    throw new RuntimeException(ex);
71  		}
72  	}
73  
74  	public void setAtpService(AtpService atpService)
75  	{
76  		    this.atpService = atpService;
77  	}
78  
79  	public AtpService getAtpService()
80  	{
81  		if (atpService == null)
82  		{
83  			QName qname = new QName(AtpServiceConstants.NAMESPACE,AtpServiceConstants.SERVICE_NAME_LOCAL_PART);
84  			atpService = (AtpService) GlobalResourceLoader.getService(qname);
85  		}
86  		return this.atpService;
87  	}
88  
89  	private ContextInfo getContextInfo() {
90  	    return ContextBuilder.loadContextInfo();
91  	}
92  }
93