getBool method
Implementation
@override
bool? getBool(Object? value, bool? defaultValue) {
if (value == null) {
return defaultValue;
} else if (value is bool) {
// exactly
return value;
} else if (value is num) { // int, double
if (value is double) {
assert(value == 1.0 || value == 0.0, 'bool value error: $value');
return value != 0.0;
}
assert(value == 1 || value == 0, 'bool value error: $value');
return value != 0;
}
String text = getStr(value);
text = text.trim();
int size = text.length;
if (size == 0) {
return false;
} else if (size > Converter.MAX_BOOLEAN_LEN) {
throw FormatException('bool value error: "$value"');
} else {
text = text.toLowerCase();
}
bool? state = Converter.BOOLEAN_STATES[text];
if (state == null) {
throw FormatException('bool value error: "$value"');
}
return state;
}