View Javadoc
1   /**
2    * Copyright 2005-2014 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.opensource.org/licenses/ecl2.php
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.rice.kns.web.struts.action;
17  
18  import org.apache.commons.lang.StringUtils;
19  import org.apache.struts.action.ActionForm;
20  import org.apache.struts.action.ActionForward;
21  import org.apache.struts.action.ActionMapping;
22  import org.kuali.rice.core.api.util.RiceConstants;
23  import org.kuali.rice.kns.web.struts.form.DisplayInactivationBlockersForm;
24  import org.kuali.rice.krad.bo.BusinessObject;
25  import org.kuali.rice.krad.datadictionary.InactivationBlockingMetadata;
26  import org.kuali.rice.krad.service.DataDictionaryService;
27  import org.kuali.rice.krad.service.InactivationBlockingDisplayService;
28  import org.kuali.rice.krad.service.KRADServiceLocatorWeb;
29  import org.kuali.rice.krad.util.ObjectUtils;
30  
31  import javax.servlet.http.HttpServletRequest;
32  import javax.servlet.http.HttpServletResponse;
33  import java.util.List;
34  import java.util.Map;
35  import java.util.Set;
36  import java.util.TreeMap;
37  
38  /**
39   * This is a description of what this class does - wliang don't forget to fill this in. 
40   * 
41   * @author Kuali Rice Team (rice.collab@kuali.org)
42   *
43   * @deprecated KNS Struts deprecated, use KRAD and the Spring MVC framework.
44   */
45  @Deprecated
46  public class DisplayInactivationBlockersAction extends KualiAction {
47  	@Deprecated
48  	public ActionForward displayAllInactivationBlockers(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
49  		DisplayInactivationBlockersForm displayInactivationBlockersForm = (DisplayInactivationBlockersForm) form;
50  		DataDictionaryService dataDictionaryService = KRADServiceLocatorWeb.getDataDictionaryService();
51  		InactivationBlockingDisplayService inactivationBlockingDisplayService = KRADServiceLocatorWeb
52                  .getInactivationBlockingDisplayService();
53  		
54  		Class blockedBoClass = Class.forName(displayInactivationBlockersForm.getBusinessObjectClassName());
55  		BusinessObject blockedBo = (BusinessObject) blockedBoClass.newInstance();
56  		for (String key : displayInactivationBlockersForm.getPrimaryKeyFieldValues().keySet()) {
57  			ObjectUtils.setObjectProperty(blockedBo, key, displayInactivationBlockersForm.getPrimaryKeyFieldValues().get(key));
58  		}
59  		
60  		Map<String, List<String>> allBlockers = new TreeMap<String, List<String>>();
61  		
62  		Set<InactivationBlockingMetadata> inactivationBlockers = dataDictionaryService.getAllInactivationBlockingDefinitions(blockedBoClass);
63  		for (InactivationBlockingMetadata inactivationBlockingMetadata : inactivationBlockers) {
64  			String blockingBoLabel = dataDictionaryService.getDataDictionary().getBusinessObjectEntry(inactivationBlockingMetadata.getBlockingReferenceBusinessObjectClass().getName()).getObjectLabel();
65  			String relationshipLabel = inactivationBlockingMetadata.getRelationshipLabel();
66  			String displayLabel;
67  			if (StringUtils.isEmpty(relationshipLabel)) {
68  				displayLabel = blockingBoLabel;
69  			}
70  			else {
71  				displayLabel = blockingBoLabel + " (" + relationshipLabel + ")";
72  			}
73  			List<String> blockerObjectList = inactivationBlockingDisplayService.listAllBlockerRecords(blockedBo, inactivationBlockingMetadata);
74  			
75  			if (!blockerObjectList.isEmpty()) {
76  				List<String> existingList = allBlockers.get(displayLabel);
77  				if (existingList != null) {
78  					existingList.addAll(blockerObjectList);
79  				}
80  				else {
81  					allBlockers.put(displayLabel, blockerObjectList);
82  				}
83  			}
84  		}
85  		
86  		displayInactivationBlockersForm.setBlockingValues(allBlockers);
87  		
88  		return mapping.findForward(RiceConstants.MAPPING_BASIC);
89  	}
90  }