getDependency<T extends Object> method
Retrieves the underlying Dependency object from the registry.
visited is for internal cycle-detection — see isRegistered.
Implementation
Option<Result<Dependency<T>>> getDependency<T extends Object>({
Entity groupEntity = const DefaultEntity(),
bool traverse = true,
Set<DI>? visited,
}) {
final v = visited ?? <DI>{};
if (!v.add(this as DI)) return const None();
final g = groupEntity.preferOverDefault(focusGroup);
final option = registry.getDependency<T>(groupEntity: g);
var temp = option.map((e) => Ok(e).transf<Dependency<T>>());
if (option case None() when traverse) {
for (final parent in parents) {
temp = parent.getDependency<T>(
groupEntity: g,
visited: v,
);
if (temp case Some()) {
break;
}
}
}
return temp;
}