get<T> static method
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);
}