View Javadoc

1   /*
2    * Copyright 2006-2008 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  
17  package org.kuali.rice.krad.workflow.postprocessor;
18  
19  import java.rmi.RemoteException;
20  
21  import org.apache.log4j.Logger;
22  import org.kuali.rice.kew.dto.ActionTakenEventDTO;
23  import org.kuali.rice.kew.dto.AfterProcessEventDTO;
24  import org.kuali.rice.kew.dto.BeforeProcessEventDTO;
25  import org.kuali.rice.kew.dto.DeleteEventDTO;
26  import org.kuali.rice.kew.dto.DocumentLockingEventDTO;
27  import org.kuali.rice.kew.dto.DocumentRouteLevelChangeDTO;
28  import org.kuali.rice.kew.dto.DocumentRouteStatusChangeDTO;
29  import org.kuali.rice.kew.postprocessor.PostProcessorRemote;
30  import org.kuali.rice.krad.service.KRADServiceLocatorInternal;
31  
32  
33  /**
34   * 
35   * This class is the public entry point by which workflow communicates status changes, 
36   * level changes, and other useful changes.
37   * 
38   * Note that this class delegates all of these activities to the PostProcessorService, 
39   * which does the actual work.  This is done to ensure proper transaction scoping, and 
40   * to resolve some issues present otherwise.
41   * 
42   * Because of this, its important to understand that a transaction will be started at 
43   * the PostProcessorService method call, so any work that needs to be done within the 
44   * same transaction needs to happen inside that service implementation, rather than 
45   * in here.
46   * 
47   */
48  public class KualiPostProcessor implements PostProcessorRemote {
49  
50      private static Logger LOG = Logger.getLogger(KualiPostProcessor.class);
51  
52      /**
53       * 
54       * @see org.kuali.rice.kew.postprocessor.PostProcessorRemote#doRouteStatusChange(org.kuali.rice.kew.dto.DocumentRouteStatusChangeDTO)
55       */
56      public boolean doRouteStatusChange(DocumentRouteStatusChangeDTO statusChangeEvent) throws RemoteException {
57          return KRADServiceLocatorInternal.getPostProcessorService().doRouteStatusChange(statusChangeEvent);
58      }
59  
60      /**
61       * 
62       * @see org.kuali.rice.kew.postprocessor.PostProcessorRemote#doActionTaken(org.kuali.rice.kew.dto.ActionTakenEventDTO)
63       */
64      public boolean doActionTaken(ActionTakenEventDTO event) throws RemoteException {
65          return KRADServiceLocatorInternal.getPostProcessorService().doActionTaken(event);
66      }
67  
68      /**
69       * 
70       * @see org.kuali.rice.kew.postprocessor.PostProcessorRemote#doDeleteRouteHeader(org.kuali.rice.kew.dto.DeleteEventDTO)
71       */
72      public boolean doDeleteRouteHeader(DeleteEventDTO event) throws RemoteException {
73          return KRADServiceLocatorInternal.getPostProcessorService().doDeleteRouteHeader(event);
74      }
75  
76      /**
77       * 
78       * @see org.kuali.rice.kew.postprocessor.PostProcessorRemote#doRouteLevelChange(org.kuali.rice.kew.dto.DocumentRouteLevelChangeDTO)
79       */
80      public boolean doRouteLevelChange(DocumentRouteLevelChangeDTO levelChangeEvent) throws RemoteException {
81          return KRADServiceLocatorInternal.getPostProcessorService().doRouteLevelChange(levelChangeEvent);
82      }
83  
84      /**
85       * @see org.kuali.rice.kew.postprocessor.PostProcessorRemote#beforeProcess(org.kuali.rice.kew.dto.BeforeProcessEventDTO)
86       */
87      public boolean beforeProcess(BeforeProcessEventDTO beforeProcessEvent) throws Exception {
88          return KRADServiceLocatorInternal.getPostProcessorService().beforeProcess(beforeProcessEvent);
89      }
90  
91      /**
92       * @see org.kuali.rice.kew.postprocessor.PostProcessorRemote#afterProcess(org.kuali.rice.kew.dto.AfterProcessEventDTO)
93       */
94      public boolean afterProcess(AfterProcessEventDTO afterProcessEvent) throws Exception {
95          return KRADServiceLocatorInternal.getPostProcessorService().afterProcess(afterProcessEvent);
96      }
97  
98      /**
99       * @see org.kuali.rice.kew.postprocessor.PostProcessorRemote#getDocumentIdsToLock(org.kuali.rice.kew.dto.DocumentLockingEventDTO)
100      */
101 	public String[] getDocumentIdsToLock(DocumentLockingEventDTO documentLockingEvent) throws Exception {
102 		return KRADServiceLocatorInternal.getPostProcessorService().getDocumentIdsToLock(documentLockingEvent);
103 	}
104     
105     
106  }