/**
* Creates a new {@link ModuleRegistry}
*
* @param modules The modules in the registry to be created.
*/
public ModuleRegistry(@NonNull Map<Class, Module> modules) {
Validate.notNull(modules);
this.modules = new ImmutableBiMap.Builder<Class, Module>().putAll(modules).build();
DependencyGraph<Module> graph = new DependencyGraph<Module>();
this.modules.values().forEach(module -> {
graph.add(module);
ModuleEntry moduleEntry = module.getClass().getAnnotation(ModuleEntry.class);
for (Class dep : moduleEntry.depends()) {
graph.addDependency(module, modules.get(dep));
}
for (Class before : moduleEntry.loadBefore()) {
graph.addDependency(modules.get(before), module);
}
});
loadOrder = graph.evaluateDependencies();
}
ModuleRegistry.java 文件源码
java
阅读 33
收藏 0
点赞 0
评论 0
项目:Cardinal
作者:
评论列表
文章目录