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.NumericRange; import com.venky.swf.exceptions.MultiException; public class NumericRangeValidator extends FieldValidator<NumericRange> { public NumericRangeValidator(String pool) { super(pool); } @Override public boolean validate(NumericRange annotation,String humanizedFieldName, String value, MultiException fieldException) { if (ObjectUtil.isVoid(value)){ return true; } Double dValue = (Double) Database.getJdbcTypeHelper(getPool()).getTypeRef(Double.class).getTypeConverter().valueOf(value); boolean valid = (annotation.min() <= dValue && annotation.max() >= dValue); if (!valid){ fieldException.add(new FieldValidationException(humanizedFieldName + " must be between:(" + annotation.min() + "," + annotation.max() + ")")); } return valid; } }