*/
private Object resolveReference(Object argName, RuntimeBeanReference ref) {
try {
if (ref.isToParent()) {
if (this.beanFactory.getParentBeanFactory() == null) {
throw new BeanCreationException(
this.beanDefinition.getResourceDescription(), this.beanName,
"Can't resolve reference to bean '" + ref.getBeanName() +
"' in parent factory: no parent factory available");
}
return this.beanFactory.getParentBeanFactory().getBean(ref.getBeanName());
}
else {
Object bean = this.beanFactory.getBean(ref.getBeanName());
this.beanFactory.registerDependentBean(ref.getBeanName(), this.beanName);
return bean;
}
}
catch (BeansException ex) {
throw new BeanCreationException(
this.beanDefinition.getResourceDescription(), this.beanName,
"Cannot resolve reference to bean '" + ref.getBeanName() + "' while setting " + argName, ex);
}
}