typedAssoc method
Same as assoc but detects best dart type for columns, and converts string data into appropriate types
Implementation
Map<String, dynamic> typedAssoc() {
final result = <String, dynamic>{};
int colIndex = 0;
for (final colDef in _colDefs) {
final value = _values[colIndex];
if (value == null) {
result[colDef.name] = null;
colIndex++;
continue;
}
final dartType = colDef.type.getBestMatchDartType(colDef.columnLength);
dynamic decodedValue;
switch (dartType) {
case int:
decodedValue = int.parse(value);
break;
case double:
decodedValue = double.parse(value);
break;
case num:
decodedValue = num.parse(value);
break;
case bool:
decodedValue = int.parse(value) > 0;
break;
case String:
decodedValue = value;
break;
default:
decodedValue = value;
break;
}
result[colDef.name] = decodedValue;
colIndex++;
}
return result;
}