com.google.inject.PrivateBinder Maven / Gradle / Ivy
package com.google.inject;
import com.google.inject.binder.AnnotatedElementBuilder;
/**
* Returns a binder whose configuration information is hidden from its environment by default. See
* {@link com.google.inject.PrivateModule PrivateModule} for details.
*
*/
public interface PrivateBinder extends Binder {
/**
* Makes the binding for {@code key} available to the enclosing environment
*/
void expose(Key> key);
/**
* Makes a binding for {@code type} available to the enclosing environment. Use {@link
* com.google.inject.binder.AnnotatedElementBuilder#annotatedWith(Class) annotatedWith()} to expose {@code type}
* with a
* binding annotation.
*/
AnnotatedElementBuilder expose(Class> type);
/**
* Makes a binding for {@code type} available to the enclosing environment. Use {@link
* AnnotatedElementBuilder#annotatedWith(Class) annotatedWith()} to expose {@code type} with a
* binding annotation.
*/
AnnotatedElementBuilder expose(TypeLiteral> type);
PrivateBinder withSource(Object source);
PrivateBinder skipSources(Class>... classesToSkip);
}