1
2
3
4
5
6
7 package org.mule.config.spring.parsers.assembly;
8
9 import org.mule.config.spring.parsers.assembly.configuration.PropertyConfiguration;
10 import org.mule.util.MapCombiner;
11
12 import java.util.Iterator;
13 import java.util.List;
14 import java.util.Map;
15
16 import org.springframework.beans.PropertyValue;
17 import org.springframework.beans.factory.config.BeanDefinition;
18 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
19 import org.springframework.beans.factory.support.ManagedList;
20 import org.springframework.beans.factory.support.ManagedMap;
21
22 public abstract class AbstractMapBeanAssembler extends DefaultBeanAssembler
23 {
24
25 public AbstractMapBeanAssembler(PropertyConfiguration beanConfig, BeanDefinitionBuilder bean,
26 PropertyConfiguration targetConfig, BeanDefinition target)
27 {
28 super(beanConfig, bean, targetConfig, target);
29 }
30
31 protected void insertDefinitionAsMap(String oldName)
32 {
33 BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(MapCombiner.class);
34 Map map = new ManagedMap();
35 for (Iterator pvs = getBean().getBeanDefinition().getPropertyValues().getPropertyValueList().iterator();
36 pvs.hasNext();)
37 {
38 PropertyValue pv = (PropertyValue) pvs.next();
39 map.put(pv.getName(), pv.getValue());
40 }
41 List list = new ManagedList();
42 list.add(map);
43 builder.addPropertyValue(MapCombiner.LIST, list);
44 setBean(builder);
45 super.insertBeanInTarget(oldName);
46 }
47
48 }