GenericProducerMethod(Bean<T> originalBean, GenericIdentifier identifier, AnnotatedMethod<X> method, AnnotatedMethod<X> disposerMethod, final Set<Annotation> qualifiers, final Set<Annotation> genericBeanQualifiers, Class<? extends Annotation> scopeOverride, boolean alternative, Class<?> declaringBeanClass, BeanManager beanManager)
{
super(originalBean, identifier, qualifiers, genericBeanQualifiers, scopeOverride, Annotateds.createCallableId(method), alternative, declaringBeanClass, beanManager);
List<InjectionPoint> injectionPoints = createInjectionPoints(method, this, beanManager);
List<InjectionPoint> wrappedInjectionPoints = new ArrayList<InjectionPoint>();
for (InjectionPoint injectionPoint : injectionPoints)
{
wrappedInjectionPoints.add(wrapInjectionPoint(injectionPoint, genericBeanQualifiers));
}
this.producerMethod = new InjectableMethod<X>(method, wrappedInjectionPoints, beanManager);
if (disposerMethod != null)
{
injectionPoints = createInjectionPoints(disposerMethod, this, beanManager);
wrappedInjectionPoints = new ArrayList<InjectionPoint>();
for (InjectionPoint injectionPoint : injectionPoints)
{
wrappedInjectionPoints.add(wrapInjectionPoint(injectionPoint, genericBeanQualifiers));
}
this.disposerMethod = new InjectableMethod<X>(disposerMethod, wrappedInjectionPoints, beanManager);
}
else
{
this.disposerMethod = null;
}
}