trait Effect extends AutoInject[Effect] with EffectLike
Effect for dependency handling in runtime classpath. When effective injection is performed, only the activated ones of all effects are candidates for injection.
object Effects { def getKind = sys.props.getOrElse("env", "local") object LOCAL extends Effect { def activate: Boolean = getKind == "local" } object DEV extends Effect { def activate: Boolean = getKind == "dev" } object STG extends Effect { def activate: Boolean = getKind == "stg" } object PRD extends Effect { def activate: Boolean = getKind == "prd" } } @Effective(LOCAL) object LocalRuntimeSetting extends Setting with AutoInject[Setting] @Effective(DEV) object DevRuntimeSetting extends Setting with AutoInject[Setting] @Effective(STG) object StgRuntimeSetting extends Setting with AutoInject[Setting] @Effective(PRD) object PrdRuntimeSetting extends Setting with AutoInject[Setting]
- Self Type
- Effect
- Alphabetic
- By Inheritance
- Effect
- EffectLike
- AutoInject
- Injector
- MetaMediation
- CanBeContainer
- AutoInjectable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def activate: Boolean
- Definition Classes
- EffectLike
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##(): Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- implicit val _cntMutation: Container
- Definition Classes
- Injector → CanBeContainer
- implicit def _ijp: InjectionPool
Implicitly injection pool
Implicitly injection pool
- Attributes
- protected
- Definition Classes
- MetaMediation → CanBeContainer
- implicit def _someoneNeeds: Accessor[_]
- Attributes
- protected
- Definition Classes
- CanBeContainer
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- macro def bind[T](implicit ctn: Container, ip: InjectionPool, access: Accessor[_]): T
Get accessible dependencies.
Get accessible dependencies. You can detect errors that can not be assigned at compile time.
It is faster than refuel.injector.MetaMediation.inject because of immediate assignment, but the dependency injected at compile time is determined, and this assignment can not be overwritten with "flush" or "narrow".
The scope to which this immediate assignment applies is all the same instances that inherit refuel.injector.AutoInjectable.
- T
Injection type
- ctn
Container
- access
Accessor (This refers to itself)
- Attributes
- protected
- Definition Classes
- MetaMediation
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- macro def inject[T](t: scala.reflect.api.JavaUniverse.TypeTag[T])(implicit ctn: Container, ip: InjectionPool, access: Accessor[_]): Lazy[T]
Get accessible dependencies.
Get accessible dependencies.
The type information is resolved at compile time, but the injection object is finalized at runtime. This function is slower than refuel.injector.MetaMediation.bind, but can be overwritten by flush or narrow.
- T
Injection type
- ctn
Container
- access
Accessor (This refers to itself)
- Attributes
- protected
- Definition Classes
- MetaMediation
- macro def inject[T](implicit ctn: Container, ip: InjectionPool, access: Accessor[_]): Lazy[T]
Get accessible dependencies.
Get accessible dependencies.
The type information is resolved at compile time, but the injection object is finalized at runtime. This function is slower than refuel.injector.MetaMediation.bind, but can be overwritten by flush or narrow.
- T
Injection type
- ctn
Container
- access
Accessor (This refers to itself)
- Attributes
- protected
- Definition Classes
- MetaMediation
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def narrow[T](x: T, priority: Int = Int.MaxValue)(implicit arg0: scala.reflect.api.JavaUniverse.WeakTypeTag[T], ctn: Container): Indexer[T]
Gets an indexer for registering new dependencies.
Gets an indexer for registering new dependencies. By default, the dependency priority is set to maximum.
- T
new dependency type
- x
new dependency
- priority
Injection priority.
- Attributes
- protected
- Definition Classes
- MetaMediation
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def overwrite[T](x: T, priority: Int = AutoInject.DEFAULT_INJECTION_PRIORITY + 100)(implicit arg0: scala.reflect.api.JavaUniverse.WeakTypeTag[T], ctn: Container): Unit
Manually register the new dependency.
Manually register the new dependency.
- T
new dependency type
- x
new dependency.
- priority
Injection priority.
- Definition Classes
- MetaMediation
- def shade[T](ctx: (LocalizedContainer) => T): T
Create a container shade.
Create a container shade.
- T
Result type
- ctx
Shaded container function.
- Definition Classes
- MetaMediation
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def tag: scala.reflect.api.JavaUniverse.Type
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- 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()