1 22 package org.jboss.system.filterfactory; 23 24 import javax.management.AttributeChangeNotificationFilter ; 25 import javax.management.NotificationFilter ; 26 27 import org.jboss.system.NotificationFilterFactory; 28 import org.w3c.dom.Element ; 29 import org.w3c.dom.Node ; 30 import org.w3c.dom.NodeList ; 31 32 49 public class AttributeChangeNotificationFilterFactory 50 implements NotificationFilterFactory 51 { 52 54 55 public static final String ENABLE_ELEMENT = "enable"; 56 public static final String ENABLE_ATTRNAME_ATTRIBUTE = "attribute-name"; 57 58 61 public AttributeChangeNotificationFilterFactory() 62 { 63 } 65 66 69 public NotificationFilter createNotificationFilter(Element filterConfig) 70 throws Exception 71 { 72 AttributeChangeNotificationFilter filter = new AttributeChangeNotificationFilter (); 74 75 NodeList filterChildren = filterConfig.getChildNodes(); 78 79 for (int i = 0; i < filterChildren.getLength(); i++) 80 { 81 Node filterChildNode = filterChildren.item(i); 82 83 if (filterChildNode.getNodeName().equals(ENABLE_ELEMENT)) 85 { 86 if (((Element )filterChildNode).hasAttribute(ENABLE_ATTRNAME_ATTRIBUTE)) 88 { 89 String attributeName = ((Element )filterChildNode).getAttribute(ENABLE_ATTRNAME_ATTRIBUTE); 90 filter.enableAttribute(attributeName); 92 } 93 else 94 { 95 throw new Exception ("'" + ENABLE_ELEMENT + "' element must have a '" 96 + ENABLE_ATTRNAME_ATTRIBUTE + "' attribute"); 97 } 98 } 99 } 100 return filter; 102 } 103 } 104 | Popular Tags |