diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/AbstractRangeValidator.java b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/AbstractRangeValidator.java index 65f0ad191..ed1a9e634 100644 --- a/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/AbstractRangeValidator.java +++ b/xwork-core/src/main/java/com/opensymphony/xwork2/validator/validators/AbstractRangeValidator.java @@ -15,6 +15,7 @@ */ package com.opensymphony.xwork2.validator.validators; +import com.opensymphony.xwork2.util.TextParseUtil; import com.opensymphony.xwork2.validator.ValidationException; @@ -26,6 +27,12 @@ import com.opensymphony.xwork2.validator.ValidationException; */ public abstract class AbstractRangeValidator extends FieldValidatorSupport { + private final Class type; + + protected AbstractRangeValidator(Class type) { + this.type = type; + } + public void validate(Object object) throws ValidationException { Object obj = getFieldValue(getFieldName(), object); Comparable value = (Comparable) obj; @@ -49,16 +56,15 @@ public abstract class AbstractRangeValidator extends Field } } + protected T parse(String expression) { + if (expression == null) { + return null; + } + return (T) TextParseUtil.translateVariables('$', expression, stack, type); + } + protected abstract T getMaxComparatorValue(); protected abstract T getMinComparatorValue(); - protected String safeConditionalParse(String expression) { - Object value = conditionalParse(expression); - if (value != null) { - return value.toString(); - } else { - return null; - } - } }