get<T> method
Retrieves the value of key
cast to type T
. Supports type-specific operations.
Supported types include List, bool, int, double, and String.
Implementation
T get<T>(String key, {T? def, trim = true}) {
switch (T) {
case List:
var res = dataObject(key, def: def);
if (res is List) {
return res as T;
}
if (res is String && res.isNotEmpty) {
return WaJson.tryJsonList(res, def: (def ?? []) as List) as T;
}
if (def != null) return def;
return [] as T;
case num:
var res = (num.tryParse(data(key, trim: trim)) ?? -1);
if (def != null && res == -1) return def;
return res as T;
case int:
var res = (int.tryParse(data(key, trim: trim)) ?? -1);
if (def != null && res == -1) return def;
return res as T;
case bool:
if (!hasData(key)) {
return (def ?? false) as T;
}
return data(key, trim: trim).toBool as T;
case String:
var res = data(key, trim: trim).toString();
if (res.isEmpty && def != null) return def;
return res as T;
case double:
var res = data(key, trim: trim).toString().asDouble();
return res as T;
default:
return data(key, trim: trim) as T;
}
}