public class FactoryBinding extends Object implements Binding
For each method in the factory interface, the binder will determine the
implementation type from the return type and the provided bindings. It will
then check all constructors in the implementation type against the method
parameters (taking named @Assisted annotations into
account) and pick a matching one (if available). To inject the selected
constructor the binder will write a common method injection, replacing the
parameters commonly retrieved through key-specific getter methods with
values obtained from the matching method arguments. Finally, after an
instance has been constructed, it will be member-injected before it is
returned to the caller of the method.
| Modifier and Type | Method and Description |
|---|---|
Context |
getContext()
Returns the context in which this binding was created.
|
SourceSnippet |
getCreationStatements(NameGenerator nameGenerator,
List<InjectorMethod> methodsOutput)
Gets one or more fully formed Java statements that create the bound value
and store it in a new local variable named
result. |
Collection<Dependency> |
getDependencies()
Returns the set of dependencies that this binding produces.
|
String |
getGetterMethodPackage()
Returns the package in which the getter for the bound key is created.
|
Collection<TypeLiteral<?>> |
getMemberInjectRequests()
Returns the set of types for which this binding requires member injection methods to be
written.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetContext, getGetterMethodPackagepublic SourceSnippet getCreationStatements(NameGenerator nameGenerator, List<InjectorMethod> methodsOutput) throws NoSourceNameException
Bindingresult. If additional
methods are to be created, the given NameGenerator should be used
to choose their names, and they should be added to methodsOutput.getCreationStatements in interface BindingNoSourceNameException - if source name is not available for typepublic Collection<Dependency> getDependencies()
BindingDependency.GINJECTOR) as well as dependencies that
this binding needs.getDependencies in interface Bindingpublic Collection<TypeLiteral<?>> getMemberInjectRequests()
BindinggetMemberInjectRequests in interface Bindingpublic Context getContext()
BindinggetContext in interface Bindingpublic String getGetterMethodPackage()
BindingGinjectorBindings objects.
Typically this will be the package containing the type that is returned by the getter, but the only requirement is that it has to be a package where the return type is visible.
getGetterMethodPackage in interface BindingCopyright © 2008–2018. All rights reserved.