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 NotifyDocumentWorkflowOfPublicationReviewFunction extends FunctionProviderComponent 15 { 16 17 public NotifyDocumentWorkflowOfPublicationReviewFunction() 18 { 19 super(); 20 } 21 22 public void executeImpl(Map transientVars, Map args, PropertySet ps) throws WorkflowException 23 { 24 String 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 params = new HashMap (); 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 e) 58 { 59 throw new WorkflowException(e); 60 } 61 } 62 63 } 64 | Popular Tags |