Set<MetaClass> processedTypes) {
MetaClass cls = type;
do {
if (cls != type && cls.isPublic() && (cls.isAbstract() || cls.isInterface())) {
if (processedTypes.add(cls)) {
final QualifiedTypeInjectorDelegate injectorDelegate =
new QualifiedTypeInjectorDelegate(cls, injector, cls.getParameterizedType());
registerInjector(cls, injectorDelegate, processedTypes, false);
}
continue;
}
for (final MetaClass iface : cls.getInterfaces()) {
if (!iface.isPublic())
continue;
if (processedTypes.add(iface)) {
final QualifiedTypeInjectorDelegate injectorDelegate =
new QualifiedTypeInjectorDelegate(iface, injector, iface.getParameterizedType());
registerInjector(iface, injectorDelegate, processedTypes, false);
}
}
}