View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
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  }