T
- This must be the type of entity for which this is a factory.
For example, if this were a factory for Foo, then your factory
must implement Factory<Foo>.@Contract public interface Factory<T>
A factory may not have a TypeVariable or a Wildcard as its actual type. A factory may have any scope, and the scope of the factory is independent of the scope of the type it is providing.
The scope and qualifiers of the objects this factory is producing must be placed on the provide method itself. Objects created with this method will be put into the scope on the provide method, and will have the qualifiers of the provide method.
A factory is generally added with the FactoryDescriptors
helper
class, though factories can also be registered independently.
A Factory implementation may inject a InstantiationService
. If
it does so then the InstantiationService.getInstantiationData()
method
will return information about the caller of the provide method if that
information is available. This can be used to customize the returned object
based on the Injection point of the parent.
Modifier and Type | Method and Description |
---|---|
void |
dispose(T instance)
This method will dispose of objects created with this scope.
|
T |
provide()
This method will create instances of the type of this factory.
|
T provide()
void dispose(T instance)
instance
- The instance to dispose ofCopyright © 2009-2017, Oracle and/or its affiliates. All Rights Reserved.