Example usage for org.springframework.beans.factory.config RuntimeBeanReference isToParent

List of usage examples for org.springframework.beans.factory.config RuntimeBeanReference isToParent

Introduction

In this page you can find the example usage for org.springframework.beans.factory.config RuntimeBeanReference isToParent.

Prototype

public boolean isToParent() 

Source Link

Document

Return whether this is an explicit reference to a bean in the parent factory.

Usage

From source file:org.springframework.beans.factory.support.BeanDefinitionValueResolver.java

/**
 * Resolve a reference to another bean in the factory.
 *///from  w  w  w. j  a v  a 2  s  . c  o  m
private Object resolveReference(String argName, RuntimeBeanReference ref) throws BeansException {
    if (logger.isDebugEnabled()) {
        logger.debug("Resolving reference from property " + argName + " in bean '" + this.beanName
                + "' to bean '" + ref.getBeanName() + "'");
    }
    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());
            if (this.beanDefinition.isSingleton()) {
                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);
    }
}