1
2
3
4
5
6
7
8
9
10 package org.mule.config.spring.parsers.collection;
11
12 import org.mule.config.spring.MuleHierarchicalBeanDefinitionParserDelegate;
13 import org.mule.config.spring.parsers.generic.ChildDefinitionParser;
14
15 import java.util.ArrayList;
16 import java.util.List;
17
18 import org.springframework.beans.factory.config.ListFactoryBean;
19 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
20 import org.springframework.beans.factory.xml.ParserContext;
21 import org.w3c.dom.Element;
22
23 public class ChildListDefinitionParser extends ChildDefinitionParser
24 {
25
26 public ChildListDefinitionParser(String setterMethod)
27 {
28 super(setterMethod, ArrayList.class);
29 addBeanFlag(MuleHierarchicalBeanDefinitionParserDelegate.MULE_NO_RECURSE);
30 }
31
32 protected Class getBeanClass(Element element)
33 {
34 return ListFactoryBean.class;
35 }
36
37 protected void parseChild(Element element, ParserContext parserContext, BeanDefinitionBuilder builder)
38 {
39 super.parseChild(element, parserContext, builder);
40 List parsedList = parserContext.getDelegate().parseListElement(element, builder.getRawBeanDefinition());
41 builder.addPropertyValue("sourceList", parsedList);
42 builder.addPropertyValue("targetListClass", super.getBeanClass(element));
43 }
44
45 }