Package org.glassfish.hk2.api
Interface InjectionResolver<T>
- Type Parameters:
T
- This must be the class of the injection annotation that this resolver will handle
- All Known Implementing Classes:
ChildInjectResolverImpl
,ConfiguredByInjectionResolver
,ThreeThirtyResolver
This class allows users to provide a custom injection target for
any annotation (including @Inject). The user would usually
only provide a resolver for @Inject if it were specializing
the system provided resolver for @Inject. Otherwise, this
resolver can be used to provide injection points for any annotation.
An implementation of InjectionResolver must be in the Singleton scope.
Implementations of InjectionResolver will be instantiated as soon as
they are added to HK2 in order to avoid deadlocks and circular references.
Therefore it is recommended that implementations of InjectionResolver
make liberal use of Provider
or IterableProvider
when injecting dependent services so that these services are not instantiated
when the InjectionResolver is created
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
This is the name of the system provided resolver for 330 injections -
Method Summary
Modifier and TypeMethodDescriptionboolean
This method should return true if the annotation that indicates that this is an injection point can appear in the parameter list of a constructor.boolean
This method should return true if the annotation that indicates that this is an injection point can appear in the parameter list of a method.resolve
(Injectee injectee, ServiceHandle<?> root) This method will return the object that should be injected into the given injection point.
-
Field Details
-
SYSTEM_RESOLVER_NAME
This is the name of the system provided resolver for 330 injections- See Also:
-
-
Method Details
-
resolve
This method will return the object that should be injected into the given injection point. It is the responsiblity of the implementation to ensure that the object returned can be safely injected into the injection point.This method should not do the injection themselves
- Parameters:
injectee
- The injection point this value is being injected intoroot
- The service handle of the root class being created, which should be used in order to ensure proper destruction of associated invalid input: '&'64;PerLookup scoped objects. This can be null in the case that this is being used for an object not managed by HK2. This will only happen if this object is being created with the create method of ServiceLocator.- Returns:
- A possibly null value to be injected into the given injection point
-
isConstructorParameterIndicator
boolean isConstructorParameterIndicator()This method should return true if the annotation that indicates that this is an injection point can appear in the parameter list of a constructor.- Returns:
- true if the injection annotation can appear in the parameter list of a constructor
-
isMethodParameterIndicator
boolean isMethodParameterIndicator()This method should return true if the annotation that indicates that this is an injection point can appear in the parameter list of a method.- Returns:
- true if the injection annotation can appear in the parameter list of a method
-