/** * Builds the. * * @return the injector */ Injector build() { if (shellBuilder == null) { throw new AssertionError("Already built, builders are not reusable."); } synchronized (shellBuilder.lock()) { shells = shellBuilder.build(initializer, bindingProcesor, stopwatch, errors); stopwatch.resetAndLog("Injector construction"); initializeStatically(); } if (stage == Stage.TOOL) { return new ToolStageInjector(primaryInjector()); } injectDynamically(); return primaryInjector(); }