| 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 NotifyDocumentWorkflowOfDeletionDisapprovalFunction extends FunctionProviderComponent 15 { 16 17 public NotifyDocumentWorkflowOfDeletionDisapprovalFunction() 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 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 e) 60 { 61 throw new WorkflowException(e); 62 } 63 } 64 65 } 66 | Popular Tags |