_delegateConstructor.setAccessible(true);
}
InjectManager manager = InjectManager.getCurrent();
BaseType selfType = manager.createTargetBaseType(_selfType);
BaseType delegateType
= manager.createSourceBaseType(_delegateInjectionPoint.getType());
_typeSet = new LinkedHashSet<Type>();
for (Type type : selfType.getTypeClosure(manager)) {
BaseType baseType = manager.createSourceBaseType(type);
if (! baseType.getRawClass().isInterface())
continue;
if (baseType.getRawClass().equals(Serializable.class))
continue;
// ioc/0i5g, ioc/0i3r
if (baseType.isAssignableFrom(delegateType)) {
_typeSet.add(type);
for (Method method : baseType.getRawClass().getMethods()) {
Method implMethod = AnnotatedTypeUtil.findMethod(selfType.getRawClass().getMethods(), method);
if (implMethod != null && Modifier.isFinal(implMethod.getModifiers())) {
throw new ConfigException(L.l("'{0}.{1}' is an invalid decorator method because it is final.",
implMethod.getDeclaringClass().getName(),