getDependencyK<T extends Object> method
Option<Result<Dependency<T> > >
getDependencyK<T extends Object>(
- Entity typeEntity, {
- Entity groupEntity = const DefaultEntity(),
- bool traverse = true,
- Set<
DI> ? visited,
inherited
Retrieves the underlying Dependency object.
visited is for internal cycle-detection on misconfigured hierarchies
(e.g. a.parents.add(b) and b.parents.add(a)). Callers should leave
it null.
Implementation
Option<Result<Dependency<T>>> getDependencyK<T extends Object>(
Entity typeEntity, {
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.getDependencyK(typeEntity, 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 as SupportsMixinK).getDependencyK(
typeEntity,
groupEntity: g,
visited: v,
);
if (temp case Some()) {
break;
}
}
}
return temp;
}