KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * Copyright 2004 Hippo Webworks.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5  * use this file except in compliance with the License. You may obtain a copy of
6  * the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13  * License for the specific language governing permissions and limitations under
14  * the License.
15  */

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