1 package nl.hippo.cms.workflows.multiplesitessite; 2 3 import com.opensymphony.module.propertyset.PropertySet; 4 import com.opensymphony.workflow.WorkflowException; 5 import java.text.DateFormat ; 6 import java.text.SimpleDateFormat ; 7 import java.util.Date ; 8 import java.util.Map ; 9 import nl.hippo.cms.workflows.shared.DateUtil; 10 import nl.hippo.cms.workflows.shared.FunctionProviderComponent; 11 import nl.hippo.cms.workflows.shared.WorkflowExtensionUtil; 12 13 public class StoreScheduledPublicationDatesFunction extends FunctionProviderComponent 14 { 15 16 public StoreScheduledPublicationDatesFunction() 17 { 18 super(); 19 } 20 21 public void executeImpl(Map transientVars, Map args, PropertySet ps) 22 throws WorkflowException 23 { 24 DateFormat df = new SimpleDateFormat ("yyyyMMddHHmm"); 25 String publicationDateMode = (String ) transientVars.get("publicationDateMode"); 26 Date publicationDate; 27 if (publicationDateMode.equals("now")) 28 { 29 publicationDate = new Date (); 30 } 31 else 32 { 33 publicationDate = WorkflowExtensionUtil.getDateAndTime(transientVars 34 .get("publicationDate")); 35 } 36 ps.setString("scheduledPublicationDate", df.format(publicationDate)); 37 38 String unpublicationDateMode = (String ) transientVars.get("unpublicationDateMode"); 39 if (unpublicationDateMode == null || unpublicationDateMode.equals("never")) 40 { 41 ps.remove("unpublicationDate"); 42 } 43 else 44 { 45 Date unpublicationDate = WorkflowExtensionUtil.getDateAndTime(transientVars 46 .get("unpublicationDate")); 47 if (DateUtil.isBefore(unpublicationDate, publicationDateMode, publicationDate)) 48 { 49 ps.remove("unpublicationDate"); 50 } 51 else 52 { 53 ps.setString("unpublicationDate", df.format(unpublicationDate)); 54 } 55 } 56 } 57 58 } 59 | Popular Tags |