1
2
3
4
5
6
7 package org.mule.config.spring.parsers.specific;
8
9 import org.mule.config.spring.parsers.MuleDefinitionParser;
10 import org.mule.config.spring.parsers.collection.ChildListEntryDefinitionParser;
11 import org.mule.config.spring.parsers.delegate.AttributeSelectionDefinitionParser;
12 import org.mule.config.spring.parsers.processors.CheckExclusiveAttributes;
13 import org.mule.config.spring.parsers.processors.CheckRequiredAttributes;
14
15 public class NotificationDisableDefinitionParser extends AttributeSelectionDefinitionParser
16 {
17
18 public static final String DISABLED_EVENT = "disabledType";
19 public static final String DISABLED_INTERFACE = "disabledInterface";
20
21 public NotificationDisableDefinitionParser()
22 {
23 super(NotificationDefinitionParser.EVENT,
24 addMappingToConstructorArg(
25 new ChildListEntryDefinitionParser(DISABLED_EVENT,
26 NotificationDefinitionParser.EVENT)));
27
28 addDelegate(NotificationDefinitionParser.EVENT_CLASS,
29 new ChildListEntryDefinitionParser(DISABLED_EVENT,
30 NotificationDefinitionParser.EVENT_CLASS));
31
32 MuleDefinitionParser parser =
33 new ChildListEntryDefinitionParser(DISABLED_INTERFACE, NotificationDefinitionParser.INTERFACE);
34 parser.addMapping(NotificationDefinitionParser.INTERFACE, NotificationDefinitionParser.INTERFACE_MAP);
35 addDelegate(NotificationDefinitionParser.INTERFACE, parser);
36
37 addDelegate(NotificationDefinitionParser.INTERFACE_CLASS,
38 new ChildListEntryDefinitionParser(DISABLED_INTERFACE,
39 NotificationDefinitionParser.INTERFACE_CLASS));
40
41 registerPreProcessor(new CheckExclusiveAttributes(NotificationDefinitionParser.ALL_ATTRIBUTES));
42 registerPreProcessor(new CheckRequiredAttributes(NotificationDefinitionParser.ALL_ATTRIBUTES));
43 }
44
45 private static MuleDefinitionParser addMappingToConstructorArg(MuleDefinitionParser parser)
46 {
47 parser.addMapping(NotificationDefinitionParser.EVENT, NotificationDefinitionParser.EVENT_MAP);
48 return parser;
49 }
50
51 }