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 @Override
034 public List<WorkflowHandler> getScopeableWorkflowHandlers() {
035 return ListUtil.fromMapValues(_scopeableWorkflowHandlerMap);
036 }
037
038 @Override
039 public WorkflowHandler getWorkflowHandler(String className) {
040 return _workflowHandlerMap.get(className);
041 }
042
043 @Override
044 public List<WorkflowHandler> getWorkflowHandlers() {
045 return ListUtil.fromMapValues(_workflowHandlerMap);
046 }
047
048 @Override
049 public void register(WorkflowHandler workflowHandler) {
050 _workflowHandlerMap.put(
051 workflowHandler.getClassName(), workflowHandler);
052
053 if (workflowHandler.isScopeable()) {
054 _scopeableWorkflowHandlerMap.put(
055 workflowHandler.getClassName(), workflowHandler);
056 }
057 }
058
059 @Override
060 public void unregister(WorkflowHandler workflowHandler) {
061 _workflowHandlerMap.remove(workflowHandler.getClassName());
062
063 if (workflowHandler.isScopeable()) {
064 _scopeableWorkflowHandlerMap.remove(workflowHandler.getClassName());
065 }
066 }
067
068 private Map<String, WorkflowHandler> _scopeableWorkflowHandlerMap =
069
070 new TreeMap<String, WorkflowHandler>();
071 private Map<String, WorkflowHandler> _workflowHandlerMap =
072 new TreeMap<String, WorkflowHandler>();
073
074 }