KickJava   Java API By Example, From Geeks To Geeks.

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


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