private void initializeStatically() {
    bindingData.initializeBindings();
    stopwatch.resetAndLog("Binding initialization");

    for (InjectorShell shell : shells) {
      shell.getInjector().index();
    }
    stopwatch.resetAndLog("Binding indexing");

    injectionRequestProcessor.process(shells);
    stopwatch.resetAndLog("Collecting injection requests");

    bindingData.runCreationListeners(errors);
    stopwatch.resetAndLog("Binding validation");

    injectionRequestProcessor.validate();
    stopwatch.resetAndLog("Static validation");

    initializer.validateOustandingInjections(errors);
    stopwatch.resetAndLog("Instance member validation");

    new LookupProcessor(errors).process(shells);
    for (InjectorShell shell : shells) {
      ((DeferredLookups) shell.getInjector().lookups).initialize(errors);
    }
    stopwatch.resetAndLog("Provider verification");

    // This needs to come late since some user bindings rely on requireBinding calls to create
    // jit bindings during the LookupProcessor.
    bindingData.initializeDelayedBindings();
    stopwatch.resetAndLog("Delayed Binding initialization");

    for (InjectorShell shell : shells) {
      if (!shell.getElements().isEmpty()) {
        throw new AssertionError("Failed to execute " + shell.getElements());
      }
    }

    errors.throwCreationExceptionIfErrorsExist();
  }
private void initializeStatically ( ) { bindingData . initializeBindings ( ) ; stopwatch . resetAndLog ( "Binding initialization" ) ; for ( InjectorShell shell : shells ) { shell . getInjector ( ) . index ( ) ; } stopwatch . resetAndLog ( "Binding indexing" ) ; injectionRequestProcessor . process ( shells ) ; stopwatch . resetAndLog ( "Collecting injection requests" ) ; bindingData . runCreationListeners ( errors ) ; stopwatch . resetAndLog ( "Binding validation" ) ; injectionRequestProcessor . validate ( ) ; stopwatch . resetAndLog ( "Static validation" ) ; initializer . validateOustandingInjections ( errors ) ; stopwatch . resetAndLog ( "Instance member validation" ) ; new LookupProcessor ( errors ) . process ( shells ) ; for ( InjectorShell shell : shells ) { ( ( DeferredLookups ) shell . getInjector ( ) . lookups ) . initialize ( errors ) ; } stopwatch . resetAndLog ( "Provider verification" ) ; bindingData . initializeDelayedBindings ( ) ; stopwatch . resetAndLog ( "Delayed Binding initialization" ) ; for ( InjectorShell shell : shells ) { if ( ! shell . getElements ( ) . isEmpty ( ) ) { throw new AssertionError ( "Failed to execute " + shell . getElements ( ) ) ; } } errors . throwCreationExceptionIfErrorsExist ( ) ; }
Initialize and validate everything.