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 ; 6 import java.text.DateFormat ; 7 import java.text.SimpleDateFormat ; 8 import java.util.Date ; 9 import java.util.HashSet ; 10 import java.util.Map ; 11 import java.util.Set ; 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 transientVars, Map args, PropertySet ps) throws WorkflowException 28 { 29 try 30 { 31 String location = (String ) transientVars.get("location"); 32 HttpState httpState = (HttpState) transientVars.get("httpstate"); 33 Set propertiesToSet = new HashSet (); 34 Set propertiesToRemove = new HashSet (); 35 Date publicationDate = DateUtil.getPublicationDate(transientVars); 36 DateFormat df = new SimpleDateFormat ("yyyyMMddHHmm"); 37 propertiesToSet.add(new Property("H", Constants.CMS_1_0_NAMESPACE, Constants.REQUESTED_PUBLICATION_DATE_PROPERTY_NAME, df.format(publicationDate))); 38 39 Date 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 e) 51 { 52 throw new WorkflowException(e); 53 } 54 } 55 56 } | Popular Tags |