class PrivateElementProcessor extends AbstractProcessor {

    private final Stage stage;
    private final List<InjectorShell.Builder> injectorShellBuilders = new ArrayList<>();

    PrivateElementProcessor(Errors errors, Stage stage) {
        super(errors);
        this.stage = stage;
    }

    @Override
    public Boolean visit(PrivateElements privateElements) {<FILL_FUNCTION_BODY>}

    public List<InjectorShell.Builder> getInjectorShellBuilders() {
        return injectorShellBuilders;
    }
}

        InjectorShell.Builder builder = new InjectorShell.Builder()
                .parent(injector)
                .stage(stage)
                .privateElements(privateElements);
        injectorShellBuilders.add(builder);
        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