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.state;
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.class1.state.dto.StateInfo;
33  import org.kuali.student.r2.core.class1.state.service.StateService;
34  import org.kuali.student.r2.core.constants.StateServiceConstants;
35  
36  
37  public class StateInfoAdminLookupableImpl extends LookupableImpl
38  {
39  	private static final Logger LOG = Logger.getLogger(StateInfoAdminLookupableImpl.class);
40  	private transient StateService stateService;
41      private static final long serialVersionUID = 1L;
42  	@Override
43  	protected List<StateInfo> 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<StateInfo> list = this.getStateService().searchForStates(qBuilder.build(), getContextInfo());
67  			return list;
68  		}
69  		catch (Exception ex) {
70  		    throw new RuntimeException(ex);
71  		}
72  	}
73  
74  	public void setStateService(StateService stateService)
75  	{
76  		    this.stateService = stateService;
77  	}
78  
79  	public StateService getStateService()
80  	{
81  		if (stateService == null)
82  		{
83  			QName qname = new QName(StateServiceConstants.NAMESPACE,StateServiceConstants.SERVICE_NAME_LOCAL_PART);
84  			stateService = (StateService) GlobalResourceLoader.getService(qname);
85  		}
86  		return this.stateService;
87  	}
88  
89  	private ContextInfo getContextInfo() {
90  	    return ContextBuilder.loadContextInfo();
91  	}
92  }
93