net.codingwell.scalaguice

ScalaModule

Related Docs: object ScalaModule | package scalaguice

trait ScalaModule extends AbstractModule

Allows binding via type parameters. Mix into AbstractModule (or subclass) to allow using a type parameter instead of classOf[Foo] or new TypeLiteral[Bar[Foo]] {}.

For example, instead of

class MyModule extends AbstractModule {
  def configure {
    bind(classOf[Service]).to(classOf[ServiceImpl]).in(classOf[Singleton])
    bind(classOf[CreditCardPaymentService])
    bind(new TypeLiteral[Bar[Foo]]{}).to(classOf[FooBarImpl])
    bind(classOf[PaymentService]).to(classOf[CreditCardPaymentService])
  }
}

use

class MyModule extends AbstractModule with ScalaModule {
  def configure {
    bind[Service].to[ServiceImpl].in[Singleton]
    bind[CreditCardPaymentService]
    bind[Bar[Foo]].to[FooBarImpl]
    bind[PaymentService].to[CreditCardPaymentService]
  }
}

Note This syntax allows binding to and from generic types. It doesn't currently allow bindings between wildcard types because the manifests for wildcard types don't provide access to type bounds.

Linear Supertypes
AbstractModule, Module, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. ScalaModule
  2. AbstractModule
  3. Module
  4. AnyRef
  5. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def configure(): Unit

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  4. def addError(arg0: Message): Unit

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  5. def addError(arg0: Throwable): Unit

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  6. def addError(arg0: String, arg1: <repeated...>[AnyRef]): Unit

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  7. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  8. def bind[T](implicit arg0: Manifest[T]): ScalaAnnotatedBindingBuilder[T] { ... /* 2 definitions in type refinement */ }

  9. def bind[T](arg0: Class[T]): AnnotatedBindingBuilder[T]

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  10. def bind[T](arg0: TypeLiteral[T]): AnnotatedBindingBuilder[T]

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  11. def bind[T](arg0: Key[T]): LinkedBindingBuilder[T]

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  12. def bindConstant(): AnnotatedConstantBindingBuilder

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  13. def bindInterceptor(arg0: Matcher[_ >: Class[_]], arg1: Matcher[_ >: Method], arg2: <repeated...>[MethodInterceptor]): Unit

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  14. def bindListener(arg0: Matcher[_ >: TypeLiteral[_]], arg1: TypeListener): Unit

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  15. def bindScope(arg0: Class[_ <: Annotation], arg1: Scope): Unit

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  16. def binder(): Binder

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  17. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def configure(arg0: Binder): Unit

    Definition Classes
    AbstractModule → Module
  19. def convertToTypes(arg0: Matcher[_ >: TypeLiteral[_]], arg1: TypeConverter): Unit

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  20. def currentStage(): Stage

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  21. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  22. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  23. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  24. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  25. def getMembersInjector[T](arg0: TypeLiteral[T]): MembersInjector[T]

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  26. def getMembersInjector[T](arg0: Class[T]): MembersInjector[T]

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  27. def getProvider[T](arg0: Class[T]): Provider[T]

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  28. def getProvider[T](arg0: Key[T]): Provider[T]

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  29. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  30. def install(arg0: Module): Unit

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  31. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  32. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  33. final def notify(): Unit

    Definition Classes
    AnyRef
  34. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  35. def requestInjection(arg0: Any): Unit

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  36. def requestStaticInjection(arg0: <repeated...>[Class[_]]): Unit

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  37. def requireBinding(arg0: Class[_]): Unit

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  38. def requireBinding(arg0: Key[_]): Unit

    Attributes
    protected[com.google.inject]
    Definition Classes
    AbstractModule
  39. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  40. def toString(): String

    Definition Classes
    AnyRef → Any
  41. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  42. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  43. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AbstractModule

Inherited from Module

Inherited from AnyRef

Inherited from Any

Ungrouped