java.lang.Object
org.omnifaces.cdi.param.ParamExtension
- All Implemented Interfaces:
Extension
CDI extension that works around the fact that CDI insists on doing absolutely guaranteed type safe injections. While generally applaudable this unfortunately
impedes writing true generic producers that dynamically do conversion based on the target type.
This extension collects the target types of each injection point qualified with the @Param annotation and dynamically registers
Beans that effectively represents producers for each type.
Since OmniFaces 3.6, this extension also scans for @Param without @Inject and manually takes care of them
while creating the bean.
- Since:
- 2.0
- Author:
- Arjan Tijms
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<T> voidcollectParams(ProcessInjectionTarget<T> event) Collect fields annotated withParam.voidstatic <T> voidprocessParamsWithoutInject(ProcessInjectionTarget<T> event, Set<AnnotatedField<?>> paramsWithoutInject)
-
Constructor Details
-
ParamExtension
public ParamExtension()
-
-
Method Details
-
collectParams
Collect fields annotated withParam.- Type Parameters:
T- The generic injection target type.- Parameters:
event- The process injection target event.
-
processParamsWithInject
- Parameters:
event- The after bean discovery event.
-
processParamsWithoutInject
public static <T> void processParamsWithoutInject(ProcessInjectionTarget<T> event, Set<AnnotatedField<?>> paramsWithoutInject)
-