Set<String> autowiredBeanNames = new HashSet<String>();
resolver.resolveDependency(dependencyDescriptor, dependencyDescriptor.getDependencyType(), bean
.getElementName(), autowiredBeanNames, new SimpleTypeConverter());
for (String autowiredBeanName : autowiredBeanNames) {
AutowireBeanReference ref = new AutowireBeanReference(bean, new RuntimeBeanReference(
autowiredBeanName));
if (dependencyDescriptor.getField() != null) {
ref.setSource(dependencyDescriptor.getField());
}
else if (dependencyDescriptor.getMethodParameter() != null
&& dependencyDescriptor.getMethodParameter().getMethod() != null) {
ref.setSource(dependencyDescriptor.getMethodParameter().getMethod(), dependencyDescriptor
.getMethodParameter().getParameterIndex());
}
else if (dependencyDescriptor.getMethodParameter() != null
&& dependencyDescriptor.getMethodParameter().getConstructor() != null) {
ref.setSource(dependencyDescriptor.getMethodParameter().getConstructor(),
dependencyDescriptor.getMethodParameter().getParameterIndex());
}
autowiredReferences.add(ref);
}
}