castData method
dynamic
castData(
- dynamic data,
- String type
)
Implementation
dynamic castData(dynamic data, String type) {
if (data == null) return null;
switch (type) {
case "String":
return data.toString();
case "int":
return int.parse("$data");
case "double":
return double.parse("$data");
case "bool":
return data.toString() == "true"
? true
: data.toString() == "false"
? false
: null;
}
if (type.length > 4 ? type.substring(0, 4) == "List" : false) {
if (data == null || data.length == 0) {
return List.empty(growable: true);
} else {
if (type.length > 5) {
switch (type.substring(5, type.length - 1)) {
case "String":
return List<String? /*!*/ >.generate(
data.length,
(index) => castData(
data[index], type.substring(5, type.length - 1)));
case "int":
return List<int?>.generate(
data.length,
(index) => castData(
data[index], type.substring(5, type.length - 1)));
case "double":
return List<double?>.generate(
data.length,
(index) => castData(
data[index], type.substring(5, type.length - 1)));
case "bool":
return List<bool?>.generate(
data.length,
(index) => castData(
data[index], type.substring(5, type.length - 1)));
case "List<String>":
return List<List<String>?>.generate(
data.length,
(index) => castData(
data[index], type.substring(5, type.length - 1)));
case "List<int>":
return List<List<int?>>.generate(
data.length,
(index) => castData(
data[index], type.substring(5, type.length - 1)));
case "List<double>":
return List<List<double?>>.generate(
data.length,
(index) => castData(
data[index], type.substring(5, type.length - 1)));
case "List<bool>":
return List<List<bool>?>.generate(
data.length,
(index) => castData(
data[index], type.substring(5, type.length - 1)));
}
return List.generate(
data.length,
(index) =>
castData(data[index], type.substring(5, type.length - 1)));
}
}
} else {
if (debug) print("cast - not happened val $data type $type");
return data;
}
}