AvailablePreferenceImportances.loadFromJSONString constructor
- String preferenceImportancesString
Load constructor; may throw an exception.
Implementation
AvailablePreferenceImportances.loadFromJSONString(
final String preferenceImportancesString,
) {
final List<String> importanceIds = <String>[];
final Map<String, PreferenceImportance> preferenceImportances =
<String, PreferenceImportance>{};
final Map<String, int> importancesReverseIds = <String, int>{};
final dynamic inputJson =
HttpHelper().jsonDecode(preferenceImportancesString);
for (final dynamic item in inputJson as List<dynamic>) {
final PreferenceImportance preferenceImportance =
PreferenceImportance.fromJson(item);
final String? id = preferenceImportance.id;
if (id != null) {
preferenceImportances[id] = preferenceImportance;
importanceIds.add(id);
importancesReverseIds[id] = importanceIds.length - 1;
}
}
if (importanceIds.isEmpty) {
throw Exception(
'Unexpected error: empty preference importance list from json string $preferenceImportancesString');
}
int i = 0;
for (final String preferenceImportanceId in importanceIds) {
importancesReverseIds[preferenceImportanceId] = i++;
}
_importanceIds = importanceIds;
_preferenceImportances = preferenceImportances;
_importancesReverseIds = importancesReverseIds;
}