getChildKeys method

  1. @override
Iterable<String> getChildKeys(
  1. Iterable<String> earlierKeys,
  2. String? parentPath
)
override

Returns the list of keys that this provider has.

Implementation

@override
Iterable<String> getChildKeys(
  Iterable<String> earlierKeys,
  String? parentPath,
) {
  var results = <String>[];
  if (parentPath == null) {
    data.forEach((key, value) {
      results.add(_segment(key, 0));
    });
  } else {
    assert(ConfigurationPath.keyDelimiter == ':');
    data.forEach((key, value) {
      if ((key.length > parentPath.length) &&
          key.toLowerCase().startsWith(parentPath.toLowerCase()) &&
          key[parentPath.length] == ':') {
        results.add(_segment(key, parentPath.length + 1));
      }
    });
  }

  results.addAll(earlierKeys);
  return results..sort(configurationKeyComparator);
}