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