Class AbstractNumberValidator
- java.lang.Object
-
- org.apache.commons.validator.routines.AbstractFormatValidator
-
- org.apache.commons.validator.routines.AbstractNumberValidator
-
- All Implemented Interfaces:
java.io.Serializable
- Direct Known Subclasses:
BigDecimalValidator
,BigIntegerValidator
,ByteValidator
,DoubleValidator
,FloatValidator
,IntegerValidator
,LongValidator
,ShortValidator
public abstract class AbstractNumberValidator extends AbstractFormatValidator
Abstract class for Number Validation.
This is a base class for building Number Validators using format parsing.
- Since:
- Validator 1.3.0
- Version:
- $Revision: 478334 $ $Date: 2006-11-22 21:31:54 +0000 (Wed, 22 Nov 2006) $
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
allowFractions
static int
CURRENCY_FORMAT
CurrencyNumberFormat
typeprivate int
formatType
static int
PERCENT_FORMAT
PercentNumberFormat
typestatic int
STANDARD_FORMAT
StandardNumberFormat
type
-
Constructor Summary
Constructors Constructor Description AbstractNumberValidator(boolean strict, int formatType, boolean allowFractions)
Construct an instance with specified strict and decimal parameters.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected int
determineScale(java.text.NumberFormat format)
Returns the multiplier of theNumberFormat
.protected java.text.Format
getFormat(java.lang.String pattern, java.util.Locale locale)
Returns aNumberFormat
for the specified pattern and/orLocale
.protected java.text.Format
getFormat(java.util.Locale locale)
Returns aNumberFormat
for the specified Locale.int
getFormatType()
Indicates the type ofNumberFormat
created by this validator instance.boolean
isAllowFractions()
Indicates whether the number being validated is a decimal or integer.boolean
isInRange(java.lang.Number value, java.lang.Number min, java.lang.Number max)
Check if the value is within a specified range.boolean
isValid(java.lang.String value, java.lang.String pattern, java.util.Locale locale)
Validate using the specifiedLocale
.boolean
maxValue(java.lang.Number value, java.lang.Number max)
Check if the value is less than or equal to a maximum.boolean
minValue(java.lang.Number value, java.lang.Number min)
Check if the value is greater than or equal to a minimum.protected java.lang.Object
parse(java.lang.String value, java.lang.String pattern, java.util.Locale locale)
Parse the value using the specified pattern.protected abstract java.lang.Object
processParsedValue(java.lang.Object value, java.text.Format formatter)
Process the parsed value, performing any further validation and type conversion required.
-
-
-
Field Detail
-
STANDARD_FORMAT
public static final int STANDARD_FORMAT
StandardNumberFormat
type- See Also:
- Constant Field Values
-
CURRENCY_FORMAT
public static final int CURRENCY_FORMAT
CurrencyNumberFormat
type- See Also:
- Constant Field Values
-
PERCENT_FORMAT
public static final int PERCENT_FORMAT
PercentNumberFormat
type- See Also:
- Constant Field Values
-
allowFractions
private boolean allowFractions
-
formatType
private int formatType
-
-
Constructor Detail
-
AbstractNumberValidator
public AbstractNumberValidator(boolean strict, int formatType, boolean allowFractions)
Construct an instance with specified strict and decimal parameters.- Parameters:
strict
-true
if strictFormat
parsing should be used.formatType
- TheNumberFormat
type to create for validation, default is STANDARD_FORMAT.allowFractions
-true
if fractions are allowed orfalse
if integers only.
-
-
Method Detail
-
isAllowFractions
public boolean isAllowFractions()
Indicates whether the number being validated is a decimal or integer.
- Returns:
true
if decimals are allowed orfalse
if the number is an integer.
-
getFormatType
public int getFormatType()
Indicates the type of
NumberFormat
created by this validator instance.- Returns:
- the format type created.
-
isValid
public boolean isValid(java.lang.String value, java.lang.String pattern, java.util.Locale locale)
Validate using the specified
Locale
.- Specified by:
isValid
in classAbstractFormatValidator
- Parameters:
value
- The value validation is being performed on.pattern
- The pattern used to validate the value against, or the default for theLocale
ifnull
.locale
- The locale to use for the date format, system default if null.- Returns:
true
if the value is valid.
-
isInRange
public boolean isInRange(java.lang.Number value, java.lang.Number min, java.lang.Number max)
Check if the value is within a specified range.- Parameters:
value
- The value validation is being performed on.min
- The minimum value of the range.max
- The maximum value of the range.- Returns:
true
if the value is within the specified range.
-
minValue
public boolean minValue(java.lang.Number value, java.lang.Number min)
Check if the value is greater than or equal to a minimum.- Parameters:
value
- The value validation is being performed on.min
- The minimum value.- Returns:
true
if the value is greater than or equal to the minimum.
-
maxValue
public boolean maxValue(java.lang.Number value, java.lang.Number max)
Check if the value is less than or equal to a maximum.- Parameters:
value
- The value validation is being performed on.max
- The maximum value.- Returns:
true
if the value is less than or equal to the maximum.
-
parse
protected java.lang.Object parse(java.lang.String value, java.lang.String pattern, java.util.Locale locale)
Parse the value using the specified pattern.
- Parameters:
value
- The value validation is being performed on.pattern
- The pattern used to validate the value against, or the default for theLocale
ifnull
.locale
- The locale to use for the date format, system default if null.- Returns:
- The parsed value if valid or
null
if invalid.
-
processParsedValue
protected abstract java.lang.Object processParsedValue(java.lang.Object value, java.text.Format formatter)
Process the parsed value, performing any further validation and type conversion required.
- Specified by:
processParsedValue
in classAbstractFormatValidator
- Parameters:
value
- The parsed object created.formatter
- The Format used to parse the value with.- Returns:
- The parsed value converted to the appropriate type
if valid or
null
if invalid.
-
getFormat
protected java.text.Format getFormat(java.lang.String pattern, java.util.Locale locale)
Returns a
NumberFormat
for the specified pattern and/orLocale
.- Specified by:
getFormat
in classAbstractFormatValidator
- Parameters:
pattern
- The pattern used to validate the value against ornull
to use the default for theLocale
.locale
- The locale to use for the currency format, system default if null.- Returns:
- The
NumberFormat
to created.
-
determineScale
protected int determineScale(java.text.NumberFormat format)
Returns the multiplier of the
NumberFormat
.- Parameters:
format
- TheNumberFormat
to determine the multiplier of.- Returns:
- The multiplying factor for the format..
-
getFormat
protected java.text.Format getFormat(java.util.Locale locale)
Returns a
NumberFormat
for the specified Locale.- Parameters:
locale
- The locale aNumberFormat
is required for, system default if null.- Returns:
- The
NumberFormat
to created.
-
-