FileDocCategorySizeDatePackage
AbstractDynamicMBean.javaAPI DocApache log4j 1.2.153930Sat Aug 25 00:09:40 BST 2007org.apache.log4j.jmx

AbstractDynamicMBean

public abstract class AbstractDynamicMBean extends Object implements DynamicMBean, MBeanRegistration

Fields Summary
String
dClassName
MBeanServer
server
Constructors Summary
Methods Summary
public javax.management.AttributeListgetAttributes(java.lang.String[] attributeNames)
Enables the to get the values of several attributes of the Dynamic MBean.


    // Check attributeNames is not null to avoid NullPointerException later on
    if (attributeNames == null) {
      throw new RuntimeOperationsException(
			   new IllegalArgumentException("attributeNames[] cannot be null"),
			   "Cannot invoke a getter of " + dClassName);
    }

    AttributeList resultList = new AttributeList();

    // if attributeNames is empty, return an empty result list
    if (attributeNames.length == 0)
      return resultList;

    // build the result attribute list
    for (int i=0 ; i<attributeNames.length ; i++){
      try {
	Object value = getAttribute((String) attributeNames[i]);
	resultList.add(new Attribute(attributeNames[i],value));
      } catch (Exception e) {
	e.printStackTrace();
      }
    }
    return(resultList);
  
protected abstract org.apache.log4j.LoggergetLogger()

public voidpostDeregister()

    getLogger().debug("postDeregister is called.");
  
public voidpostRegister(java.lang.Boolean registrationDone)

  
public voidpreDeregister()

    getLogger().debug("preDeregister called.");
  
public javax.management.ObjectNamepreRegister(javax.management.MBeanServer server, javax.management.ObjectName name)

    getLogger().debug("preRegister called. Server="+server+ ", name="+name);
    this.server = server;
    return name;
  
public javax.management.AttributeListsetAttributes(javax.management.AttributeList attributes)
Sets the values of several attributes of the Dynamic MBean, and returns the list of attributes that have been set.


    // Check attributes is not null to avoid NullPointerException later on
    if (attributes == null) {
      throw new RuntimeOperationsException(
                    new IllegalArgumentException("AttributeList attributes cannot be null"),
		    "Cannot invoke a setter of " + dClassName);
    }
    AttributeList resultList = new AttributeList();

    // if attributeNames is empty, nothing more to do
    if (attributes.isEmpty())
      return resultList;

    // for each attribute, try to set it and add to the result list if successfull
    for (Iterator i = attributes.iterator(); i.hasNext();) {
      Attribute attr = (Attribute) i.next();
      try {
	setAttribute(attr);
	String name = attr.getName();
	Object value = getAttribute(name);
	resultList.add(new Attribute(name,value));
      } catch(Exception e) {
	e.printStackTrace();
      }
    }
    return(resultList);