KickJava   Java API By Example, From Geeks To Geeks.

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


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 NotifyDocumentWorkflowOfDeletionApprovalFunction extends FunctionProviderComponent
15 {
16
17     public NotifyDocumentWorkflowOfDeletionApprovalFunction()
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                 params.put("httpstate", transientVars.get("httpstate"));
40                 int[] availableActions = workflowRepo.getAvailableActions(documentWorkflowId,
41                         params);
42                 boolean canNotify = false;
43                 for (int i = 0; i < availableActions.length && !canNotify; i++)
44                 {
45                     if (availableActions[i] == 4001)
46                     {
47                         canNotify = true;
48                     }
49                 }
50                 if (canNotify)
51                 {
52                     workflowRepo.doAction(documentWorkflowId, 4001, params);
53                 }
54             }
55             finally
56             {
57                 m_manager.release(asb);
58             }
59         }
60         catch (Exception JavaDoc e)
61         {
62             throw new WorkflowException(e);
63         }
64     }
65
66 }
67
Popular Tags