KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > nl > hippo > cms > workflows > reviewedactions > DeterminePublicationDatesFunction


1 package nl.hippo.cms.workflows.reviewedactions;
2
3 import com.opensymphony.module.propertyset.PropertySet;
4 import com.opensymphony.workflow.WorkflowException;
5 import java.util.Date JavaDoc;
6 import java.util.Map JavaDoc;
7 import nl.hippo.cms.Constants;
8 import nl.hippo.cms.workflows.shared.DateUtil;
9 import nl.hippo.cms.workflows.shared.FunctionProviderComponent;
10 import nl.hippo.cms.workflows.shared.WorkflowExtensionUtil;
11 import nl.hippo.cocoon.webdav.WebDAVHelper;
12 import org.apache.commons.httpclient.HttpState;
13
14 public class DeterminePublicationDatesFunction extends FunctionProviderComponent {
15
16     public DeterminePublicationDatesFunction() {
17         super();
18     }
19
20     public void executeImpl(Map JavaDoc transientVars, Map JavaDoc args, PropertySet ps)
21             throws WorkflowException {
22         try
23         {
24             String JavaDoc location = (String JavaDoc) transientVars.get("location");
25             HttpState httpState = (HttpState) transientVars.get("httpstate");
26             String JavaDoc publicationDateMode = (String JavaDoc) transientVars.get("publicationDateMode");
27             if (publicationDateMode == null)
28             {
29                 String JavaDoc requestedPublicationDateAsString = WebDAVHelper.propfindAsString(location, Constants.CMS_1_0_NAMESPACE, Constants.REQUESTED_PUBLICATION_DATE_PROPERTY_NAME, httpState);
30                 String JavaDoc requestedUnpublicationDateAsString = WebDAVHelper.propfindAsString(location, Constants.CMS_1_0_NAMESPACE, Constants.REQUESTED_UNPUBLICATION_DATE_PROPERTY_NAME, httpState);
31                 Date JavaDoc requestedPublicationDate = WorkflowExtensionUtil.getDateAndTime(requestedPublicationDateAsString);
32                 if (DateUtil.isBefore(new Date JavaDoc(), requestedPublicationDate))
33                 {
34                     transientVars.put("publicationDateMode", "other");
35                     transientVars.put("publicationDate", requestedPublicationDateAsString);
36                 }
37                 else
38                 {
39                     transientVars.put("publicationDateMode", "now");
40                     transientVars.remove("publicationDate");
41                 }
42                 if (requestedUnpublicationDateAsString != null && !requestedUnpublicationDateAsString.equals(""))
43                 {
44                     transientVars.put("unpublicationDateMode", "other");
45                     transientVars.put("unpublicationDate", requestedUnpublicationDateAsString);
46                 }
47                 else
48                 {
49                     transientVars.put("unpublicationDateMode", "never");
50                     transientVars.remove("unpublicationDate");
51                 }
52             }
53         }
54         catch (Exception JavaDoc e)
55         {
56             throw new WorkflowException(e);
57         }
58    }
59
60 }
61
Popular Tags