1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * This library is free software; you can redistribute it and/or modify it under
5    * the terms of the GNU Lesser General Public License as published by the Free
6    * Software Foundation; either version 2.1 of the License, or (at your option)
7    * any later version.
8    *
9    * This library is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12   * details.
13   */
14  
15  package com.liferay.portal.kernel.workflow;
16  
17  import com.liferay.portal.kernel.exception.PortalException;
18  import com.liferay.portal.kernel.exception.SystemException;
19  
20  import java.util.List;
21  
22  /**
23   * <a href="WorkflowHandlerRegistryUtil.java.html"><b><i>View Source</i></b></a>
24   *
25   * @author Bruno Farache
26   * @author Marcellus Tavares
27   */
28  public class WorkflowHandlerRegistryUtil {
29  
30      public static WorkflowHandler getWorkflowHandler(String className) {
31          return getWorkflowHandlerRegistry().getWorkflowHandler(className);
32      }
33  
34      public static WorkflowHandlerRegistry getWorkflowHandlerRegistry() {
35          return _workflowHandlerRegistry;
36      }
37  
38      public static List<WorkflowHandler> getWorkflowHandlers() {
39          return getWorkflowHandlerRegistry().getWorkflowHandlers();
40      }
41  
42      public static void register(List<WorkflowHandler> workflowHandlers) {
43          for (WorkflowHandler workflowHandler : workflowHandlers) {
44              register(workflowHandler);
45          }
46      }
47  
48      public static void register(WorkflowHandler workflowHandler) {
49          getWorkflowHandlerRegistry().register(workflowHandler);
50      }
51  
52      public static void startWorkflowInstance(
53              long companyId, long groupId, long userId, String className,
54              long classPK, Object model)
55          throws PortalException, SystemException {
56  
57          WorkflowHandler workflowHandler = getWorkflowHandler(className);
58  
59          if (workflowHandler != null) {
60              workflowHandler.startWorkflowInstance(
61                  companyId, groupId, userId, classPK, model);
62          }
63      }
64  
65      public static void unregister(List<WorkflowHandler> workflowHandlers) {
66          for (WorkflowHandler workflowHandler : workflowHandlers) {
67              unregister(workflowHandler);
68          }
69      }
70  
71      public static void unregister(WorkflowHandler workflowHandler) {
72          getWorkflowHandlerRegistry().unregister(workflowHandler);
73      }
74  
75      public static Object updateStatus(
76              long companyId, long groupId, long userId, String className,
77              long classPK, int status)
78          throws PortalException, SystemException {
79  
80          WorkflowHandler workflowHandler = getWorkflowHandler(className);
81  
82          if (workflowHandler != null) {
83              return workflowHandler.updateStatus(
84                  companyId, groupId, userId, classPK, status);
85          }
86  
87          return null;
88      }
89  
90      public void setWorkflowHandlerRegistry(
91          WorkflowHandlerRegistry workflowHandlerRegistry) {
92  
93          _workflowHandlerRegistry = workflowHandlerRegistry;
94      }
95  
96      private static WorkflowHandlerRegistry _workflowHandlerRegistry;
97  
98  }