validate method
Implementation
@override
JarResult validate(List<dynamic>? value,
[Map<String, dynamic>? allValues, String? path, Object? root]) {
final base = super.validate(value, allValues, path, root ?? value);
if (!base.isValid) return base;
if (value == null) return JarResult.success(value);
if (value.length != schemas.length) {
return JarResult.error(
'Expected ${schemas.length} elements, got ${value.length}');
}
final errors = [];
final output = [];
for (var i = 0; i < schemas.length; i++) {
final childPath = path == null ? '$i' : '$path.$i';
final result =
schemas[i].validate(value[i], allValues, childPath, root ?? value);
output.add(result.value);
if (!result.isValid) {
errors.add({'path': childPath, 'message': result.error});
}
}
if (errors.isNotEmpty) {
return JarResult.error('Validation failed', {'errors': errors});
}
return JarResult.success(output);
}