getValue<T> method
- String key, {
- required T def,
- OnGetValueErrorCallback? onError,
Get Type Value
Supported -> String,int,double,bool,List<T>,List<Map<[String|dynamic],dynamic>>
Implementation
T getValue<T>(
String key, {
required T def,
OnGetValueErrorCallback? onError,
}) {
final value = _data[key];
// print(
// 'type: $T - defType: ${def.runtimeType} - value: ${value.runtimeType}',
// );
try {
if (T == int) {
return (int.tryParse(value) ?? def) as T;
}
if (T == bool) {
return (bool.tryParse(value) ?? def) as T;
}
if (T == double) {
return (double.tryParse(value) ?? def) as T;
}
if (T == String) {
final val = value ?? def;
return val.toString() as T;
}
// map
if (T == Map<dynamic, dynamic>) {
return Map<dynamic, dynamic>.from(value as Map<dynamic, dynamic>) as T;
}
if (T == Map<String, dynamic>) {
return Map<String, dynamic>.from(value as Map<String, dynamic>) as T;
}
if (value is List) {
if (T == List<String>) {
return List<String>.from(value) as T;
}
if (T == List<int>) {
return List<int>.from(value) as T;
}
if (T == List<Map<String, dynamic>>) {
return List<Map<String, dynamic>>.from(value) as T;
}
if (T == List<Map<dynamic, dynamic>>) {
return List<Map<dynamic, dynamic>>.from(value) as T;
}
}
} catch (e) {
// print('error: $e');
onError?.call(e.toString());
return def;
}
return def;
}