KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > nl > hippo > cms > workflows > multiplesitesdocument > NotifySitesOfDeletionApprovalFunction


1 package nl.hippo.cms.workflows.multiplesitesdocument;
2
3 import com.opensymphony.module.propertyset.PropertySet;
4 import com.opensymphony.workflow.WorkflowException;
5 import java.util.HashMap JavaDoc;
6 import java.util.Iterator JavaDoc;
7 import java.util.Map JavaDoc;
8 import nl.hippo.cms.sitesdirectory.SitesDirectory;
9 import nl.hippo.cms.workflows.shared.FunctionProviderComponent;
10 import nl.hippo.componentcontainers.AvalonSpringBridge;
11 import nl.hippo.servermanager.Project;
12 import nl.hippo.servermanager.ProjectWorkflowRepository;
13 import nl.hippo.servermanager.Server;
14 import nl.hippo.servermanager.ServerManager;
15
16 public class NotifySitesOfDeletionApprovalFunction extends FunctionProviderComponent
17 {
18
19     public NotifySitesOfDeletionApprovalFunction()
20     {
21         super();
22     }
23
24     public void executeImpl(Map JavaDoc transientVars, Map JavaDoc args, PropertySet ps) throws WorkflowException
25     {
26         String JavaDoc projectName = (String JavaDoc) transientVars
27                 .get(MultipleSitesDocumentConstants.PROJECT_NAME_KEY);
28         try
29         {
30             AvalonSpringBridge asb = (AvalonSpringBridge) m_manager.lookup(AvalonSpringBridge.ROLE);
31             try
32             {
33                 Server server = ((ServerManager) asb.getBean("serverManager")).getServer();
34                 Project project = server.getProject(projectName);
35                 ProjectWorkflowRepository workflowRepo = project.getWorkflowRepository();
36
37                 SitesDirectory sitesDir = (SitesDirectory) m_manager.lookup(SitesDirectory.ROLE);
38                 try
39                 {
40                     Map JavaDoc siteWorkflowIds = (Map JavaDoc) ps
41                             .getAsActualType(MultipleSitesDocumentConstants.SITE_WORKFLOW_IDS_KEY);
42                     if (siteWorkflowIds == null)
43                     {
44                         siteWorkflowIds = new HashMap JavaDoc();
45                     }
46
47                     Iterator JavaDoc siteIdsIterator = sitesDir.siteIdsIterator();
48                     while (siteIdsIterator.hasNext())
49                     {
50                         String JavaDoc siteId = (String JavaDoc) siteIdsIterator.next();
51
52                         Long JavaDoc siteWorkflowIdAsLong = (Long JavaDoc) siteWorkflowIds.get(siteId);
53                         if (siteWorkflowIdAsLong != null)
54                         {
55                             long siteWorkflowId = siteWorkflowIdAsLong.longValue();
56                             Map JavaDoc arguments = new HashMap JavaDoc();
57                             arguments.put("httpstate", transientVars.get("httpstate"));
58                             workflowRepo.doAction(siteWorkflowId, 1402, arguments);
59                         }
60                     }
61                 }
62                 finally
63                 {
64                     m_manager.release(sitesDir);
65                 }
66             }
67             finally
68             {
69                 m_manager.release(asb);
70             }
71         }
72         catch (Exception JavaDoc e)
73         {
74             throw new WorkflowException(e);
75         }
76     }
77
78 }
79
Popular Tags