class LookupProcessor extends AbstractProcessor {

    LookupProcessor(Errors errors) {
        super(errors);
    }

    @Override
    public <T> Boolean visit(MembersInjectorLookup<T> lookup) {<FILL_FUNCTION_BODY>}

    @Override
    public <T> Boolean visit(ProviderLookup<T> lookup) {
        // ensure the provider can be created
        try {
            Provider<T> provider = injector.getProviderOrThrow(lookup.getKey(), errors);
            lookup.initializeDelegate(provider);
        } catch (ErrorsException e) {
            errors.merge(e.getErrors()); // TODO: source
        }

        return true;
    }
}

        try {
            MembersInjector<T> membersInjector
                    = injector.membersInjectorStore.get(lookup.getType(), errors);
            lookup.initializeDelegate(membersInjector);
        } catch (ErrorsException e) {
            errors.merge(e.getErrors()); // TODO: source
        }

        return true;
    
<methods>public void process(Iterable<org.elasticsearch.common.inject.InjectorShell>) ,public void process(org.elasticsearch.common.inject.InjectorImpl, List<org.elasticsearch.common.inject.spi.Element>) ,public java.lang.Boolean visit(org.elasticsearch.common.inject.spi.Message) ,public java.lang.Boolean visit(org.elasticsearch.common.inject.spi.ScopeBinding) ,public java.lang.Boolean visit(InjectionRequest#RAW) ,public java.lang.Boolean visit(org.elasticsearch.common.inject.spi.StaticInjectionRequest) ,public java.lang.Boolean visit(org.elasticsearch.common.inject.spi.TypeConverterBinding) ,public java.lang.Boolean visit(Binding<T>) ,public java.lang.Boolean visit(ProviderLookup<T>) ,public java.lang.Boolean visit(org.elasticsearch.common.inject.spi.PrivateElements) ,public java.lang.Boolean visit(MembersInjectorLookup<T>) ,public java.lang.Boolean visit(org.elasticsearch.common.inject.spi.TypeListenerBinding) <variables>protected org.elasticsearch.common.inject.internal.Errors errors,protected org.elasticsearch.common.inject.InjectorImpl injector