com.google.inject
Class AbstractModule

java.lang.Object
  extended by com.google.inject.AbstractModule
All Implemented Interfaces:
Module
Direct Known Subclasses:
ServletModule

public abstract class AbstractModule
extends Object
implements Module

A support class for Modules which reduces repetition and results in a more readable configuration. Simply extend this class, implement configure(), and call the inherited methods which mirror those found in Binder. For example:

 public class MyModule extends AbstractModule {
   protected void configure() {
     bind(Service.class).to(ServiceImpl.class).in(Singleton.class);
     bind(CreditCardPaymentService.class);
     bind(PaymentService.class).to(CreditCardPaymentService.class);
     bindConstant().annotatedWith(Names.named("port")).to(8080);
   }
 }
 


Constructor Summary
AbstractModule()
           
 
Method Summary
protected  void addError(Message message)
           
protected  void addError(String message, Object... arguments)
           
protected  void addError(Throwable t)
           
protected
<T> AnnotatedBindingBuilder<T>
bind(Class<T> clazz)
           
protected
<T> LinkedBindingBuilder<T>
bind(Key<T> key)
           
protected
<T> AnnotatedBindingBuilder<T>
bind(TypeLiteral<T> typeLiteral)
           
protected  AnnotatedConstantBindingBuilder bindConstant()
           
protected  Binder binder()
          Gets direct access to the underlying Binder.
protected  void bindInterceptor(Matcher<? super Class<?>> classMatcher, Matcher<? super Method> methodMatcher, MethodInterceptor... interceptors)
           
protected  void bindListener(Matcher<? super TypeLiteral<?>> typeMatcher, TypeListener listener)
           
protected  void bindScope(Class<? extends Annotation> scopeAnnotation, Scope scope)
           
protected abstract  void configure()
          Configures a Binder via the exposed methods.
 void configure(Binder builder)
          Contributes bindings and other configurations for this module to binder.
protected  void convertToTypes(Matcher<? super TypeLiteral<?>> typeMatcher, TypeConverter converter)
           
protected  Stage currentStage()
           
protected
<T> MembersInjector<T>
getMembersInjector(Class<T> type)
           
protected
<T> MembersInjector<T>
getMembersInjector(TypeLiteral<T> type)
           
protected
<T> Provider<T>
getProvider(Class<T> type)
           
protected
<T> Provider<T>
getProvider(Key<T> key)
           
protected  void install(Module module)
           
protected  void requestInjection(Object instance)
           
protected  void requestStaticInjection(Class<?>... types)
           
protected  void requireBinding(Class<?> type)
          Adds a dependency from this module to type.
protected  void requireBinding(Key<?> key)
          Adds a dependency from this module to key.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractModule

public AbstractModule()
Method Detail

configure

public final void configure(Binder builder)
Description copied from interface: Module
Contributes bindings and other configurations for this module to binder.

Do not invoke this method directly to install submodules. Instead use Binder.install(Module), which ensures that provider methods are discovered.

Specified by:
configure in interface Module

configure

protected abstract void configure()
Configures a Binder via the exposed methods.


binder

protected Binder binder()
Gets direct access to the underlying Binder.


bindScope

protected void bindScope(Class<? extends Annotation> scopeAnnotation,
                         Scope scope)
See Also:
Binder.bindScope(Class, Scope)

bind

protected <T> LinkedBindingBuilder<T> bind(Key<T> key)
See Also:
Binder.bind(Key)

bind

protected <T> AnnotatedBindingBuilder<T> bind(TypeLiteral<T> typeLiteral)
See Also:
Binder.bind(TypeLiteral)

bind

protected <T> AnnotatedBindingBuilder<T> bind(Class<T> clazz)
See Also:
Binder.bind(Class)

bindConstant

protected AnnotatedConstantBindingBuilder bindConstant()
See Also:
Binder.bindConstant()

install

protected void install(Module module)
See Also:
Binder.install(Module)

addError

protected void addError(String message,
                        Object... arguments)
See Also:
Binder.addError(String, Object[])

addError

protected void addError(Throwable t)
See Also:
Binder.addError(Throwable)

addError

protected void addError(Message message)
Since:
2.0
See Also:
Binder.addError(Message)

requestInjection

protected void requestInjection(Object instance)
Since:
2.0
See Also:
Binder.requestInjection(Object)

requestStaticInjection

protected void requestStaticInjection(Class<?>... types)
See Also:
Binder.requestStaticInjection(Class[])

bindInterceptor

protected void bindInterceptor(Matcher<? super Class<?>> classMatcher,
                               Matcher<? super Method> methodMatcher,
                               MethodInterceptor... interceptors)
See Also:
Binder.bindInterceptor(com.google.inject.matcher.Matcher, com.google.inject.matcher.Matcher, org.aopalliance.intercept.MethodInterceptor[])

requireBinding

protected void requireBinding(Key<?> key)
Adds a dependency from this module to key. When the injector is created, Guice will report an error if key cannot be injected. Note that this requirement may be satisfied by implicit binding, such as a public no-arguments constructor.

Since:
2.0

requireBinding

protected void requireBinding(Class<?> type)
Adds a dependency from this module to type. When the injector is created, Guice will report an error if type cannot be injected. Note that this requirement may be satisfied by implicit binding, such as a public no-arguments constructor.

Since:
2.0

getProvider

protected <T> Provider<T> getProvider(Key<T> key)
Since:
2.0
See Also:
Binder.getProvider(Key)

getProvider

protected <T> Provider<T> getProvider(Class<T> type)
Since:
2.0
See Also:
Binder.getProvider(Class)

convertToTypes

protected void convertToTypes(Matcher<? super TypeLiteral<?>> typeMatcher,
                              TypeConverter converter)
Since:
2.0
See Also:
Binder.convertToTypes(com.google.inject.matcher.Matcher>, com.google.inject.spi.TypeConverter)

currentStage

protected Stage currentStage()
Since:
2.0
See Also:
Binder.currentStage()

getMembersInjector

protected <T> MembersInjector<T> getMembersInjector(Class<T> type)
Since:
2.0
See Also:
Binder.getMembersInjector(Class)

getMembersInjector

protected <T> MembersInjector<T> getMembersInjector(TypeLiteral<T> type)
Since:
2.0
See Also:
Binder.getMembersInjector(TypeLiteral)

bindListener

protected void bindListener(Matcher<? super TypeLiteral<?>> typeMatcher,
                            TypeListener listener)
Since:
2.0
See Also:
Binder.bindListener(com.google.inject.matcher.Matcher, com.google.inject.spi.TypeListener)