package org.springmodules.validation.bean.annotation.javascript.taglib; import java.lang.annotation.Annotation; import org.springframework.context.support.MessageSourceAccessor; import org.springmodules.validation.bean.conf.loader.annotation.handler.InTheFuture; import org.springmodules.validation.bean.conf.loader.annotation.handler.InThePast; public class InThePastFutureHandler extends Handler { public InThePastFutureHandler() { super(InThePast.class, InTheFuture.class); } @Override public String convertToValang(String fieldName, Annotation a, MessageSourceAccessor messages) { String errMsg = ""; String pastFutureMethod = ""; String applyIfValang = null; if (a instanceof InThePast) { InThePast annotation = (InThePast) a; errMsg = messages.getMessage(annotation.errorCode(), annotation.message()); pastFutureMethod = "lessThan"; applyIfValang = valangToJS(annotation.applyIf()); } else if (a instanceof InTheFuture) { InTheFuture annotation = (InTheFuture) a; errMsg = messages.getMessage(annotation.errorCode(), annotation.message()); pastFutureMethod = "moreThan"; applyIfValang = valangToJS(annotation.applyIf()); } StringBuffer sb = new StringBuffer(); sb.append(" function() {return this."); sb.append(pastFutureMethod); sb.append("( ("); sb.append("this.getPropertyValue("); sb.append(wrapAndEscapeJsString(fieldName)); // value of name field sb.append(") ), new Date() )}"); return buildBasicRule(fieldName, errMsg, sb.toString(), applyIfValang, a); } }