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:
    Validator 1.3.0
  Version:
    $Revision$
  See Also:
    Serialized Form

- - ### Field Summary

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

  - ### Constructor Summary

    Constructors
    Constructor and 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 and Description
    --- | ---
    `protected int` | `determineScale(NumberFormat format)` Returns the multiplier of the `NumberFormat`.
    `protected Format` | `getFormat(Locale locale)` Returns a `NumberFormat` for the specified Locale.
    `protected Format` | `getFormat(String pattern, 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(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 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

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

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

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

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

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

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

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

Copyright © 2002–2020 The Apache Software Foundation. All rights reserved.