Package org.apache.commons.validator.routines

# Class AbstractNumberValidator

java.lang.Object
org.apache.commons.validator.routines.AbstractFormatValidator
org.apache.commons.validator.routines.AbstractNumberValidator

All Implemented Interfaces:
  `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:
  1.3.0
See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `CURRENCY_FORMAT`
  Currency `NumberFormat` type
  `static final int`
  `PERCENT_FORMAT`
  Percent `NumberFormat` type
  `static final int`
  `STANDARD_FORMAT`
  Standard `NumberFormat` type

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractNumberValidator(boolean strict, int formatType, boolean allowFractions)`
  Constructs an instance with specified strict and decimal parameters.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected int`
  `determineScale(NumberFormat format)`
  Returns the multiplier of the `NumberFormat`.
  `protected Format`
  `getFormat(String pattern, Locale locale)`
  Returns a `NumberFormat` for the specified pattern and/or `Locale`.
  `protected Format`
  `getFormat(Locale locale)`
  Returns a `NumberFormat` for the specified 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(Number value, Number min, Number max)`
  Check if the value is within a specified range.
  `boolean`
  `isValid(String value, String pattern, Locale locale)`
  Validate using the specified `Locale`.
  `boolean`
  `maxValue(Number value, Number max)`
  Check if the value is less than or equal to a maximum.
  `boolean`
  `minValue(Number value, Number min)`
  Check if the value is greater than or equal to a minimum.
  `protected Object`
  `parse(String value, String pattern, Locale locale)`
  Parse the value using the specified pattern.
  `protected abstract Object`
  `processParsedValue(Object value, 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 Details

  - ### 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

- ## Constructor Details

  - ### AbstractNumberValidator

    public AbstractNumberValidator(boolean strict, int formatType, boolean allowFractions)
    Constructs 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 Details

  - ### determineScale

    protected int determineScale(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 Format getFormat(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.

  - ### getFormat

    protected Format getFormat(String pattern, 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.

  - ### getFormatType

    public int getFormatType()

    Indicates the type of `NumberFormat` created by this validator instance.

    Returns:
      the format type created.

  - ### 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.

  - ### isInRange

    public boolean isInRange(Number value, Number min, 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.

  - ### isValid

    public boolean isValid(String value, String pattern, 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.

  - ### maxValue

    public boolean maxValue(Number value, 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.

  - ### minValue

    public boolean minValue(Number value, 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.

  - ### parse

    protected Object parse(String value, String pattern, 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 Object processParsedValue(Object value, 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.