KickJava   Java API By Example, From Geeks To Geeks.

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


1 package nl.hippo.cms.workflows.reviewedactions;
2
3 import java.io.IOException JavaDoc;
4 import java.util.ArrayList JavaDoc;
5 import java.util.Collections JavaDoc;
6 import java.util.Date JavaDoc;
7 import java.util.HashMap JavaDoc;
8 import java.util.List JavaDoc;
9 import java.util.Map JavaDoc;
10 import nl.hippo.cms.Constants;
11 import nl.hippo.cms.workflows.shared.DateUtil;
12 import nl.hippo.cms.workflows.shared.InitialDataRetrieverComponent;
13 import nl.hippo.cms.workflows.shared.WorkflowExtensionUtil;
14 import nl.hippo.cocoon.webdav.WebDAVHelper;
15 import org.apache.commons.httpclient.HttpState;
16 import org.apache.webdav.lib.PropertyName;
17
18 public class PublishInitialDataRetriever extends InitialDataRetrieverComponent
19 {
20     
21     private static final PropertyName REQUESTED_UNPUBLICATION_DATE_PROPERTY_NAME = new PropertyName(Constants.CMS_1_0_NAMESPACE, Constants.REQUESTED_UNPUBLICATION_DATE_PROPERTY_NAME);
22     private static final PropertyName REQUESTED_PUBLICATION_DATE_PROPERTY_NAME = new PropertyName(Constants.CMS_1_0_NAMESPACE, Constants.REQUESTED_PUBLICATION_DATE_PROPERTY_NAME);
23     private static final List JavaDoc PROPERTIES = new ArrayList JavaDoc();
24     
25     static
26     {
27         PROPERTIES.add(REQUESTED_PUBLICATION_DATE_PROPERTY_NAME);
28         PROPERTIES.add(REQUESTED_UNPUBLICATION_DATE_PROPERTY_NAME);
29     }
30
31     public PublishInitialDataRetriever()
32     {
33         super();
34     }
35
36     public Map JavaDoc getDataImpl(String JavaDoc uri, HttpState httpState)
37     {
38         HashMap JavaDoc result = new HashMap JavaDoc();
39         try
40         {
41             Map JavaDoc propertyValues = WebDAVHelper.propfindAsStrings(uri, Collections.enumeration(PROPERTIES), httpState);
42             String JavaDoc requestedPublicationDateAsString = (String JavaDoc) propertyValues.get(REQUESTED_PUBLICATION_DATE_PROPERTY_NAME);
43             Date JavaDoc requestedPublicationDate = WorkflowExtensionUtil.getDateAndTime(requestedPublicationDateAsString);
44             if (requestedPublicationDate == null || DateUtil.isBefore(requestedPublicationDate, new Date JavaDoc()))
45             {
46                 result.put("publicationDateMode", "now");
47                 result.put("publicationDate", null);
48             }
49             else
50             {
51                 result.put("publicationDateMode", "other");
52                 result.put("publicationDate", requestedPublicationDateAsString);
53             }
54
55             String JavaDoc requestedUnpublicationDateAsString = (String JavaDoc) propertyValues.get(REQUESTED_UNPUBLICATION_DATE_PROPERTY_NAME);
56             Date JavaDoc requestedUnpublicationDate = WorkflowExtensionUtil.getDateAndTime(requestedUnpublicationDateAsString);
57             if (requestedUnpublicationDate == null)
58             {
59                 result.put("unpublicationDateMode", "never");
60                 result.put("unpublicationDate", null);
61             }
62             else
63             {
64                 result.put("unpublicationDateMode", "other");
65                 result.put("unpublicationDate", requestedUnpublicationDateAsString);
66             }
67         }
68         catch (IOException JavaDoc e)
69         {
70             // TODO: handle exception
71
}
72         return result;
73     }
74
75 }
76
Popular Tags