class Design extends LogSupport with DesignImpl
Immutable airframe design.
Design instance does not hold any duplicate bindings for the same Surface.
- Alphabetic
- By Inheritance
- Design
- DesignImpl
- LogSupport
- LazyLogger
- LoggingMethods
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new Design(designOptions: DesignOptions, binding: Vector[Binding], hooks: Vector[LifeCycleHookDesign])
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def +(other: Design): Design
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def add(other: Design): Design
- def addBinding[A](b: Binding): DesignWithContext[A]
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def bind(t: Surface)(implicit sourceCode: SourceCode): Binder[Any]
- macro def bind[A]: Binder[A]
- Definition Classes
- DesignImpl
- macro def build[A](body: (A) => Any): Any
A helper method of creating a new session and an instance of A.
A helper method of creating a new session and an instance of A. This method is useful when you only need to use A as an entry point of your program. After executing the body, the sesion will be closed.
- Definition Classes
- DesignImpl
- def canEqual(other: Any): Boolean
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- macro def debug(message: Any, cause: Throwable): Unit
- Attributes
- protected
- Definition Classes
- LoggingMethods
- macro def debug(message: Any): Unit
- Attributes
- protected
- Definition Classes
- LoggingMethods
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(other: Any): Boolean
- Definition Classes
- Design → AnyRef → Any
- macro def error(message: Any, cause: Throwable): Unit
- Attributes
- protected
- Definition Classes
- LoggingMethods
- macro def error(message: Any): Unit
- Attributes
- protected
- Definition Classes
- LoggingMethods
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- Design → AnyRef → Any
- macro def info(message: Any, cause: Throwable): Unit
- Attributes
- protected
- Definition Classes
- LoggingMethods
- macro def info(message: Any): Unit
- Attributes
- protected
- Definition Classes
- LoggingMethods
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- macro def logAt(logLevel: LogLevel, message: Any): Unit
- Attributes
- protected
- Definition Classes
- LoggingMethods
- lazy val logger: Logger
- Attributes
- protected[this]
- Definition Classes
- LazyLogger
- def minimize: Design
Generates a minimized design by removing overwritten bindings
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def newSession: Session
Create a new session.
Create a new session.
With this method, the session will not start automatically. You need to explicitly call session.start and session.shutdown to start/terminate the lifecycle of objects
- def newSessionBuilder: SessionBuilder
Method for configuring the session in details
- def noDefaultInstanceInjection: Design
- def noLifeCycleLogging: Design
- def noStats: Design
- def noTracer: Design
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def remove(t: Surface): Design
- macro def remove[A]: Design
- Definition Classes
- DesignImpl
- macro def run[A, B](body: (A) => B): B
Execute a given code block by building A using this design, and return B
Execute a given code block by building A using this design, and return B
- Definition Classes
- DesignImpl
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toDesign: Design
Used for casting itself as Design if returning DesignWithContext type is cumbersome
- def toString(): String
- Definition Classes
- Design → AnyRef → Any
- macro def trace(message: Any, cause: Throwable): Unit
- Attributes
- protected
- Definition Classes
- LoggingMethods
- macro def trace(message: Any): Unit
- Attributes
- protected
- Definition Classes
- LoggingMethods
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- macro def warn(message: Any, cause: Throwable): Unit
- Attributes
- protected
- Definition Classes
- LoggingMethods
- macro def warn(message: Any): Unit
- Attributes
- protected
- Definition Classes
- LoggingMethods
- def withLazyMode: Design
Do not initialize singletons for debugging
- def withLifeCycleLogging: Design
- def withProductionMode: Design
Enable eager initialization of singletons services for production mode
- def withSession[U](body: (Session) => U): U
Run the code block with a new session.
Run the code block with a new session.
This method will create a new session, start it, run the given code block, and finally terminate the session after the code block completion.
- def withStats(stats: DIStats): Design
- def withTracer(t: Tracer): Design
Use a custom binding tracer
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated