applicationDefinitions static method
Every definition of modules and of the modules they import, once.
Implementation
static List<BeanDefinition<Object>> applicationDefinitions(
Iterable<BeanModule> modules,
) {
final seen = Set<BeanModule>.identity();
final found = <BeanDefinition<Object>>[];
void visit(BeanModule module) {
if (!seen.add(module)) {
return;
}
module.imports.forEach(visit);
found.addAll(module.definitions);
}
modules.forEach(visit);
return found;
}