1
2
3
4
5
6
7 package org.mule.config.spring.parsers.specific.properties;
8
9 import org.mule.config.spring.parsers.AbstractMuleBeanDefinitionParser;
10 import org.mule.config.spring.parsers.assembly.MapEntryCombiner;
11 import org.mule.config.spring.parsers.collection.ChildListEntryDefinitionParser;
12 import org.mule.config.spring.parsers.collection.ChildSingletonMapDefinitionParser;
13 import org.mule.config.spring.parsers.delegate.AbstractSingleParentFamilyDefinitionParser;
14 import org.mule.config.spring.parsers.processors.AddAttribute;
15
16
17
18
19
20
21
22
23
24
25
26
27 public class NestedListDefinitionParser extends AbstractSingleParentFamilyDefinitionParser
28 {
29
30
31 public static final String HIDDEN_KEY = "hiddenKey";
32 public static final String HIDDEN_VALUE = "hiddenValue";
33
34 public NestedListDefinitionParser(String mapSetter, String mapKey, String attribute)
35 {
36 addDelegate(new ChildSingletonMapDefinitionParser(mapSetter))
37 .registerPreProcessor(new AddAttribute(HIDDEN_KEY, mapKey))
38 .addCollection(mapSetter)
39 .setIgnoredDefault(true)
40 .addAlias(HIDDEN_KEY, MapEntryCombiner.KEY)
41 .removeIgnored(HIDDEN_KEY)
42 .addIgnored(AbstractMuleBeanDefinitionParser.ATTRIBUTE_NAME);
43 addChildDelegate(new ChildListEntryDefinitionParser(HIDDEN_VALUE, attribute))
44 .addAlias(HIDDEN_VALUE, MapEntryCombiner.VALUE)
45 .addCollection(HIDDEN_VALUE);
46 }
47
48 }