package org.jpos.jposext.isomsgaction.service.support; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Map; import org.jpos.iso.ISOException; import org.jpos.iso.ISOMsg; import org.jpos.jposext.isomsgaction.helper.ISOMsgHelper; import org.jpos.jposext.isomsgaction.model.DateFieldEnum; import org.jpos.jposext.isomsgaction.service.IISOMsgAction; /** * * Set value action : in dest message, dest field is valued with current date using a specified date format pattern<BR/> * * @author dgrandemange * */ public class ISOMsgActionSetStrDate extends ISOMsgAbstractAction implements IISOMsgAction { /** * Date format pattern (see java.util.SimpleDateFormat) */ private String pattern; private int addValue=0; private DateFieldEnum dateField; public ISOMsgActionSetStrDate() { super(); } /* (non-Javadoc) * @see org.jpos.jposext.isomsgaction.service.IISOMsgAction#process(org.jpos.iso.ISOMsg[], java.util.Map) */ public void process(ISOMsg[] msg, Map<String, Object> ctx) throws ISOException { SimpleDateFormat sdf = new SimpleDateFormat(pattern); Calendar calendrier = Calendar.getInstance(); if (addValue!=0){ switch (dateField) { case DAY : calendrier.add(Calendar.DATE, addValue); break; case MONTH : calendrier.add(Calendar.MONTH, addValue); break; case YEAR : calendrier.add(Calendar.YEAR, addValue); break; case HOUR : calendrier.add(Calendar.HOUR, addValue); break; case MINUTE : calendrier.add(Calendar.MINUTE, addValue); break; case SECOND : calendrier.add(Calendar.SECOND, addValue); break; default : calendrier.add(Calendar.DATE, addValue); break; } } String fmttedDate = sdf.format(calendrier.getTime()); ISOMsgHelper.setValue(msg[getMsgIndex()], getIdPath(), fmttedDate, isBinary()); } public String getPattern() { return pattern; } public void setPattern(String pattern) { this.pattern = pattern; } public int getAddValue() { return addValue; } public void setAddValue(int addValue) { this.addValue = addValue; } public DateFieldEnum getDateField() { return dateField; } public void setDateField(DateFieldEnum dateField) { this.dateField = dateField; } }