KickJava   Java API By Example, From Geeks To Geeks.

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


1 package nl.hippo.cms.workflows.reviewedactions;
2
3 import com.opensymphony.module.propertyset.PropertySet;
4 import com.opensymphony.workflow.WorkflowException;
5 import java.io.IOException JavaDoc;
6 import java.text.DateFormat JavaDoc;
7 import java.text.SimpleDateFormat JavaDoc;
8 import java.util.Date JavaDoc;
9 import java.util.HashSet JavaDoc;
10 import java.util.Map JavaDoc;
11 import java.util.Set JavaDoc;
12 import nl.hippo.cms.Constants;
13 import nl.hippo.cms.workflows.shared.DateUtil;
14 import nl.hippo.cms.workflows.shared.FunctionProviderComponent;
15 import nl.hippo.cms.workflows.shared.WorkflowExtensionUtil;
16 import nl.hippo.cocoon.webdav.Property;
17 import nl.hippo.cocoon.webdav.WebDAVHelper;
18 import org.apache.commons.httpclient.HttpState;
19
20 public class StorePublicationDatesFunction extends FunctionProviderComponent
21 {
22
23     public StorePublicationDatesFunction()
24     {
25         super();
26     }
27
28     public void executeImpl(final Map JavaDoc transientVars, Map JavaDoc args, PropertySet ps) throws WorkflowException
29     {
30         try
31         {
32             String JavaDoc location = (String JavaDoc) transientVars.get("location");
33             HttpState httpState = (HttpState) transientVars.get("httpstate");
34             Set propertiesToSet = new HashSet JavaDoc();
35             Set propertiesToRemove = new HashSet JavaDoc();
36             DateFormat JavaDoc df = new SimpleDateFormat JavaDoc("yyyyMMddHHmm");
37             String JavaDoc publicationDateMode = (String JavaDoc) transientVars.get("publicationDateMode");
38             Date JavaDoc publicationDate;
39             if (publicationDateMode.equals("now"))
40             {
41                 publicationDate = DateUtil.createToday();
42             }
43             else
44             {
45                 publicationDate = WorkflowExtensionUtil.getDateAndTime(transientVars.get("publicationDate"));
46             }
47             propertiesToSet.add(new Property("H", Constants.CMS_1_0_NAMESPACE, Constants.PUBLICATION_DATE_PROPERTY_NAME, df.format(publicationDate)));
48             
49             String JavaDoc unpublicationDateMode = (String JavaDoc) transientVars.get("unpublicationDateMode");
50             if (unpublicationDateMode.equals("never"))
51             {
52                 propertiesToRemove.add(new Property("H", Constants.CMS_1_0_NAMESPACE, Constants.UNPUBLICATION_DATE_PROPERTY_NAME));
53             }
54             else
55             {
56                 Date JavaDoc unpublicationDate = WorkflowExtensionUtil.getDateAndTime(transientVars.get("unpublicationDate"));
57                 propertiesToSet.add(new Property("H", Constants.CMS_1_0_NAMESPACE, Constants.UNPUBLICATION_DATE_PROPERTY_NAME, df.format(unpublicationDate)));
58             }
59             WebDAVHelper.proppatch(location, propertiesToSet, propertiesToRemove, httpState);
60         }
61         catch (IOException JavaDoc e)
62         {
63             throw new WorkflowException(e);
64         }
65     }
66
67 }
Popular Tags