1 23 package org.infoglue.cms.applications.workflowtool.function.defaultvalue; 24 25 import java.util.Calendar ; 26 27 import org.apache.log4j.Logger; 28 import org.infoglue.cms.applications.workflowtool.function.ContentPopulator; 29 import org.infoglue.cms.applications.workflowtool.function.UserCreator; 30 import org.infoglue.cms.applications.workflowtool.util.ContentValues; 31 32 import com.opensymphony.workflow.WorkflowException; 33 34 public class ExpireDatePopulator extends DatePopulator 35 { 36 private final static Logger logger = Logger.getLogger(ExpireDatePopulator.class.getName()); 37 38 41 private static final String YEARS_AHEAD_ARGUMENT = "yearsAhead"; 42 43 46 private static final int DEFAULT_YEARS_AHEAD = 50; 47 48 51 private int yearsAhead = DEFAULT_YEARS_AHEAD; 52 53 54 55 58 public ExpireDatePopulator() 59 { 60 super(); 61 } 62 63 66 protected void populate() throws WorkflowException 67 { 68 final Calendar calendar = Calendar.getInstance(); 69 calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) + yearsAhead); 70 super.populate(ContentPopulator.CONTENT_PROPERTYSET_PREFIX + ContentValues.EXPIRE_DATE_TIME, calendar.getTime()); 71 } 72 73 76 protected void populate(final String name) throws WorkflowException 77 { 78 populate(); 79 } 80 81 84 protected void populate(final String name, final String value) throws WorkflowException 85 { 86 populate(); 87 } 88 89 95 protected void initialize() throws WorkflowException 96 { 97 super.initialize(); 98 initializeYearsAhead(); 99 } 100 101 104 private void initializeYearsAhead() 105 { 106 if(argumentExists(YEARS_AHEAD_ARGUMENT)) 107 { 108 try 109 { 110 int temporary = Integer.parseInt(getArgument(YEARS_AHEAD_ARGUMENT).toString()); 111 if(temporary > 0) 112 { 113 yearsAhead = temporary; 114 logger.debug("Using [" + temporary + "] as years ahead value."); 115 } 116 else 117 logger.warn("Illegal years ahead argument [" + temporary + "]."); 118 119 } 120 catch(Exception e) 121 { 122 logger.warn("Illegal years ahead argument [" + e.getMessage() + "]."); 123 } 124 } 125 else 126 { 127 logger.debug("Using default years ahead value."); 128 } 129 } 130 } 131 | Popular Tags |