KickJava   Java API By Example, From Geeks To Geeks.

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


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.util.ArrayList JavaDoc;
7 import java.util.Collections JavaDoc;
8 import java.util.Date JavaDoc;
9 import java.util.List JavaDoc;
10 import java.util.Map JavaDoc;
11 import nl.hippo.cms.Constants;
12 import nl.hippo.cms.workflow.WorkflowHelper;
13 import nl.hippo.cms.workflows.shared.ConditionComponent;
14 import nl.hippo.cms.workflows.shared.DateUtil;
15 import nl.hippo.cms.workflows.shared.WorkflowExtensionUtil;
16 import org.apache.commons.httpclient.HttpState;
17 import org.apache.webdav.lib.Property;
18 import org.apache.webdav.lib.PropertyName;
19
20 public class IsPublishedCondition extends ConditionComponent {
21
22     private static final PropertyName UNPUBLICATION_DATE_PROPERTY_NAME = new PropertyName(Constants.CMS_1_0_NAMESPACE, Constants.UNPUBLICATION_DATE_PROPERTY_NAME);
23     private static final PropertyName PUBLICATION_DATE_PROPERTY_NAME = new PropertyName(Constants.CMS_1_0_NAMESPACE, Constants.PUBLICATION_DATE_PROPERTY_NAME);
24     private static final List JavaDoc PROPERTIES = new ArrayList JavaDoc();
25     
26     static
27     {
28         PROPERTIES.add(PUBLICATION_DATE_PROPERTY_NAME);
29         PROPERTIES.add(UNPUBLICATION_DATE_PROPERTY_NAME);
30     }
31
32     public IsPublishedCondition() {
33         super();
34     }
35
36     public boolean passesConditionImpl(final Map JavaDoc transientVars, Map JavaDoc args, PropertySet ps) throws WorkflowException {
37         boolean result;
38         try {
39             String JavaDoc location = (String JavaDoc) transientVars.get("location");
40             HttpState httpState = (HttpState) transientVars.get("httpstate");
41             Map JavaDoc propertiesCache = WorkflowHelper.getPropertiesCache(transientVars);
42             WorkflowHelper.movePropertiesToCache(location, Collections.enumeration(PROPERTIES), propertiesCache, httpState);
43             String JavaDoc publicationDateAsString = ((Property) propertiesCache.get(PUBLICATION_DATE_PROPERTY_NAME)).getPropertyAsString();
44             String JavaDoc unpublicationDateAsString = ((Property) propertiesCache.get(UNPUBLICATION_DATE_PROPERTY_NAME)).getPropertyAsString();
45             
46             Date JavaDoc publicationDate = null;
47             if (publicationDateAsString != null
48                     && !publicationDateAsString.equals(""))
49             {
50                 publicationDate = WorkflowExtensionUtil.getDateAndTime(publicationDateAsString);
51             }
52             Date JavaDoc unpublicationDate = null;
53             if (unpublicationDateAsString != null
54                     && !unpublicationDateAsString.equals(""))
55             {
56                 unpublicationDate = WorkflowExtensionUtil.getDateAndTime(unpublicationDateAsString);
57             }
58             Date JavaDoc now = new Date JavaDoc();
59             result = DateUtil.isAfterOrEquals(now, publicationDate)
60                     && DateUtil.isBefore(now, unpublicationDate);
61         }
62         catch (IOException JavaDoc e)
63         {
64             throw new WorkflowException(e);
65         }
66         return result;
67     }
68 }
69
Popular Tags