validate method
Validates a data object against this schema
Implementation
ValidationResult validate(dynamic data) {
if (data == null) {
return ValidationResult.error('The data is null');
}
// Convert to a Map if needed
Map<String, dynamic> dataMap;
if (data is Map<String, dynamic>) {
dataMap = data;
} else if (data is Map) {
dataMap = Map<String, dynamic>.from(data);
} else {
try {
dataMap = (data as dynamic).toJson() as Map<String, dynamic>;
} catch (_) {
return ValidationResult.error(
'Unable to convert the data to a valid format',
);
}
}
for (final field in fields) {
final value = dataMap[field.name];
final result = field.validate(value);
if (!result.isValid) {
return result;
}
}
return ValidationResult.success();
}