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