in webbeans-impl/src/main/java/org/apache/webbeans/util/GenericsUtil.java [298:335]
private static boolean isAssignableFrom(boolean isDelegateOrEvent, boolean isProducer, ParameterizedType injectionPointType, Class<?> beanType,
Map<Type, Integer> visited)
{
Class<?> rawInjectionPointType = getRawType(injectionPointType);
if (rawInjectionPointType.equals(beanType))
{
if (isProducer)
{
for (Type t : injectionPointType.getActualTypeArguments())
{
if (!TypeVariable.class.isInstance(t) || !isNotBound(TypeVariable.class.cast(t).getBounds()))
{
if (!Class.class.isInstance(t) || Object.class != t)
{
return false;
}
}
}
}
return true;
}
if (!rawInjectionPointType.isAssignableFrom(beanType))
{
return false;
}
if (beanType.getSuperclass() != null && isAssignableFrom(isDelegateOrEvent, isProducer, injectionPointType, beanType.getGenericSuperclass(), visited))
{
return true;
}
for (Type genericInterface: beanType.getGenericInterfaces())
{
if (isAssignableFrom(isDelegateOrEvent, isProducer, injectionPointType, genericInterface, visited))
{
return true;
}
}
return false;
}