parseValue method
dynamic
parseValue(
- dynamic rawValue
Parses a raw input value into the column's target data type.
Implementation
dynamic parseValue(dynamic rawValue) {
if (rawValue == null) {
return defaultValue;
}
if (type == TCsvColumnType.text) {
final str = rawValue.toString().trim();
return str.isEmpty ? defaultValue : str;
}
if (type == TCsvColumnType.number) {
if (rawValue is num) return rawValue.toDouble();
final str = rawValue.toString().trim().replaceAll('\$', '').replaceAll(',', '');
if (str.isEmpty) return defaultValue;
final parsed = double.tryParse(str);
return parsed ?? defaultValue;
}
if (type == TCsvColumnType.integer) {
if (rawValue is int) return rawValue;
if (rawValue is num) return rawValue.toInt();
final str = rawValue.toString().trim().replaceAll('\$', '').replaceAll(',', '');
if (str.isEmpty) return defaultValue;
final parsed = int.tryParse(str) ?? double.tryParse(str)?.toInt();
return parsed ?? defaultValue;
}
if (type == TCsvColumnType.boolean) {
if (rawValue is bool) return rawValue;
final str = rawValue.toString().trim().toLowerCase();
if (str.isEmpty) return defaultValue ?? false;
if (str == 'true' || str == '1' || str == 'yes' || str == 'y' || str == 't' || str == 'active' || str == 'enabled') {
return true;
}
if (str == 'false' || str == '0' || str == 'no' || str == 'n' || str == 'f' || str == 'inactive' || str == 'disabled') {
return false;
}
return defaultValue ?? false;
}
return rawValue;
}