DI class final

Constructors

DI.new()

Properties

childrenContainer Option<DI>
Container for child DI instances.
getter/setter pairinherited
completersK Map<Entity, List<ReservedSafeCompleter<Object>>>
Stores completers for untilExactlyK.
finalinherited
focusGroup Entity
A key that identifies the current group in focus for dependency management.
getter/setter pairinherited
hashCode int
The hash code for this object.
no setterinherited
parents Set<DI>
Parent containers.
finalinherited
registry → DIRegistry
Internal registry that stores dependencies.
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

call<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) → T
inherited
child({Entity groupEntity = const DefaultEntity()}) DI
inherited
children() Option<Iterable<DI>>
Retrieves an iterable of child DI instances.
inherited
get<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Resolvable<T>>
Retrieves a dependency from the container. Retrieves a dependency from the container.
inherited
getAsync<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Async<T>>
inherited
getAsyncK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Async<T>>
Retrieves an asynchronous dependency.
inherited
getAsyncT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Async<T>>
Retrieves an asynchronous dependency.
inherited
getAsyncUnsafe<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Future<T>
Retrieves an asynchronous dependency unsafely, returning a future of the instance or throwing an error if not found.
inherited
getAsyncUnsafeK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Future<T>
Retrieves an asynchronous dependency unsafely, returning a future of the instance, directly or throwing an error if not found.
inherited
getAsyncUnsafeT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Future<T>
Retrieves an asynchronous dependency unsafely, returning a future of the instance, directly or throwing an error if not found.
inherited
getChild({Entity groupEntity = const DefaultEntity()}) Option<Result<DI>>
inherited
getChildOrNone({Entity groupEntity = const DefaultEntity()}) Option<DI>
inherited
getChildT({Entity groupEntity = const DefaultEntity()}) Option<Result<DI>>
inherited
getDependency<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Result<Dependency<T>>>
Retrieves the underlying Dependency object from the registry.
inherited
getDependencyK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Result<Dependency<T>>>
Retrieves the underlying Dependency object.
inherited
getDependencyT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Result<Dependency<T>>>
Retrieves the underlying Dependency object.
inherited
getFactory<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Resolvable<T>>
Retrieves the factory dependency.
inherited
getFactoryK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Resolvable<T>>
Retrieves the factory dependency.
inherited
getFactorySyncOrNone<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<T>
Retrieves the lazily loaded factory dependency unsafely, returning the instance as an Option.
inherited
getFactoryT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Resolvable<T>>
Retrieves the factory dependency.
inherited
getFactoryUnsafe<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) FutureOr<T>
Retrieves the factory dependency unsafely, returning the instance directly or throwing an error if not found.
inherited
getFactoryUnsafeK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) FutureOr<T>
Retrieves the factory dependency, returning the instance directly or throwing an error if not found.
inherited
getFactoryUnsafeT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) FutureOr<T>
Retrieves the factory dependency unsafely, returning the instance directly or throwing an error if not found.
inherited
getK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Resolvable<T>>
Retrieves the dependency.
inherited
getLazy<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Resolvable<Lazy<T>>>
Retrieves the lazily loaded dependency.
inherited
getLazyFactorySyncOrNoneK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<T>
Retrieves the lazily loaded factory dependency unsafely, returning the instance as an Option.
inherited
getLazyFactorySyncOrNoneT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<T>
Retrieves the lazily loaded factory dependency unsafely, returning the instance as an Option.
inherited
getLazyK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Resolvable<Lazy<T>>>
Retrieves the lazily loaded dependency.
inherited
getLazySingleton<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Resolvable<T>>
Retrieves the lazily loaded singleton dependency.
inherited
getLazySingletonK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Resolvable<T>>
Retrieves the lazily loaded singleton dependency.
inherited
getLazySingletonSyncOrNone<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<T>
Retrieves the lazily loaded singleton dependency unsafely, returning the instance as an Option.
inherited
getLazySingletonSyncOrNoneK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<T>
Retrieves the lazily loaded singleton dependency unsafely, returning the instance as an Option.
inherited
getLazySingletonSyncOrNoneT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<T>
Retrieves the lazily loaded singleton dependency unsafely, returning the instance as an Option.
inherited
getLazySingletonT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Resolvable<T>>
Retrieves the lazily loaded singleton dependency.
inherited
getLazySingletonUnsafe<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) FutureOr<T>
Retrieves the lazily loaded singleton dependency unsafely, returning the instance directly or throwing an error if not found or not a singleton.
inherited
getLazySingletonUnsafeK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) FutureOr<T>
Retrieves the lazily loaded singleton dependency unsafely, returning the instance directly or throwing an error if not found or not a singleton.
inherited
getLazySingletonUnsafeT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) FutureOr<Object>
Retrieves the lazily loaded singleton dependency unsafely, returning the instance directly or throwing an error if not found or not a singleton.
inherited
getLazySyncOrNone<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Lazy<T>>
Retrieves the lazily loaded dependency.
inherited
getLazySyncOrNoneK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Lazy<T>>
Retrieves the lazily loaded dependency.
inherited
getLazySyncOrNoneT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Lazy<T>>
Retrieves the lazily loaded dependency.
inherited
getLazyT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Resolvable<Lazy<T>>>
Retrieves the lazily loaded dependency.
inherited
getLazyUnsafe<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) FutureOr<Lazy<T>>
Retrieves the lazily loaded singleton dependency unsafely, returning the instance directly or throwing an error if not found or not a singleton.
inherited
getLazyUnsafeK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) FutureOr<Lazy<T>>
Retrieves the lazily loaded dependency, returning the instance directly or throwing an error if not found.
inherited
getLazyUnsafeT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) FutureOr<Lazy<T>>
Retrieves the lazily loaded dependency, returning the instance directly or throwing an error if not found or not a singleton.
inherited
getSync<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Sync<T>>
Retrieves a synchronous dependency.
inherited
getSyncK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Sync<T>>
Retrieves the synchronous dependency.
inherited
getSyncOrNone<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<T>
Retrieves a synchronous dependency or None if not found or async.
inherited
getSyncOrNoneK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<T>
Retrieves the synchronous dependency or None if not found or async.
inherited
getSyncOrNoneT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<T>
Retrieves the synchronous dependency or None if not found or async.
inherited
getSyncT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Sync<T>>
Retrieves the synchronous dependency.
inherited
getSyncUnsafe<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) → T
Retrieves a synchronous dependency.
inherited
getSyncUnsafeK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) → T
Retrieves the synchronous dependency unsafely, returning the instance directly.
inherited
getSyncUnsafeT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) → T
Retrieves the synchronous dependency unsafely, returning the instance directly.
inherited
getT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Option<Resolvable<T>>
Retrieves the dependency.
inherited
getUnsafe<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) FutureOr<T>
Retrieves a dependency unsafely, returning the instance or a future of it, or throwing an error if not found.
inherited
getUnsafeK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) FutureOr<T>
Retrieves a dependency unsafely, returning it directly or throwing an error if not found.
inherited
getUnsafeT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) FutureOr<T>
Retrieves a dependency unsafely, returning it directly or throwing an error if not found.
inherited
isChildRegistered<T extends Object>({Entity groupEntity = const DefaultEntity()}) bool
inherited
isChildRegisteredT<T extends Object>({Entity groupEntity = const DefaultEntity()}) bool
inherited
isRegistered<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) bool
Retrieves a synchronous dependency unsafely, returning the instance directly or throwing an error if not found or async.
inherited
isRegisteredK(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) bool
Checks if a dependency is registered.
inherited
isRegisteredT(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) bool
Checks if a dependency is registered.
inherited
maybeFinishK<T extends Object>({required Entity g}) → void
Attempts to finish any pending untilExactlyK calls for the given type and group.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
register<T extends Object>(FutureOr<T> value, {TOnRegisterCallback<T>? onRegister, TOnUnregisterCallback<T>? onUnregister, Entity groupEntity = const DefaultEntity(), bool enableUntilExactlyK = false}) Resolvable<T>
Registers a dependency with the container.
inherited
registerAndInitService<TService extends ServiceMixin>(TService service, {TOnRegisterCallback<TService>? onRegister, TOnUnregisterCallback<TService>? onUnregister, Entity groupEntity = const DefaultEntity(), bool enableUntilExactlyK = false}) Resolvable<Unit>
inherited
registerChild({Entity groupEntity = const DefaultEntity()}) Resolvable<Lazy<DI>>
inherited
registerConstructor<T extends Object>(FutureOr<T> constructor(), {TOnRegisterCallback<Lazy<T>>? onRegister, TOnUnregisterCallback<Lazy<T>>? onUnregister, Entity groupEntity = const DefaultEntity()}) Resolvable<Lazy<T>>
Registers a lazy dependency.
inherited
registerDependency<T extends Object>({required Dependency<T> dependency, bool checkExisting = false}) Result<Dependency<T>>
Registers a Dependency object directly into the registry.
inherited
registerDependencyK<T extends Object>({required Dependency<T> dependency, bool checkExisting = false}) Result<Dependency<T>>
Retrieves the underlying Dependency object.
inherited
registerLazy<T extends Object>(LazyConstructor<T> constructor, {TOnRegisterCallback<Lazy<T>>? onRegister, TOnUnregisterCallback<Lazy<T>>? onUnregister, Entity groupEntity = const DefaultEntity()}) Resolvable<Lazy<T>>
Registers a lazy dependency.
inherited
removeDependency<T extends Object>({Entity groupEntity = const DefaultEntity()}) Option<Dependency<Object>>
Removes a dependency from the internal registry.
inherited
removeDependencyK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity()}) Option<Dependency<Object>>
Removes a dependency from the registry.
inherited
removeDependencyT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity()}) Option<Dependency<Object>>
Removes a dependency from the registry.
inherited
resetLazySingleton<T extends Object>({Entity groupEntity = const DefaultEntity()}) Resolvable<Unit>
Resets the singleton instance of a lazily loaded dependency.
inherited
resetLazySingletonK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity()}) Resolvable<Unit>
Resets the singleton instance of a lazily loaded dependency.
inherited
resetLazySingletonT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity()}) Resolvable<Unit>
Resets the singleton instance of a lazily loaded dependency.
inherited
resolveAll({Entity? groupEntity = const DefaultEntity()}) Resolvable<Unit>
Completes once all Async dependencies associated with groupEntity complete or any group if groupEntity is null.
inherited
toString() String
A string representation of this object.
inherited
unregister<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true, bool removeAll = true, bool triggerOnUnregisterCallbacks = true}) Resolvable<Option<T>>
Unregisters a dependency.
inherited
unregisterAll({TOnUnregisterCallback<Dependency<Object>>? onBeforeUnregister, TOnUnregisterCallback<Dependency<Object>>? onAfterUnregister, bool condition(Dependency<Object>)?}) Resolvable<Unit>
Unregisters all dependencies, optionally with callbacks and conditions.
inherited
unregisterChild({Entity groupEntity = const DefaultEntity()}) Result<Option<DI>>
inherited
unregisterChildT(Type type, {Entity groupEntity = const DefaultEntity()}) Result<Option<DI>>
inherited
unregisterK(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true, bool removeAll = true, bool triggerOnUnregisterCallbacks = true}) Resolvable<Option<Object>>
Unregisters a dependency.
inherited
unregisterLazy<T extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true, bool removeAll = true, bool triggerOnUnregisterCallbacks = true}) Resolvable<Option<Object>>
Unregisters a lazily loaded dependency.
inherited
unregisterLazyK(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true, bool removeAll = true, bool triggerOnUnregisterCallbacks = true}) Resolvable<Option<Object>>
Retrieves the lazily loaded singleton dependency.
inherited
unregisterLazyT(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true, bool removeAll = true, bool triggerOnUnregisterCallbacks = true}) Resolvable<Option<Object>>
Unregisters a lazily loaded dependency.
inherited
unregisterT(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true, bool removeAll = true}) Resolvable<Option<Object>>
Unregisters a dependency.
inherited
until<TSuper extends Object, TSub extends TSuper>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<TSub>
Waits until a dependency of type TSuper or its subtype TSub is registered. TSuper should typically be the most general type expected.
inherited
untilExactlyK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<T>
Waits until a dependency with the exact typeEntity is registered. The result is cast to T.
inherited
untilExactlyT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<T>
Waits until a dependency with the exact typeEntity is registered. The result is cast to T.
inherited
untilFactory<TSuper extends Object, TSub extends TSuper>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<TSub>
Waits until a dependency of type TSuper or its subtype TSub is registered. TSuper should typically be the most general type expected.
inherited
untilFactoryExactlyK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<T>
Waits until a dependency of type TSuper is registered. TSuper should typically be the most general type expected.
inherited
untilFactoryExactlyT<T extends Object>(T type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<T>
Waits until a dependency of type TSuper is registered. TSuper should typically be the most general type expected.
inherited
untilFactorySuper<TSuper extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<TSuper>
Waits until a dependency of type TSuper is registered. TSuper should typically be the most general type expected.
inherited
untilLazy<TSuper extends Object, TSub extends TSuper>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<Lazy<TSub>>
Waits until a dependency of type TSuper or its subtype TSub is registered. TSuper should typically be the most general type expected.
inherited
untilLazyExactlyK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<Lazy<T>>
You must register dependencies via register and set its parameter enableUntilExactlyK to true to use this method.
inherited
untilLazyExactlyT<T extends Object>(Type type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<Lazy<T>>
You must register dependencies via register and set its parameter enableUntilExactlyK to true to use this method.
inherited
untilLazySingleton<TSuper extends Object, TSub extends TSuper>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<TSub>
Waits until a dependency of type TSuper or its subtype TSub is registered. TSuper should typically be the most general type expected.
inherited
untilLazySingletonSuper<TSuper extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<TSuper>
Waits until a dependency of type TSuper is registered. TSuper should typically be the most general type expected.
inherited
untilLazySingletonyExactlyK<T extends Object>(Entity typeEntity, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<T>
Waits until a dependency of type TSuper is registered. TSuper should typically be the most general type expected.
inherited
untilLazySingletonyExactlyT<T extends Object>(T type, {Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<T>
Waits until a dependency of type TSuper is registered. TSuper should typically be the most general type expected.
inherited
untilLazySuper<TSuper extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<Lazy<TSuper>>
Waits until a dependency of type TSuper is registered. TSuper should typically be the most general type expected.
inherited
untilSuper<TSuper extends Object>({Entity groupEntity = const DefaultEntity(), bool traverse = true}) Resolvable<TSuper>
Waits until a dependency of type TSuper is registered. TSuper should typically be the most general type expected.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

dev DI
A predefined container recommended for objects intended for development environments. This container is a child of root.
no setter
global DI
A predefined container recommended for global dependencies. This container is a child of root.
no setter
prod DI
A predefined container recommended for objects intended for production environments. This container is a child of root.
no setter
root DI
A predefined container recommended for application-wide dependencies. This container serves as the parent for other containers.
final
session DI
A predefined container recommended for session-specific dependencies. This container is a child of global.
no setter
test DI
A predefined container recommended for objects intended for testing environments. This container is a child of root.
no setter
theme DI
A predefined container recommended for theme-related objects. This container is a child of root.
no setter
user DI
A predefined container recommended for user-specific dependencies. This container is a child of session.
no setter