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 ( ) ; }
Initialize and validate everything .