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'));
}
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);
}