get<T> static method

List<T> get<T>(
  1. String key, [
  2. BuildContext? context
])

Implementation

static List<T> get<T>(String key, [BuildContext? context]) {
  List<_CreatedExtension> extensions = [];

  // Check is there any object registered with same key
  if (_extensions.keys.contains(key)) {
    for (int i = 0; i < _extensions[key]!.length; i++) {
      var extItem = _extensions[key]![i];

      if (extItem is _ExtensionItemCollection) {
        // Create collection of extension objects
        var extensionCollection = extItem.create(context);

        // Add all single items from collection to extension list
        for (int i = 0; i < extensionCollection.length; i++) {
          extensions.add(_CreatedExtension(extensionCollection[i], 0));
        }
      } else {
        var item = extItem as _ExtensionItem;
        extensions.add(_CreatedExtension(item.create(context), item.weight));
      }
    }
  }

  // Sort extensions by weight. More weight, then closer to 0 index.
  extensions.sort((a, b) => a.weight.compareTo(b.weight));

  // Return only type T extensions
  return _getTypedExtensionsOnly<T>(extensions);
}