validate method
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);
}