001
014
015 package com.liferay.portal.workflow;
016
017 import com.liferay.portal.kernel.security.pacl.DoPrivileged;
018 import com.liferay.portal.kernel.util.ListUtil;
019 import com.liferay.portal.kernel.workflow.WorkflowHandler;
020 import com.liferay.portal.kernel.workflow.WorkflowHandlerRegistry;
021
022 import java.util.List;
023 import java.util.Map;
024 import java.util.TreeMap;
025
026
030 @DoPrivileged
031 public class WorkflowHandlerRegistryImpl implements WorkflowHandlerRegistry {
032
033 public List<WorkflowHandler> getScopeableWorkflowHandlers() {
034 return ListUtil.fromMapValues(_scopeableWorkflowHandlerMap);
035 }
036
037 public WorkflowHandler getWorkflowHandler(String className) {
038 return _workflowHandlerMap.get(className);
039 }
040
041 public List<WorkflowHandler> getWorkflowHandlers() {
042 return ListUtil.fromMapValues(_workflowHandlerMap);
043 }
044
045 public void register(WorkflowHandler workflowHandler) {
046 _workflowHandlerMap.put(
047 workflowHandler.getClassName(), workflowHandler);
048
049 if (workflowHandler.isScopeable()) {
050 _scopeableWorkflowHandlerMap.put(
051 workflowHandler.getClassName(), workflowHandler);
052 }
053 }
054
055 public void unregister(WorkflowHandler workflowHandler) {
056 _workflowHandlerMap.remove(workflowHandler.getClassName());
057
058 if (workflowHandler.isScopeable()) {
059 _scopeableWorkflowHandlerMap.remove(workflowHandler.getClassName());
060 }
061 }
062
063 private Map<String, WorkflowHandler> _scopeableWorkflowHandlerMap =
064
065 new TreeMap<String, WorkflowHandler>();
066 private Map<String, WorkflowHandler> _workflowHandlerMap =
067 new TreeMap<String, WorkflowHandler>();
068
069 }