KickJava   Java API By Example, From Geeks To Geeks.

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


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.cocoon.webdav.Property;
16 import nl.hippo.cocoon.webdav.WebDAVHelper;
17 import org.apache.commons.httpclient.HttpState;
18
19 public class StoreRequestedPublicationDatesFunction extends FunctionProviderComponent
20 {
21
22     public StoreRequestedPublicationDatesFunction()
23     {
24         super();
25     }
26
27     public void executeImpl(Map JavaDoc transientVars, Map JavaDoc args, PropertySet ps) throws WorkflowException
28     {
29         try
30         {
31             String JavaDoc location = (String JavaDoc) transientVars.get("location");
32             HttpState httpState = (HttpState) transientVars.get("httpstate");
33             Set propertiesToSet = new HashSet JavaDoc();
34             Set propertiesToRemove = new HashSet JavaDoc();
35             Date JavaDoc publicationDate = DateUtil.getPublicationDate(transientVars);
36             DateFormat JavaDoc df = new SimpleDateFormat JavaDoc("yyyyMMddHHmm");
37             propertiesToSet.add(new Property("H", Constants.CMS_1_0_NAMESPACE, Constants.REQUESTED_PUBLICATION_DATE_PROPERTY_NAME, df.format(publicationDate)));
38             
39             Date JavaDoc unpublicationDate = DateUtil.getUnpublicationDate(transientVars);
40             if (unpublicationDate == null)
41             {
42                 propertiesToRemove.add(new Property("H", Constants.CMS_1_0_NAMESPACE, Constants.REQUESTED_UNPUBLICATION_DATE_PROPERTY_NAME));
43             }
44             else
45             {
46                 propertiesToSet.add(new Property("H", Constants.CMS_1_0_NAMESPACE, Constants.REQUESTED_UNPUBLICATION_DATE_PROPERTY_NAME, df.format(unpublicationDate)));
47             }
48             WebDAVHelper.proppatch(location, propertiesToSet, propertiesToRemove, httpState);
49         }
50         catch (IOException JavaDoc e)
51         {
52             throw new WorkflowException(e);
53         }
54     }
55
56 }
Popular Tags