View Javadoc

1   /**
2    * Copyright 2005-2012 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.krad.workflow.postprocessor;
17  
18  import org.apache.log4j.Logger;
19  import org.kuali.rice.kew.framework.postprocessor.ActionTakenEvent;
20  import org.kuali.rice.kew.framework.postprocessor.AfterProcessEvent;
21  import org.kuali.rice.kew.framework.postprocessor.BeforeProcessEvent;
22  import org.kuali.rice.kew.framework.postprocessor.DeleteEvent;
23  import org.kuali.rice.kew.framework.postprocessor.DocumentLockingEvent;
24  import org.kuali.rice.kew.framework.postprocessor.DocumentRouteLevelChange;
25  import org.kuali.rice.kew.framework.postprocessor.DocumentRouteStatusChange;
26  import org.kuali.rice.kew.framework.postprocessor.PostProcessor;
27  import org.kuali.rice.kew.framework.postprocessor.ProcessDocReport;
28  import org.kuali.rice.krad.service.KRADServiceLocatorInternal;
29  
30  import java.util.List;
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 PostProcessor {
49  
50      private static Logger LOG = Logger.getLogger(KualiPostProcessor.class);
51  
52      /**
53       * 
54       * @see org.kuali.rice.kew.framework.postprocessor.PostProcessor#doRouteStatusChange(org.kuali.rice.kew.framework.postprocessor.DocumentRouteStatusChange)
55       */
56      @Override
57      public ProcessDocReport doRouteStatusChange(DocumentRouteStatusChange statusChangeEvent) throws Exception {
58          return KRADServiceLocatorInternal.getPostProcessorService().doRouteStatusChange(statusChangeEvent);
59      }
60  
61      /**
62       * 
63       * @see org.kuali.rice.kew.framework.postprocessor.PostProcessor#doActionTaken(org.kuali.rice.kew.framework.postprocessor.ActionTakenEvent)
64       */
65      @Override
66      public ProcessDocReport doActionTaken(ActionTakenEvent event) throws Exception {
67          return KRADServiceLocatorInternal.getPostProcessorService().doActionTaken(event);
68      }
69  
70      /**
71       * 
72       * @see org.kuali.rice.kew.framework.postprocessor.PostProcessor#doDeleteRouteHeader(org.kuali.rice.kew.framework.postprocessor.DeleteEvent)
73       */
74      @Override
75      public ProcessDocReport doDeleteRouteHeader(DeleteEvent event) throws Exception {
76          return KRADServiceLocatorInternal.getPostProcessorService().doDeleteRouteHeader(event);
77      }
78  
79      /**
80       * 
81       * @see org.kuali.rice.kew.framework.postprocessor.PostProcessor#doRouteLevelChange(org.kuali.rice.kew.framework.postprocessor.DocumentRouteLevelChange)
82       */
83      @Override
84      public ProcessDocReport doRouteLevelChange(DocumentRouteLevelChange levelChangeEvent) throws Exception {
85          return KRADServiceLocatorInternal.getPostProcessorService().doRouteLevelChange(levelChangeEvent);
86      }
87  
88      /**
89       * @see org.kuali.rice.kew.framework.postprocessor.PostProcessor#beforeProcess(org.kuali.rice.kew.framework.postprocessor.BeforeProcessEvent)
90       */
91      @Override
92      public ProcessDocReport beforeProcess(BeforeProcessEvent beforeProcessEvent) throws Exception {
93          return KRADServiceLocatorInternal.getPostProcessorService().beforeProcess(beforeProcessEvent);
94      }
95  
96      /**
97       * @see org.kuali.rice.kew.framework.postprocessor.PostProcessor#afterProcess(org.kuali.rice.kew.framework.postprocessor.AfterProcessEvent)
98       */
99      @Override
100     public ProcessDocReport afterProcess(AfterProcessEvent afterProcessEvent) throws Exception {
101         return KRADServiceLocatorInternal.getPostProcessorService().afterProcess(afterProcessEvent);
102     }
103 
104     /**
105      * @see org.kuali.rice.kew.framework.postprocessor.PostProcessor#getDocumentIdsToLock(org.kuali.rice.kew.framework.postprocessor.DocumentLockingEvent)
106      */
107     @Override
108 	public List<String> getDocumentIdsToLock(DocumentLockingEvent documentLockingEvent) throws Exception {
109 		return KRADServiceLocatorInternal.getPostProcessorService().getDocumentIdsToLock(documentLockingEvent);
110 	}
111 
112 }