override public object provide(Injector injector) { if (instance == null) { instance = sourceAbstractBinding.provide(injector); } return(instance); }
object resolveDependency(TypeDefinition typeDefinition) { AbstractBinding abstractBinding = null; if (!typeDefinition.builtIn) { abstractBinding = getBinding(typeDefinition); } object instance; if (abstractBinding != null) { instance = abstractBinding.provide(this); } else { instance = buildClass(typeDefinition); } return(instance); }