Top Description Fields Methods
org.glassfish.hk2.api

public Interface InjectionResolver<T>

Annotations
@Contract
Type Parameters
<T>
This must be the class of the injection annotation that this resolver will handle
Imports
org.jvnet.hk2.annotations.Contract

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 jakarta.inject.Provider or IterableProvider when injecting dependent services so that these services are not instantiated when the InjectionResolver is created

Author
jwells

Field Summary

Modifier and TypeField and Description
public static final String
SYSTEM_RESOLVER_NAME

This is the name of the system provided resolver for 330 injections

Method Summary

Modifier and TypeMethod and Description
public boolean

Returns:

true if the injection annotation can appear in the parameter list of a constructor
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.

public boolean

Returns:

true if the injection annotation can appear in the parameter list of a method
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.

public Object

Returns:

A possibly null value to be injected into the given injection point
resolve
(Injectee
The injection point this value is being injected into
injectee
,
ServiceHandle<?>
The service handle of the root class being created, which should be used in order to ensure proper destruction of associated &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.
root
)

This method will return the object that should be injected into the given injection point.

Field Detail

SYSTEM_RESOLVER_NAMEback to summary
public static final String SYSTEM_RESOLVER_NAME

This is the name of the system provided resolver for 330 injections

Method Detail

isConstructorParameterIndicatorback to summary
public 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:boolean

true if the injection annotation can appear in the parameter list of a constructor

isMethodParameterIndicatorback to summary
public 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:boolean

true if the injection annotation can appear in the parameter list of a method

resolveback to summary
public Object resolve(Injectee injectee, ServiceHandle<?> root)

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:Injectee

The injection point this value is being injected into

root:ServiceHandle<?>

The service handle of the root class being created, which should be used in order to ensure proper destruction of associated &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:Object

A possibly null value to be injected into the given injection point