validate method
Validates this rule synchronously.
Implementation
@override
List<ValidationFailure> validate(ValidationContext<T> context) {
final instance = context.instanceToValidate;
final collection = propertyFunc(instance);
if (collection == null) return [];
final failures = <ValidationFailure>[];
// Validate collection-level validators
failures.addAll(super.validate(context));
// Validate each item if validator is set
if (_itemValidator != null) {
for (var i = 0; i < collection.length; i++) {
final item = collection[i];
final result = _itemValidator!.validate(item);
for (final failure in result.errors) {
failures.add(
ValidationFailure(
propertyName: '$propertyName[$i].${failure.propertyName}',
errorMessage: failure.errorMessage,
attemptedValue: failure.attemptedValue,
),
);
}
}
}
return failures;
}