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.Length;
import org.springmodules.validation.bean.conf.loader.annotation.handler.Size;
public class LengthSizeHandler extends Handler {
public LengthSizeHandler() {
super(Length.class, Size.class);
}
@Override
public String convertToValang(String field, Annotation a, MessageSourceAccessor messages) {
String errMsg = "";
int min = 0;
int max = 0;
String applyIfValang = null;
if (a instanceof Length) {
Length annotation = (Length) a;
errMsg = messages.getMessage(annotation.errorCode(), annotation.message());
min = annotation.min();
max = annotation.max();
applyIfValang = valangToJS(annotation.applyIf());
} else if (a instanceof Size) {
Size annotation = (Size) a;
errMsg = messages.getMessage(annotation.errorCode(), annotation.message());
min = annotation.min();
max = annotation.max();
applyIfValang = valangToJS(annotation.applyIf());
}
StringBuffer sb = new StringBuffer();
sb.append(" function() {return this.between(this.lengthOf(this.getPropertyValue(");
sb.append(wrapAndEscapeJsString(field));// field
sb.append(")), (new Array(");
sb.append(min);
sb.append(',');
sb.append(max);
sb.append(") ))}");
return buildBasicRule(field, errMsg, sb.toString(), applyIfValang, a);
}
}