package com.venky.swf.db.annotations.column.validations.processors;
import com.venky.core.util.ObjectUtil;
import com.venky.swf.db.Database;
import com.venky.swf.db.annotations.column.validations.IntegerRange;
import com.venky.swf.exceptions.MultiException;
public class IntegerRangeValidator extends FieldValidator<IntegerRange>{
public IntegerRangeValidator(String pool) {
super(pool);
}
@Override
public boolean validate(IntegerRange annotation, String humanizedFieldName, String value,
MultiException fieldException) {
if (ObjectUtil.isVoid(value)){
return true;
}
Integer iValue = (Integer) Database.getJdbcTypeHelper(getPool()).getTypeRef(Integer.class).getTypeConverter().valueOf(value);
boolean valid = (annotation.min() <= iValue && annotation.max() >= iValue);
if (!valid){
fieldException.add(new FieldValidationException(humanizedFieldName + " must be between (" + annotation.min() + "," + annotation.max() + ")"));
}
return valid;
}
}