Example usage for org.springframework.beans.factory.xml BeanDefinitionParserDelegate parsePropertySubElement

List of usage examples for org.springframework.beans.factory.xml BeanDefinitionParserDelegate parsePropertySubElement

Introduction

In this page you can find the example usage for org.springframework.beans.factory.xml BeanDefinitionParserDelegate parsePropertySubElement.

Prototype

@Nullable
public Object parsePropertySubElement(Element ele, @Nullable BeanDefinition bd) 

Source Link

Document

Parse a value, ref or collection sub-element of a property or constructor-arg element.

Usage

From source file:com.predic8.membrane.core.config.spring.AbstractParser.java

protected void handleChildElement(Element ele, ParserContext parserContext, BeanDefinitionBuilder builder) {
    BeanDefinitionParserDelegate delegate = parserContext.getDelegate();

    try {/*from w  w  w .  ja va 2 s. co  m*/
        Object o = delegate.parsePropertySubElement(ele, builder.getBeanDefinition());

        String clazz = null;
        if (o instanceof BeanDefinitionHolder) {
            clazz = ((BeanDefinitionHolder) o).getBeanDefinition().getBeanClassName();
        } else if (o instanceof RuntimeBeanReference) {
            clazz = parserContext.getRegistry().getBeanDefinition(((RuntimeBeanReference) o).getBeanName())
                    .getBeanClassName();
        } else if (o instanceof RuntimeBeanNameReference) {
            clazz = parserContext.getRegistry().getBeanDefinition(((RuntimeBeanNameReference) o).getBeanName())
                    .getBeanClassName();
        } else {
            parserContext.getReaderContext().error("Don't know how to get bean class from " + o.getClass(),
                    ele);
        }

        handleChildObject(ele, parserContext, builder, Class.forName(clazz), o);
    } catch (ClassNotFoundException e) {
        throw new RuntimeException(e);
    }
}

From source file:com.predic8.membrane.core.config.spring.AbstractParser.java

protected void parseElementToProperty(Element ele, ParserContext parserContext, BeanDefinitionBuilder builder,
        String property) {//from w w w . j a v a2s  . c o  m
    BeanDefinitionParserDelegate delegate = parserContext.getDelegate();

    if (delegate.isDefaultNamespace(ele)) {
        Object o = delegate.parsePropertySubElement(ele, builder.getBeanDefinition());
        builder.addPropertyValue(property, o);
    } else {
        BeanDefinition bd = delegate.parseCustomElement(ele);
        builder.addPropertyValue(property, bd);
    }
}