Class RangeValidator<T>

java.lang.Object
com.vaadin.flow.data.validator.AbstractValidator<T>
com.vaadin.flow.data.validator.RangeValidator<T>
Type Parameters:
T - the type to validate
All Implemented Interfaces:
Validator<T>, Serializable, BiFunction<T,ValueContext,ValidationResult>
Direct Known Subclasses:
BigDecimalRangeValidator, BigIntegerRangeValidator, ByteRangeValidator, DateRangeValidator, DateTimeRangeValidator, DoubleRangeValidator, FloatRangeValidator, IntegerRangeValidator, LongRangeValidator, ShortRangeValidator

public class RangeValidator<T> extends AbstractValidator<T>
Verifies that a value is within the given range.
Since:
1.0.
Author:
Vaadin Ltd
See Also:
  • Constructor Details

    • RangeValidator

      public RangeValidator(String errorMessage, Comparator<? super T> comparator, T minValue, T maxValue)
      Creates a new range validator of the given type. Passing null to either minValue or maxValue means there is no limit in that direction. Both limits may be null; this can be useful if the limits are resolved programmatically. The result of passing null to apply depends on the given comparator.
      Parameters:
      errorMessage - the error message to return if validation fails, not null
      comparator - the comparator to compare with, not null
      minValue - the least value of the accepted range or null for no limit
      maxValue - the greatest value of the accepted range or null for no limit
  • Method Details

    • of

      public static <C extends Comparable<? super C>> RangeValidator<C> of(String errorMessage, C minValue, C maxValue)
      Returns a RangeValidator comparing values of a Comparable type using their natural order. Passing null to either minValue or maxValue means there is no limit in that direction. Both limits may be null; this can be useful if the limits are resolved programmatically.

      Null is considered to be less than any non-null value. This means null never passes validation if a minimum value is specified.

      Type Parameters:
      C - the Comparable value type
      Parameters:
      errorMessage - the error message to return if validation fails, not null
      minValue - the least value of the accepted range or null for no limit
      maxValue - the greatest value of the accepted range or null for no limit
      Returns:
      the new validator
    • apply

      public ValidationResult apply(T value, ValueContext context)
      Returns Result.ok if the value is within the specified bounds, Result.error otherwise. If null is passed to apply, the behavior depends on the used comparator.
      Parameters:
      value - the input value to validate
      context - the value context for validation
      Returns:
      the validation result
    • isMinValueIncluded

      public boolean isMinValueIncluded()
      Returns whether the minimum value is part of the accepted range.
      Returns:
      true if the minimum value is part of the range, false otherwise
    • setMinValueIncluded

      public void setMinValueIncluded(boolean minValueIncluded)
      Sets whether the minimum value is part of the accepted range.
      Parameters:
      minValueIncluded - true if the minimum value should be part of the range, false otherwise
    • isMaxValueIncluded

      public boolean isMaxValueIncluded()
      Returns whether the maximum value is part of the accepted range.
      Returns:
      true if the maximum value is part of the range, false otherwise
    • setMaxValueIncluded

      public void setMaxValueIncluded(boolean maxValueIncluded)
      Sets whether the maximum value is part of the accepted range.
      Parameters:
      maxValueIncluded - true if the maximum value should be part of the range, false otherwise
    • getMinValue

      public T getMinValue()
      Returns the minimum value of the range.
      Returns:
      the minimum value
    • setMinValue

      public void setMinValue(T minValue)
      Sets the minimum value of the range. Use setMinValueIncluded(boolean) to control whether this value is part of the range or not.
      Parameters:
      minValue - the minimum value
    • getMaxValue

      public T getMaxValue()
      Gets the maximum value of the range.
      Returns:
      the maximum value
    • setMaxValue

      public void setMaxValue(T maxValue)
      Sets the maximum value of the range. Use setMaxValueIncluded(boolean) to control whether this value is part of the range or not.
      Parameters:
      maxValue - the maximum value
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • isValid

      protected boolean isValid(T value)
      Returns whether the given value lies in the valid range.
      Parameters:
      value - the value to validate
      Returns:
      true if the value is valid, false otherwise