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'));
  }
  final stringValidate = IsString(value: value).validate();
  if (!stringValidate.isValid) {
    return ValidationResult(
        isValid: false,
        message: getMessage('$propertyName must be a string'));
  }
  try {
    values.byName(value);
  } catch (e) {
    return ValidationResult(
        isValid: false,
        message: getMessage(
            '$propertyName must be a valid enum among ${values.map((e) {
          return e.name;
        })}'));
  }

  return ValidationResult(isValid: true);
}