| MBeanEntry.java |
/*
* JBoss, the OpenSource J2EE webOS
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.mx.server.registry;
import java.util.Map;
import javax.management.ObjectName;
import org.jboss.mx.server.MBeanInvoker;
import org.jboss.mx.server.ServerConstants;
/**
* info@todo this docs
*
* @see org.jboss.mx.server.registry.MBeanRegistry
* @see org.jboss.mx.server.MBeanServerImpl
*
* @author <a href="mailto:juha@jboss.org">Juha Lindfors</a>.
* @version $Revision: 1.15 $
*/
public class MBeanEntry
implements ServerConstants
{
// Attributes ----------------------------------------------------
/**
* The registered object name of the mbean
*/
private ObjectName objectName = null;
/**
* The class name of the mbean
*/
private String resourceClassName = null;
/**
* The object used to invoke the mbean
*/
private MBeanInvoker invoker = null;
/**
* The mbean registered
*/
private Object resource = null;
/**
* The context classloader of the mbean
*/
private ClassLoader cl = null;
/**
* The value map of the mbean
*/
private Map valueMap = null;
// Constructors --------------------------------------------------
/**
* Construct a new mbean registration entry.
*
* @param objectName the name with which the mbean is registered
* @param invoker the dynamic mbean used to invoke the mbean
* @param resource the mbean
* @param valueMap any other information to include in the registration
*/
public MBeanEntry(ObjectName objectName, MBeanInvoker invoker,
Object resource, Map valueMap)
{
this.objectName = objectName;
this.invoker = invoker;
this.resourceClassName = resource.getClass().getName();
this.resource = resource;
this.valueMap = valueMap;
// Adrian: Unpack the classloader because this is used alot
if (valueMap != null)
this.cl = (ClassLoader) valueMap.get(CLASSLOADER);
}
// Public --------------------------------------------------------
/**
* Retrieve the object name with the mbean is registered.
*
* @return the object name
*/
public ObjectName getObjectName()
{
return objectName;
}
/** A protected method used to set the entry object name when access
* to the entry is needed before the ultimate name under which the
* mbean is registered is known.
*
* @param objectName - the object name under which the mbean is registered
*/
protected void setObjectName(ObjectName objectName)
{
this.objectName = objectName;
}
/**
* Retrieve the invoker for the mbean.
*
* @return the invoker
*/
public MBeanInvoker getInvoker()
{
return invoker;
}
/**
* Retrieve the class name for the mbean.
*
* @return the class name
*/
public String getResourceClassName()
{
return resourceClassName;
}
/**
* Retrieve the class name for the mbean.
*
* @param resourceClassName the class name
*/
public void setResourceClassName(String resourceClassName)
{
this.resourceClassName = resourceClassName;
}
/**
* Retrieve the mbean.
*
* @return the mbean
*/
public Object getResourceInstance()
{
return resource;
}
/**
* Retrieve the context class loader with which to invoke the mbean.
*
* @return the class loader
*/
public ClassLoader getClassLoader()
{
return cl;
}
/**
* Retrieve a value from the map.
*
* @return key the key to value
* @return the value or null if there is no entry
*/
public Object getValue(String key)
{
if (valueMap != null)
return valueMap.get(key);
return null;
}
}
| MBeanEntry.java |