| 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 ; 6 import java.util.Map ; 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 transientVars, Map args, PropertySet ps) throws WorkflowException 23 { 24 String 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 params = new HashMap (); 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 e) 61 { 62 throw new WorkflowException(e); 63 } 64 } 65 66 } 67 | Popular Tags |