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! String) {
    return ValidationResult(isValid: false, message: invalidStringMessage);
  }

  if (!isOptional && value.toString().isEmpty) {
    return ValidationResult(isValid: false, message: emptyStringMessage);
  }
  if (contains != null &&
      !Utils.contains(value, contains ?? '', ignoreCase: ignoreCase)) {
    return ValidationResult(isValid: false, message: containsInvalidMessage);
  }

  if (notContains != null &&
      Utils.contains(value, notContains ?? '', ignoreCase: ignoreCase)) {
    return ValidationResult(
        isValid: false, message: notContainsInvalidMessage);
  }

  if (isEmail && !validators.isEmail(value)) {
    return ValidationResult(isValid: false, message: notEmailInvalidMessage);
  }

  if (length != null && !validators.isLength(value, length ?? 0, length)) {
    return ValidationResult(
        isValid: false, message: incorrectLengthInvalidMessage);
  }

  if (maxLen != null && !validators.isLength(value, 0, maxLen)) {
    return ValidationResult(
        isValid: false, message: incorrectMaxLengthInvalidMessage);
  }

  if (minLen != null && !validators.isLength(value, minLen ?? 0)) {
    return ValidationResult(
        isValid: false, message: incorrectMinLengthInvalidMessage);
  }

  if (isUrl && !validators.isURL(value)) {
    return ValidationResult(isValid: false, message: incorrectUrlMessage);
  }

  if (matches != null && !validators.matches(value, matches)) {
    return ValidationResult(isValid: false, message: incorrectMatchMessage);
  }

  if (isIn.isNotEmpty && !(validators.isIn(value, isIn) ?? false)) {
    return ValidationResult(isValid: false, message: incorrectIsInMessage);
  }

  if (isAlpha && !validators.isAlpha(value)) {
    return ValidationResult(isValid: false, message: incorrectIsAlphaMessage);
  }

  if (isAlphanumeric && !validators.isAlphanumeric(value)) {
    return ValidationResult(
        isValid: false, message: incorrectIsAlphaNumericMessage);
  }

  if (isBase64 && !validators.isBase64(value)) {
    return ValidationResult(isValid: false, message: incorrectBase64Message);
  }

  if (isCreditCard && !validators.isCreditCard(value)) {
    return ValidationResult(
        isValid: false, message: incorrectCreditCardMessage);
  }

  if (isDate && !validators.isDate(value)) {
    return ValidationResult(isValid: false, message: incorrectDateMessage);
  }
  if (isJSON && !validators.isJSON(value)) {
    return ValidationResult(isValid: false, message: incorrectJSONMessage);
  }
  if (isLowercase && !validators.isLowercase(value)) {
    return ValidationResult(
        isValid: false, message: incorrectLowercaseMessage);
  }
  if (isUUID && !validators.isUUID(value)) {
    return ValidationResult(isValid: false, message: incorrectUUIDMessage);
  }

  if (isUppercase && !validators.isUppercase(value)) {
    return ValidationResult(
        isValid: false, message: incorrectUppercaseMessage);
  }

  if (isIP && !validators.isIP(value)) {
    return ValidationResult(isValid: false, message: incorrectIPMessage);
  }

  return ValidationResult(isValid: true);
}