validate method

  1. @override
ValidationResult validate()
override

Implementation

@override
ValidationResult validate() {
  if (isOptional && value == null) {
    return ValidationResult(isValid: true);
  }

  if (!isOptional && value == null) {
    return ValidationResult(
        isValid: false, message: getMessage('missing $propertyName'));
  }

  if (value is! List) {
    return ValidationResult(isValid: false, message: invalidArrayMessage);
  }

  if (!(maxSize == null) && value.length > maxSize) {
    return ValidationResult(isValid: false, message: maxSizeMessage);
  }

  if (!(minSize == null) && value.length < minSize) {
    return ValidationResult(isValid: false, message: minSizeMessage);
  }

  if (!(nested == null)) {
    for (var element in value) {
      final test = nested!(element).validate();
      if (!test.isValid) {
        return ValidationResult(
            isValid: false,
            message:
                '${propertyName ?? ''}${propertyName != null ? ':' : ''}${test.message}');
      }
    }
  }
  return ValidationResult(isValid: true);
}