getMultiKeyParsed<T> method

T? getMultiKeyParsed<T>(
  1. List<K> keys,
  2. TypeElementParser<T>? parser, {
  3. T? defaultValue,
  4. bool ignoreCase = false,
})

Same as getParsed but accepts multiple keys.

Implementation

T? getMultiKeyParsed<T>(List<K> keys, TypeElementParser<T>? parser,
    {T? defaultValue, bool ignoreCase = false}) {
  V? value;
  if (ignoreCase) {
    for (var k in keys) {
      value = getIgnoreCase(k);
      if (value != null) break;
    }
  } else {
    for (var k in keys) {
      value = this[k];
      if (value != null) break;
    }
  }

  T? v;
  if (parser != null) {
    v = parser(value);
  } else if (value is T?) {
    v = value;
  } else {
    throw ArgumentError(
        "Can't parse key('${keys.join("','")}') value as `$T`: $value");
  }

  return v ?? defaultValue;
}