This is the most complex case because the bean can have an arbitrary type. @param oldName The identifying the bean (typically element name).
5253545556575859606162
if (pendingAssemblers.containsKey(element)) { // this is the second call, after the children have been processed BeanAssembler beanAssembler = (BeanAssembler) pendingAssemblers.get(element); pendingAssemblers.remove(element); beanAssembler.insertBeanInTarget(setter); return null; } else { // first call, so process in normal manner, but set current element so that
4849505152535455565758
3738394041424344454647
{ builder.setScope(isSingleton() ? BeanDefinition.SCOPE_SINGLETON : BeanDefinition.SCOPE_PROTOTYPE); doParseElement(element, context, builder); BeanAssembler assembler = getBeanAssembler(element, builder); assembler.insertBeanInTarget("messageProcessor"); } protected abstract void doParseElement(Element element, ParserContext context, BeanDefinitionBuilder builder); protected void parseConfig(Element element, BeanDefinitionBuilder builder)