Class DecimalRangeValidator<V extends Number & Comparable<V>>

Type Parameters:
V - The value type this validator supports.
All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable, com.globalmentor.beans.PropertyConstrainable, RangeValidator<V>, Validator<V>

public class DecimalRangeValidator<V extends Number & Comparable<V>> extends AbstractComparableRangeValidator<V>
A range validator for decimal numbers such as floating point numbers that uses BigInteger for validation accuracy. The step value is considered relative either to the minimum value, if available, the maximum value, if available, or zero, in that order or priority.
Author:
Garret Wilson
See Also:
  • Constructor Details

    • DecimalRangeValidator

      public DecimalRangeValidator()
      Default constructor with no value required and a step of one.
    • DecimalRangeValidator

      public DecimalRangeValidator(boolean valueRequired)
      Value required constructor with a step of one.
      Parameters:
      valueRequired - Whether the value must be non-null in order to be considered valid.
    • DecimalRangeValidator

      public DecimalRangeValidator(V minimum, V maximum)
      Minimum, and maximum constructor with no step.
      Parameters:
      minimum - The minimum value, inclusive, or null if the range has no lower bound.
      maximum - The maximum value, inclusive, or null if the range has no upper bound.
    • DecimalRangeValidator

      public DecimalRangeValidator(V minimum, V maximum, V step)
      Minimum, maximum, and step constructor.
      Parameters:
      minimum - The minimum value, inclusive, or null if the range has no lower bound.
      maximum - The maximum value, inclusive, or null if the range has no upper bound.
      step - The step amount, or null if the range has no increment value specified.
    • DecimalRangeValidator

      public DecimalRangeValidator(V minimum, V maximum, boolean valueRequired)
      Minimum, maximum, and value required constructor.
      Parameters:
      minimum - The minimum value, inclusive, or null if the range has no lower bound.
      maximum - The maximum value, inclusive, or null if the range has no upper bound.
      valueRequired - Whether the value must be non-null in order to be considered valid.
    • DecimalRangeValidator

      public DecimalRangeValidator(V minimum, V maximum, V step, boolean valueRequired)
      Minimum, maximum, step, and value required constructor.
      Parameters:
      minimum - The minimum value, inclusive, or null if the range has no lower bound.
      maximum - The maximum value, inclusive, or null if the range has no upper bound.
      step - The step amount, or null if the range has no increment value specified.
      valueRequired - Whether the value must be non-null in order to be considered valid.
  • Method Details

    • isValidStep

      protected boolean isValidStep(V value, V step, V base)
      Description copied from class: AbstractComparableRangeValidator
      Determines whether the given value falls on the correct step amount relative to the base value.
      Specified by:
      isValidStep in class AbstractComparableRangeValidator<V extends Number & Comparable<V>>
      Parameters:
      value - The value to validate.
      step - The step value.
      base - The base (either the minimum or maximum value), or null if zero should be used as a base.
      Returns:
      true if the value is a valid step away from the given base.