new Linker((base != null) ? base.linker : null, plugin, new ThrowingErrorHandler()); linker.installBindings(baseBindings); linker.installBindings(overrideBindings);
private static ObjectGraph makeGraph(ObjectGraph base, Plugin plugin, Object... modules) { Map<String, Class<?>> entryPoints = new LinkedHashMap<String, Class<?>>(); Map<Class<?>, StaticInjection> staticInjections = new LinkedHashMap<Class<?>, StaticInjection>(); // Extract bindings in the 'base' and 'overrides' set. Within each set no // duplicates are permitted. Map<String, Binding<?>> baseBindings = new UniqueMap<String, Binding<?>>(); Map<String, Binding<?>> overrideBindings = new UniqueMap<String, Binding<?>>(); for (ModuleAdapter<?> moduleAdapter : getAllModuleAdapters(plugin, modules).values()) { for (String key : moduleAdapter.entryPoints) { entryPoints.put(key, moduleAdapter.getModule().getClass()); } for (Class<?> c : moduleAdapter.staticInjections) { staticInjections.put(c, null); } Map<String, Binding<?>> addTo = moduleAdapter.overrides ? overrideBindings : baseBindings; moduleAdapter.getBindings(addTo); } // Create a linker and install all of the user's bindings Linker linker = new Linker((base != null) ? base.linker : null, plugin, new ThrowingErrorHandler()); linker.installBindings(baseBindings); linker.installBindings(overrideBindings); return new ObjectGraph(base, linker, plugin, staticInjections, entryPoints); }