GenericManagedBean(Bean<T> originalBean, GenericIdentifier identifier, InjectionTarget<T> injectionTarget, AnnotatedType<T> type, Set<Annotation> qualifiers, Class<? extends Annotation> scopeOverride, Synthetic.Provider annotatedMemberSyntheticProvider, boolean alternative, Class<?> beanClass, BeanManager beanManager)
{
super(originalBean, qualifiers, identifier, Annotateds.createTypeId(type), alternative, beanClass, beanManager);
this.injectionTarget = injectionTarget;
this.injectedFields = new HashMap<AnnotatedField<? super T>, InjectionPoint>();
this.scopeOverride = scopeOverride;
Set<Annotation> filteredQualifiers = new HashSet<Annotation>(getQualifiers());
filteredQualifiers.remove(AnyLiteral.INSTANCE);
for (AnnotatedField<? super T> field : type.getFields())
{
if (field.isAnnotationPresent(InjectGeneric.class))
{
if (AnnotatedMember.class.isAssignableFrom(field.getJavaMember().getType()))
{
injectedFields.put(field, new ImmutableInjectionPoint(field, Collections.<Annotation> singleton(annotatedMemberSyntheticProvider.get(identifier)), this, false, false));
}
else
{
injectedFields.put(field, new ImmutableInjectionPoint(field, filteredQualifiers, this, false, false));
}
if (!field.getJavaMember().isAccessible())
{
field.getJavaMember().setAccessible(true);
}
}
}
}