List of usage examples for org.springframework.beans.factory.xml BeanDefinitionParserDelegate parsePropertySubElement
@Nullable
public Object parsePropertySubElement(Element ele, @Nullable BeanDefinition bd)
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); } }