org.apache.commons.validator.routines
Class AbstractNumberValidator

java.lang.Object
  extended by org.apache.commons.validator.routines.AbstractFormatValidator
      extended by 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
private  boolean allowFractions
           
static int CURRENCY_FORMAT
          Currency NumberFormat type
private  int formatType
           
static int PERCENT_FORMAT
          Percent NumberFormat type
static int STANDARD_FORMAT
          Standard NumberFormat type
 
Constructor Summary
AbstractNumberValidator(boolean strict, int formatType, boolean allowFractions)
          Construct an instance with specified strict and decimal parameters.
 
Method Summary
protected  int determineScale(java.text.NumberFormat format)
          Returns the multiplier of the NumberFormat.
protected  java.text.Format getFormat(java.util.Locale locale)
          Returns a NumberFormat for the specified Locale.
protected  java.text.Format getFormat(java.lang.String pattern, java.util.Locale locale)
          Returns a NumberFormat for the specified pattern and/or Locale.
 int getFormatType()
          Indicates the type of NumberFormat 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 specified Locale.
 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.
 
Methods inherited from class org.apache.commons.validator.routines.AbstractFormatValidator
format, format, format, format, format, isStrict, isValid, isValid, isValid, parse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

STANDARD_FORMAT

public static final int STANDARD_FORMAT
Standard NumberFormat type

See Also:
Constant Field Values

CURRENCY_FORMAT

public static final int CURRENCY_FORMAT
Currency NumberFormat type

See Also:
Constant Field Values

PERCENT_FORMAT

public static final int PERCENT_FORMAT
Percent NumberFormat 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 strict Format parsing should be used.
formatType - The NumberFormat type to create for validation, default is STANDARD_FORMAT.
allowFractions - true if fractions are allowed or false 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 or false 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 class AbstractFormatValidator
Parameters:
value - The value validation is being performed on.
pattern - The pattern used to validate the value against, or the default for the Locale if null.
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 the Locale if null.
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 class AbstractFormatValidator
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/or Locale.

Specified by:
getFormat in class AbstractFormatValidator
Parameters:
pattern - The pattern used to validate the value against or null to use the default for the Locale.
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 - The NumberFormat 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 a NumberFormat is required for, system default if null.
Returns:
The NumberFormat to created.


Copyright (c) 2001-2004 Apache Software Foundation