validate method

  1. @override
bool validate(
  1. dynamic value, [
  2. List<String>? options
])
override

Validates whether the provided value meets the minimum requirement.

The value is expected to be a String or a num. The options parameter should contain a single element which is the minimum value as a String that can be parsed into an int.

For a String value, its length must be greater than or equal to the specified minimum. For a num value, the number itself must be greater than or equal to the specified minimum.

Returns true if the value meets the minimum requirement, otherwise returns false.

Implementation

@override
bool validate(dynamic value, [List<String>? options]) {
  // Check if options are provided and not empty
  if (options == null || options.isEmpty) return false;

  // Try to parse the first option as a number to get the minimum allowed value
  final min = num.tryParse(options[0]);
  if (min == null) return false;

  // Check if the value is a string and its length is greater than or equal to the minimum value
  if (value is String) {
    return value.length >= min;
  }

  // Check if the value is a number and is greater than or equal to the minimum value
  if (value is num) {
    return value >= min;
  }

  // Return false if the value is neither a string nor a number
  return false;
}