Inject an instance for the given trait based on the class type required and an ID string.
Inject an instance for the given trait based on the class type required and an ID string. If there is no matching binding, this method will throw a BindingException. The string ID is interchangeable with the symbol version of the same ID, in other words 'maxPoolSize and "maxPoolSize" are considered equivalent by the lookup mechanism.
the identifying name to look up for the binding, e.g. "maxPoolSize"
an instance configured by the binding module to use for the given trait and ID
Inject an instance for the given trait based on the class type required and an ID symbol.
Inject an instance for the given trait based on the class type required and an ID symbol. If there is no matching binding, this method will throw a BindingException. The Symbol provided will be converted to a string prior to the lookup, so the symbol is interchangeable with the string version of the same ID, in other words 'maxPoolSize and "maxPoolSize" are considered equivalent by the lookup mechanism.
the identifying name to look up for the binding, e.g. 'maxPoolSize
an instance configured by the binding module to use for the given trait and ID
Inject an instance for the given trait based on the class type required.
Inject an instance for the given trait based on the class type required. If there is no binding, this method will throw a BindingException. This form is for straight trait injection without an identifying name.
an instance configured by the binding module to use for the given trait.
Inject an instance if a binding for that type is defined.
Inject an instance if a binding for that type is defined. If it is not defined, the function provided will be used instead to create an instance to be used. This is arguably the most useful and efficient form of injection usage, as the typical configuration can be provided at the call site and developers can easily see what the "usual" instance is. An alternative binding will only be used if it is defined, e.g. for testing. This form of the injector takes a string ID to use in the binding definition lookup, e.g. "maxPoolSize".
ID to be used to identify the matching binding definition.
a function to be used to return an instance, if there is no binding defined for the desired trait.
an instance that subclasses the trait, either from the binding definitions, or using the provided function if no matching binding is defined.
Inject an instance if a binding for that type is defined.
Inject an instance if a binding for that type is defined. If it is not defined, the function provided will be used instead to create an instance to be used. This is arguably the most useful and efficient form of injection usage, as the typical configuration can be provided at the call site and developers can easily see what the "usual" instance is. An alternative binding will only be used if it is defined, e.g. for testing. This form of the injector takes a symbol ID to use in the binding definition lookup, e.g. 'maxPoolSize.
symbol ID to be used to identify the matching binding definition.
a function to be used to return an instance, if there is no binding defined for the desired trait.
an instance that subclasses the trait, either from the binding definitions, or using the provided function if no matching binding is defined.
Inject an instance if a binding for that type is defined.
Inject an instance if a binding for that type is defined. If it is not defined, the function provided will be used instead to create an instance to be used. This is arguably the most useful and efficient form of injection usage, as the typical configuration can be provided at the call site and developers can easily see what the "usual" instance is. An alternative binding will only be used if it is defined, e.g. for testing. This form of the injector takes only a trait to match and no ID name.
a function to be used to return an instance, if there is no binding defined for the desired trait.
an instance that subclasses the trait, either from the binding definitions, or using the provided function if no matching binding is defined.
Inject an instance for the given trait based on the class type only if there is no instance already provided.
Inject an instance for the given trait based on the class type only if there is no instance already provided. If no instance is provided (i.e. the existing impl passed in is null) and no binding is available to match, a BindingException will be thrown. If an existing impl is provided (not null), then the binding will not be used and does not need to be present. This form of the inject takes a string ID to use to match the binding.
from the call site. If it is null, the binding provider will fill it in instead
binding ID symbol to use - e.g. 'maxPoolSize
an instance configured by the binding module to use for the given trait
Inject an instance for the given trait based on the class type only if there is no instance already provided.
Inject an instance for the given trait based on the class type only if there is no instance already provided. If no instance is provided (i.e. the existing impl passed in is null) and no binding is available to match, a BindingException will be thrown. If an existing impl is provided (not null), then the binding will not be used and does not need to be present. This form of the inject takes a symbol ID to use to match the binding.
from the call site. If it is null, the binding provider will fill it in instead
binding ID symbol to use - e.g. 'maxPoolSize
an instance configured by the binding module to use for the given trait
Inject an instance for the given trait based on the class type only if there is no instance already provided.
Inject an instance for the given trait based on the class type only if there is no instance already provided. If no instance is provided (i.e. the existing impl passed in is null) and no binding is available to match, a BindingException will be thrown. If an existing impl is provided (not null), then the binding will not be used and does not need to be present. This form of the inject does not need a provided ID symbol or string.
from the call site. If it is null, the binding provider will fill it in instead
an instance configured by the binding module to use for the given trait
Inject an optional instance for the given trait based on the class type required and an ID string.
Inject an optional instance for the given trait based on the class type required and an ID string. If there is no matching binding, this method will return None. The string ID is interchangeable with the symbol version of the same ID, in other words 'maxPoolSize and "maxPoolSize" are considered equivalent by the lookup mechanism.
the identifying name to look up for the binding, e.g. "maxPoolSize"
an optional instance configured by the binding module to use for the given trait and ID
Inject an optional instance for the given trait based on the class type required and an ID symbol.
Inject an optional instance for the given trait based on the class type required and an ID symbol. If there is no matching binding, this method will return None. The Symbol provided will be converted to a string prior to the lookup, so the symbol is interchangeable with the string version of the same ID, in other words 'maxPoolSize and "maxPoolSize" are considered equivalent by the lookup mechanism.
the identifying name to look up for the binding, e.g. 'maxPoolSize
an optional instance configured by the binding module to use for the given trait and ID
Inject an optional instance for the given trait based on the class type required.
Inject an optional instance for the given trait based on the class type required. If there is no binding, this method will return None. This form is for straight trait injection without an identifying name.
an optional instance configured by the binding module to use for the given trait.
AutoInjectable is identical to Injectable except that if you are using the compiler plugin, the implicit bindingModule parameter will be automatically filled in for you. It is provided as a convenient boilerplate buster but is distinct from Injectable because sometimes you want to mark something as Injectable but keep the injection abstract until later.