ModuleRegistry.java 文件源码

java
阅读 33 收藏 0 点赞 0 评论 0

项目:Cardinal 作者:
/**
 * 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();
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号