1
2
3
4
5 package org.flowfuse.base.services.workitem.implementation;
6
7 import org.apache.commons.logging.Log;
8 import org.apache.commons.logging.LogFactory;
9 import org.flowfuse.base.dao.WorkflowInstanceDao;
10 import org.flowfuse.base.model.WorkItem;
11 import org.flowfuse.base.services.workflow.WorkflowService;
12 import org.flowfuse.base.services.workitem.WorkItemManagementService;
13
14 import java.util.List;
15 import java.util.Map;
16
17 /***
18 * Default Implementation of the WorkItemManagementService iterface.
19 *
20 * @author <a href="stefan@flowfuse.org">Stefan Kleineikenscheidt</a>,
21 * Flowfuse.org
22 * @see org.flowfuse.base.services.workitem.WorkItemManagementService
23 * @since 1.0
24 * @version $Id: WorkItemManagementServiceImpl.java,v 1.2 2006/01/15 19:56:18 skleinei Exp $
25 */
26 public class WorkItemManagementServiceImpl
27 implements WorkItemManagementService {
28
29
30 public final static String rcsid = "$Id: WorkItemManagementServiceImpl.java,v 1.2 2006/01/15 19:56:18 skleinei Exp $";
31
32
33 protected final Log logger = LogFactory.getLog(this.getClass());
34
35 /***
36 * WorkflowInstance Dao
37 */
38 private WorkflowInstanceDao workItemDao = null;
39
40 private WorkflowService workflowService = null;
41
42 public static final String KEY_COMMENTS = "sadf";
43
44 public WorkItem createWorkItem() {
45 return injectServices(new WorkItem());
46 }
47
48 public WorkItem getWorkItem(Long workflowId) {
49 return injectServices(
50 workItemDao.getWorkflowInstance(workflowId));
51 }
52
53 public WorkItem getWorkItemByOswfId(Long oswfId) {
54 return injectServices(
55 workItemDao.getWorkflowInstanceByOswfId(oswfId));
56 }
57
58 public List queryWorkItems(Map filter) {
59 logger.debug("Querying work items.");
60 List workItems = workItemDao.query(filter);
61 logger.debug(workItems.size() + " work items found.");
62 return injectServices(workItems);
63 }
64
65 public int countWorkItems(Map filter) {
66 return workItemDao.count(filter);
67 }
68
69 public void saveWorkflowInstance(WorkItem workItem) {
70 workItemDao.saveWorkflowInstance(workItem);
71 }
72
73 public void removeWorkflowInstance(Long workflowId) {
74 workItemDao.removeWorkflowInstance(workflowId);
75 }
76
77 /***
78 * Injects the required dependencies in the given work item and returns
79 * the work item.
80 *
81 * @param workItem The work item to inject the
82 * @return The injected work item.
83 */
84 private WorkItem injectServices(WorkItem workItem) {
85 workItem.getWorkflow().setWorkflowManagementService(this);
86 workItem.getWorkflow().setWorkflowService(this.workflowService);
87 return workItem;
88 }
89
90 /***
91 * Injects all required dependencies in all work item in the list
92 * and returns the list of work items.
93 *
94 * @param workItems List of work items.
95 * @return The list with injected work items.
96 */
97 private List injectServices(List workItems) {
98 for (int i = 0; i < workItems.size(); i++) {
99 WorkItem item = (WorkItem) workItems.get(i);
100 injectServices(item);
101 }
102 return workItems;
103 }
104
105
106
107 public WorkflowInstanceDao getWorkItemDao() {
108 return workItemDao;
109 }
110
111 public void setWorkItemDao(WorkflowInstanceDao workItemDao) {
112 this.workItemDao = workItemDao;
113 }
114
115 public WorkflowService getWorkflowService() {
116 return workflowService;
117 }
118
119 public void setWorkflowService(WorkflowService workflowService) {
120 this.workflowService = workflowService;
121 }
122 }
123
124