001 /*
002 * Copyright 2011 The Kuali Foundation.
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.kfs.sys.businessobject.lookup;
017
018 import java.util.ArrayList;
019 import java.util.List;
020 import java.util.Map;
021
022 import org.apache.commons.lang.StringUtils;
023 import org.kuali.kfs.sys.KFSConstants;
024 import org.kuali.kfs.sys.businessobject.KualiModuleBO;
025 import org.kuali.kfs.sys.context.SpringContext;
026 import org.kuali.rice.kns.bo.BusinessObject;
027 import org.kuali.rice.kns.lookup.KualiLookupableHelperServiceImpl;
028 import org.kuali.rice.kns.service.BusinessObjectDictionaryService;
029 import org.kuali.rice.kns.service.KualiConfigurationService;
030 import org.kuali.rice.kns.service.KualiModuleService;
031 import org.kuali.rice.kns.service.ModuleService;
032
033 public class ModuleLookupableHelperServiceImpl extends KualiLookupableHelperServiceImpl {
034
035 private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(BatchJobStatusLookupableHelperServiceImpl.class);
036
037 private KualiConfigurationService configService;
038 private Map fieldConversions;
039
040 @Override
041 public List<? extends BusinessObject> getSearchResults(Map<String, String> fieldValues) {
042 super.setBackLocation((String) fieldValues.get(KFSConstants.BACK_LOCATION));
043 super.setDocFormKey((String) fieldValues.get(KFSConstants.DOC_FORM_KEY));
044 List<ModuleService> modules = SpringContext.getBean(KualiModuleService.class).getInstalledModuleServices();
045 String codeValue = fieldValues.get("moduleCode");
046 String nameValue = fieldValues.get("moduleName");
047 List<KualiModuleBO> boModules = new ArrayList();
048 String tempNamespaceName;
049 for (ModuleService mod : modules) {
050 if (!StringUtils.isEmpty(nameValue) && !StringUtils.containsIgnoreCase(mod.getModuleConfiguration().getNamespaceCode(), nameValue)) {
051 continue;
052 }
053 tempNamespaceName = SpringContext.getBean(KualiModuleService.class).getNamespaceName(mod.getModuleConfiguration().getNamespaceCode());
054 if (!StringUtils.isEmpty(codeValue) && !StringUtils.containsIgnoreCase(tempNamespaceName, codeValue)) {
055 continue;
056 }
057 boModules.add(new KualiModuleBO(mod.getModuleConfiguration().getNamespaceCode(),
058 mod.getModuleConfiguration().getNamespaceCode(), tempNamespaceName));
059 }
060 return boModules;
061 }
062
063
064 public void setConfigService(KualiConfigurationService configService) {
065 this.configService = configService;
066 }
067
068 public List getReturnKeys() {
069 List returnKeys;
070
071 if (fieldConversions != null && !fieldConversions.isEmpty()) {
072 returnKeys = new ArrayList(fieldConversions.keySet());
073 }
074 else {
075 returnKeys = SpringContext.getBean(BusinessObjectDictionaryService.class).getLookupFieldNames(org.kuali.kfs.sys.businessobject.KualiModuleBO.class);
076 }
077
078 return returnKeys;
079 }
080
081 public void setFieldConversions(Map fieldConversions) {
082 this.fieldConversions = fieldConversions;
083 }
084
085
086 }