KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > nl > hippo > cms > workflows > multiplesitessite > NotifyDocumentWorkflowOfDeletionDisapprovalFunction


1 package nl.hippo.cms.workflows.multiplesitessite;
2
3 import com.opensymphony.module.propertyset.PropertySet;
4 import com.opensymphony.workflow.WorkflowException;
5 import java.util.HashMap JavaDoc;
6 import java.util.Map JavaDoc;
7 import nl.hippo.cms.workflows.shared.FunctionProviderComponent;
8 import nl.hippo.componentcontainers.AvalonSpringBridge;
9 import nl.hippo.servermanager.Project;
10 import nl.hippo.servermanager.ProjectWorkflowRepository;
11 import nl.hippo.servermanager.Server;
12 import nl.hippo.servermanager.ServerManager;
13
14 public class NotifyDocumentWorkflowOfDeletionDisapprovalFunction extends FunctionProviderComponent
15 {
16
17     public NotifyDocumentWorkflowOfDeletionDisapprovalFunction()
18     {
19         super();
20     }
21
22     public void executeImpl(Map JavaDoc transientVars, Map JavaDoc args, PropertySet ps) throws WorkflowException
23     {
24         String JavaDoc projectName = ps.getString(MultipleSitesSiteConstants.PROJECT_NAME_KEY);
25         AvalonSpringBridge asb;
26         try
27         {
28             asb = (AvalonSpringBridge) m_manager.lookup(AvalonSpringBridge.ROLE);
29             try
30             {
31                 Server server = ((ServerManager) asb.getBean("serverManager")).getServer();
32                 Project project = server.getProject(projectName);
33                 ProjectWorkflowRepository workflowRepo = project.getWorkflowRepository();
34                 long documentWorkflowId = ps
35                         .getLong(MultipleSitesSiteConstants.DOCUMENT_WORKFLOW_ID_KEY);
36                 HashMap JavaDoc params = new HashMap JavaDoc();
37                 params.put("projectname", projectName);
38                 params.put("projectName", projectName);
39                 int[] availableActions = workflowRepo.getAvailableActions(documentWorkflowId,
40                         params);
41                 boolean canNotify = false;
42                 for (int i = 0; i < availableActions.length && !canNotify; i++)
43                 {
44                     if (availableActions[i] == 4002)
45                     {
46                         canNotify = true;
47                     }
48                 }
49                 if (canNotify)
50                 {
51                     workflowRepo.doAction(documentWorkflowId, 4002, params);
52                 }
53             }
54             finally
55             {
56                 m_manager.release(asb);
57             }
58         }
59         catch (Exception JavaDoc e)
60         {
61             throw new WorkflowException(e);
62         }
63     }
64
65 }
66
Popular Tags