<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!-- NewPage --> <html lang="en"> <head> <!-- Generated by javadoc (version 1.7.0_40) on Fri Oct 18 06:47:24 UTC 2013 --> <title>AbstractDynamicMBean (MX4J API)</title> <meta name="date" content="2013-10-18"> <link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style"> </head> <body> <script type="text/javascript"><!-- if (location.href.indexOf('is-external=true') == -1) { parent.document.title="AbstractDynamicMBean (MX4J API)"; } //--> </script> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> <!-- ========= START OF TOP NAVBAR ======= --> <div class="topNav"><a name="navbar_top"> <!-- --> </a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../overview-summary.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/AbstractDynamicMBean.html">Use</a></li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../deprecated-list.html">Deprecated</a></li> <li><a href="../index-all.html">Index</a></li> <li><a href="../help-doc.html">Help</a></li> </ul> </div> <div class="subNav"> <ul class="navList"> <li>Prev Class</li> <li><a href="../mx4j/ImplementationException.html" title="class in mx4j"><span class="strong">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../index.html?mx4j/AbstractDynamicMBean.html" target="_top">Frames</a></li> <li><a href="AbstractDynamicMBean.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_top"> <li><a href="../allclasses-noframe.html">All Classes</a></li> </ul> <div> <script type="text/javascript"><!-- allClassesLink = document.getElementById("allclasses_navbar_top"); if(window==top) { allClassesLink.style.display = "block"; } else { allClassesLink.style.display = "none"; } //--> </script> </div> <div> <ul class="subNavList"> <li>Summary: </li> <li>Nested | </li> <li>Field | </li> <li><a href="#constructor_summary">Constr</a> | </li> <li><a href="#method_summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li><a href="#constructor_detail">Constr</a> | </li> <li><a href="#method_detail">Method</a></li> </ul> </div> <a name="skip-navbar_top"> <!-- --> </a></div> <!-- ========= END OF TOP NAVBAR ========= --> <!-- ======== START OF CLASS DATA ======== --> <div class="header"> <div class="subTitle">mx4j</div> <h2 title="Class AbstractDynamicMBean" class="title">Class AbstractDynamicMBean</h2> </div> <div class="contentContainer"> <ul class="inheritance"> <li>java.lang.Object</li> <li> <ul class="inheritance"> <li>mx4j.AbstractDynamicMBean</li> </ul> </li> </ul> <div class="description"> <ul class="blockList"> <li class="blockList"> <dl> <dt>All Implemented Interfaces:</dt> <dd>javax.management.DynamicMBean</dd> </dl> <hr> <br> <pre>public abstract class <span class="strong">AbstractDynamicMBean</span> extends java.lang.Object implements javax.management.DynamicMBean</pre> <div class="block">Utility class that allow the user to easily write DynamicMBeans. <br> By extending this class, the developer does not have to implement the methods of the DynamicMBean interface, but has instead to provide only the metadata (by overriding few methods) and the implementation (by implementing the methods) of the MBean itself. <br> The methods to override that provides metadata information are usually the following: <ul> <li> <code>createMBeanAttributeInfo</code>, if the MBeans has manageable attributes </li> <li> <code>createMBeanOperationInfo</code>, if the MBeans has manageable operations </li> <li> <code>createMBeanNotificationInfo</code>, if the MBeans has manageable notifications </li> <li> <code>createMBeanConstructorInfo</code>, if the MBeans has manageable constructors </li> <li> <code>getMBeanDescription</code> </li> </ul> For example, the following MBean only has one manageable attribute: <pre> public class SimpleDynamic extends AbstractDynamicMBean { protected MBeanAttributeInfo[] createMBeanAttributeInfo() { return new MBeanAttributeInfo[] { new MBeanAttributeInfo("Name", String.class.getName(), "The name", true, true, false) }; } <p/> protected String getMBeanDescription() { return "A simple DynamicMBean"; } <p/> public String getName() { ... } <p/> public void setName(String name) { ... } } </pre> It is responsibility of the developer to specify the metadata <b>and</b> implement the methods specified by the metadata, that will be invoked via reflection by the AbstractDynamicMBean class. For this reason, the methods belonging to the MBean implementation (in the case above <code>getName()</code> and <code>setName(...)</code>) must be public.</div> <dl><dt><span class="strong">Version:</span></dt> <dd>$Revision: 1.7 $</dd></dl> </li> </ul> </div> <div class="summary"> <ul class="blockList"> <li class="blockList"> <!-- ======== CONSTRUCTOR SUMMARY ======== --> <ul class="blockList"> <li class="blockList"><a name="constructor_summary"> <!-- --> </a> <h3>Constructor Summary</h3> <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> <caption><span>Constructors</span><span class="tabEnd"> </span></caption> <tr> <th class="colFirst" scope="col">Modifier</th> <th class="colLast" scope="col">Constructor and Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>protected </code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#AbstractDynamicMBean()">AbstractDynamicMBean</a></strong>()</code> <div class="block">Only subclasses can create a new instance of an AbstractDynamicMBean.</div> </td> </tr> </table> </li> </ul> <!-- ========== METHOD SUMMARY =========== --> <ul class="blockList"> <li class="blockList"><a name="method_summary"> <!-- --> </a> <h3>Method Summary</h3> <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> <caption><span>Methods</span><span class="tabEnd"> </span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Method and Description</th> </tr> <tr class="altColor"> <td class="colFirst"><code>protected javax.management.MBeanAttributeInfo[]</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#createMBeanAttributeInfo()">createMBeanAttributeInfo</a></strong>()</code> <div class="block">To be overridden to return metadata information about manageable attributes.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected javax.management.MBeanConstructorInfo[]</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#createMBeanConstructorInfo()">createMBeanConstructorInfo</a></strong>()</code> <div class="block">To be overridden to return metadata information about manageable constructors.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>protected javax.management.MBeanInfo</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#createMBeanInfo()">createMBeanInfo</a></strong>()</code> <div class="block">Creates the MBeanInfo for this instance, calling in succession factory methods that the user can override.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected javax.management.MBeanNotificationInfo[]</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#createMBeanNotificationInfo()">createMBeanNotificationInfo</a></strong>()</code> <div class="block">To be overridden to return metadata information about manageable notifications.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>protected javax.management.MBeanOperationInfo[]</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#createMBeanOperationInfo()">createMBeanOperationInfo</a></strong>()</code> <div class="block">To be overridden to return metadata information about manageable operations.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected java.lang.reflect.Method</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#findMethod(java.lang.Class, java.lang.String, java.lang.Class[])">findMethod</a></strong>(java.lang.Class cls, java.lang.String name, java.lang.Class[] params)</code> <div class="block">Returns the (public) method with the given name and signature on the given class.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>java.lang.Object</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#getAttribute(java.lang.String)">getAttribute</a></strong>(java.lang.String attribute)</code> <div class="block">Returns the value of the manageable attribute, as specified by the DynamicMBean interface.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>javax.management.AttributeList</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#getAttributes(java.lang.String[])">getAttributes</a></strong>(java.lang.String[] attributes)</code> <div class="block">Returns the manageable attributes, as specified by the DynamicMBean interface.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>protected java.lang.String</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#getMBeanClassName()">getMBeanClassName</a></strong>()</code> <div class="block">To be overridden to return metadata information about the class name of this MBean; by default returns this class' name.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected java.lang.String</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#getMBeanDescription()">getMBeanDescription</a></strong>()</code> <div class="block">To be overridden to return metadata information about the description of this MBean.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>javax.management.MBeanInfo</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#getMBeanInfo()">getMBeanInfo</a></strong>()</code> <div class="block">Returns the MBeaInfo, as specified by the DynamicMBean interface; the default implementation caches the value returned by <a href="../mx4j/AbstractDynamicMBean.html#createMBeanInfo()"><code>createMBeanInfo()</code></a> (that is thus called only once).</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected java.lang.Object</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#getResource()">getResource</a></strong>()</code> <div class="block">Returns the resource object on which invoke attribute's getters, attribute's setters and operation's methods</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>protected java.lang.Object</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#invoke(java.lang.Object, java.lang.String, java.lang.Class[], java.lang.Object[])">invoke</a></strong>(java.lang.Object resource, java.lang.String name, java.lang.Class[] params, java.lang.Object[] args)</code> <div class="block">Looks up the method to call on given resource and invokes it.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected java.lang.Object</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#invoke(java.lang.String, java.lang.Class[], java.lang.Object[])">invoke</a></strong>(java.lang.String name, java.lang.Class[] params, java.lang.Object[] args)</code> <div class="block"><strong>Deprecated.</strong> <div class="block"><i>Replaced by <a href="../mx4j/AbstractDynamicMBean.html#invoke(java.lang.Object, java.lang.String, java.lang.Class[], java.lang.Object[])"><code>invoke(Object,String,Class[],Object[])</code></a>. <br> The resource passed is the resource as set by <a href="../mx4j/AbstractDynamicMBean.html#setResource(java.lang.Object)"><code>setResource(java.lang.Object)</code></a> or - if it is null - 'this' instance. <br> This method is deprecated because it is not thread safe.</i></div> </div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>java.lang.Object</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#invoke(java.lang.String, java.lang.Object[], java.lang.String[])">invoke</a></strong>(java.lang.String method, java.lang.Object[] arguments, java.lang.String[] params)</code> <div class="block">Returns the value of the manageable operation as specified by the DynamicMBean interface</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>protected java.lang.Object</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#invokeMethod(java.lang.reflect.Method, java.lang.Object, java.lang.Object[])">invokeMethod</a></strong>(java.lang.reflect.Method method, java.lang.Object resource, java.lang.Object[] args)</code> <div class="block">Invokes the given method on the given resource object with the given arguments.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#setAttribute(javax.management.Attribute)">setAttribute</a></strong>(javax.management.Attribute attribute)</code> <div class="block">Sets the value of the manageable attribute, as specified by the DynamicMBean interface.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>javax.management.AttributeList</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#setAttributes(javax.management.AttributeList)">setAttributes</a></strong>(javax.management.AttributeList attributes)</code> <div class="block">Sets the manageable attributes, as specified by the DynamicMBean interface.</div> </td> </tr> <tr class="altColor"> <td class="colFirst"><code>protected void</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#setMBeanInfo(javax.management.MBeanInfo)">setMBeanInfo</a></strong>(javax.management.MBeanInfo info)</code> <div class="block">Sets the MBeanInfo object cached by this instance.</div> </td> </tr> <tr class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><strong><a href="../mx4j/AbstractDynamicMBean.html#setResource(java.lang.Object)">setResource</a></strong>(java.lang.Object resource)</code> <div class="block">Specifies the resource object on which invoke attribute's getters, attribute's setters and operation's methods.</div> </td> </tr> </table> <ul class="blockList"> <li class="blockList"><a name="methods_inherited_from_class_java.lang.Object"> <!-- --> </a> <h3>Methods inherited from class java.lang.Object</h3> <code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li> </ul> </li> </ul> </li> </ul> </div> <div class="details"> <ul class="blockList"> <li class="blockList"> <!-- ========= CONSTRUCTOR DETAIL ======== --> <ul class="blockList"> <li class="blockList"><a name="constructor_detail"> <!-- --> </a> <h3>Constructor Detail</h3> <a name="AbstractDynamicMBean()"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>AbstractDynamicMBean</h4> <pre>protected AbstractDynamicMBean()</pre> <div class="block">Only subclasses can create a new instance of an AbstractDynamicMBean.</div> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../mx4j/AbstractDynamicMBean.html#createMBeanConstructorInfo()"><code>createMBeanConstructorInfo()</code></a></dd></dl> </li> </ul> </li> </ul> <!-- ============ METHOD DETAIL ========== --> <ul class="blockList"> <li class="blockList"><a name="method_detail"> <!-- --> </a> <h3>Method Detail</h3> <a name="getAttribute(java.lang.String)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getAttribute</h4> <pre>public java.lang.Object getAttribute(java.lang.String attribute) throws javax.management.AttributeNotFoundException, javax.management.MBeanException, javax.management.ReflectionException</pre> <div class="block">Returns the value of the manageable attribute, as specified by the DynamicMBean interface.</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code>getAttribute</code> in interface <code>javax.management.DynamicMBean</code></dd> <dt><span class="strong">Throws:</span></dt> <dd><code>javax.management.AttributeNotFoundException</code></dd> <dd><code>javax.management.MBeanException</code></dd> <dd><code>javax.management.ReflectionException</code></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../mx4j/AbstractDynamicMBean.html#createMBeanAttributeInfo()"><code>createMBeanAttributeInfo()</code></a></dd></dl> </li> </ul> <a name="getAttributes(java.lang.String[])"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getAttributes</h4> <pre>public javax.management.AttributeList getAttributes(java.lang.String[] attributes)</pre> <div class="block">Returns the manageable attributes, as specified by the DynamicMBean interface.</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code>getAttributes</code> in interface <code>javax.management.DynamicMBean</code></dd> </dl> </li> </ul> <a name="getMBeanInfo()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getMBeanInfo</h4> <pre>public javax.management.MBeanInfo getMBeanInfo()</pre> <div class="block">Returns the MBeaInfo, as specified by the DynamicMBean interface; the default implementation caches the value returned by <a href="../mx4j/AbstractDynamicMBean.html#createMBeanInfo()"><code>createMBeanInfo()</code></a> (that is thus called only once).</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code>getMBeanInfo</code> in interface <code>javax.management.DynamicMBean</code></dd> <dt><span class="strong">See Also:</span></dt><dd><a href="../mx4j/AbstractDynamicMBean.html#createMBeanInfo()"><code>createMBeanInfo()</code></a>, <a href="../mx4j/AbstractDynamicMBean.html#setMBeanInfo(javax.management.MBeanInfo)"><code>setMBeanInfo(javax.management.MBeanInfo)</code></a></dd></dl> </li> </ul> <a name="invoke(java.lang.String, java.lang.Object[], java.lang.String[])"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>invoke</h4> <pre>public java.lang.Object invoke(java.lang.String method, java.lang.Object[] arguments, java.lang.String[] params) throws javax.management.MBeanException, javax.management.ReflectionException</pre> <div class="block">Returns the value of the manageable operation as specified by the DynamicMBean interface</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code>invoke</code> in interface <code>javax.management.DynamicMBean</code></dd> <dt><span class="strong">Throws:</span></dt> <dd><code>javax.management.MBeanException</code></dd> <dd><code>javax.management.ReflectionException</code></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../mx4j/AbstractDynamicMBean.html#createMBeanOperationInfo()"><code>createMBeanOperationInfo()</code></a></dd></dl> </li> </ul> <a name="setAttribute(javax.management.Attribute)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>setAttribute</h4> <pre>public void setAttribute(javax.management.Attribute attribute) throws javax.management.AttributeNotFoundException, javax.management.InvalidAttributeValueException, javax.management.MBeanException, javax.management.ReflectionException</pre> <div class="block">Sets the value of the manageable attribute, as specified by the DynamicMBean interface.</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code>setAttribute</code> in interface <code>javax.management.DynamicMBean</code></dd> <dt><span class="strong">Throws:</span></dt> <dd><code>javax.management.AttributeNotFoundException</code></dd> <dd><code>javax.management.InvalidAttributeValueException</code></dd> <dd><code>javax.management.MBeanException</code></dd> <dd><code>javax.management.ReflectionException</code></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../mx4j/AbstractDynamicMBean.html#createMBeanAttributeInfo()"><code>createMBeanAttributeInfo()</code></a></dd></dl> </li> </ul> <a name="setAttributes(javax.management.AttributeList)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>setAttributes</h4> <pre>public javax.management.AttributeList setAttributes(javax.management.AttributeList attributes)</pre> <div class="block">Sets the manageable attributes, as specified by the DynamicMBean interface.</div> <dl> <dt><strong>Specified by:</strong></dt> <dd><code>setAttributes</code> in interface <code>javax.management.DynamicMBean</code></dd> </dl> </li> </ul> <a name="invoke(java.lang.String, java.lang.Class[], java.lang.Object[])"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>invoke</h4> <pre>protected java.lang.Object invoke(java.lang.String name, java.lang.Class[] params, java.lang.Object[] args) throws javax.management.InvalidAttributeValueException, javax.management.MBeanException, javax.management.ReflectionException</pre> <div class="block"><span class="strong">Deprecated.</span> <i>Replaced by <a href="../mx4j/AbstractDynamicMBean.html#invoke(java.lang.Object, java.lang.String, java.lang.Class[], java.lang.Object[])"><code>invoke(Object,String,Class[],Object[])</code></a>. <br> The resource passed is the resource as set by <a href="../mx4j/AbstractDynamicMBean.html#setResource(java.lang.Object)"><code>setResource(java.lang.Object)</code></a> or - if it is null - 'this' instance. <br> This method is deprecated because it is not thread safe.</i></div> <dl><dt><span class="strong">Throws:</span></dt> <dd><code>javax.management.InvalidAttributeValueException</code></dd> <dd><code>javax.management.MBeanException</code></dd> <dd><code>javax.management.ReflectionException</code></dd></dl> </li> </ul> <a name="invoke(java.lang.Object, java.lang.String, java.lang.Class[], java.lang.Object[])"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>invoke</h4> <pre>protected java.lang.Object invoke(java.lang.Object resource, java.lang.String name, java.lang.Class[] params, java.lang.Object[] args) throws javax.management.InvalidAttributeValueException, javax.management.MBeanException, javax.management.ReflectionException</pre> <div class="block">Looks up the method to call on given resource and invokes it. The default implementation requires that the methods that implement attribute and operation behavior on the resource object are public, but it is possible to override this behavior, and call also private methods.</div> <dl><dt><span class="strong">Throws:</span></dt> <dd><code>javax.management.InvalidAttributeValueException</code></dd> <dd><code>javax.management.MBeanException</code></dd> <dd><code>javax.management.ReflectionException</code></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../mx4j/AbstractDynamicMBean.html#findMethod(java.lang.Class, java.lang.String, java.lang.Class[])"><code>findMethod(java.lang.Class, java.lang.String, java.lang.Class[])</code></a>, <a href="../mx4j/AbstractDynamicMBean.html#invokeMethod(java.lang.reflect.Method, java.lang.Object, java.lang.Object[])"><code>invokeMethod(java.lang.reflect.Method, java.lang.Object, java.lang.Object[])</code></a></dd></dl> </li> </ul> <a name="findMethod(java.lang.Class, java.lang.String, java.lang.Class[])"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>findMethod</h4> <pre>protected java.lang.reflect.Method findMethod(java.lang.Class cls, java.lang.String name, java.lang.Class[] params) throws java.lang.NoSuchMethodException</pre> <div class="block">Returns the (public) method with the given name and signature on the given class. <br> Override to return non-public methods, or to map methods to other classes, or to map methods with different signatures</div> <dl><dt><span class="strong">Throws:</span></dt> <dd><code>java.lang.NoSuchMethodException</code></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../mx4j/AbstractDynamicMBean.html#invoke(java.lang.String, java.lang.Class[], java.lang.Object[])"><code>invoke(String, Class[], Object[])</code></a>, <a href="../mx4j/AbstractDynamicMBean.html#invokeMethod(java.lang.reflect.Method, java.lang.Object, java.lang.Object[])"><code>invokeMethod(java.lang.reflect.Method, java.lang.Object, java.lang.Object[])</code></a></dd></dl> </li> </ul> <a name="invokeMethod(java.lang.reflect.Method, java.lang.Object, java.lang.Object[])"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>invokeMethod</h4> <pre>protected java.lang.Object invokeMethod(java.lang.reflect.Method method, java.lang.Object resource, java.lang.Object[] args) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException</pre> <div class="block">Invokes the given method on the given resource object with the given arguments. <br> Override to map methods to other objects, or to map methods with different arguments</div> <dl><dt><span class="strong">Throws:</span></dt> <dd><code>java.lang.IllegalAccessException</code></dd> <dd><code>java.lang.IllegalArgumentException</code></dd> <dd><code>java.lang.reflect.InvocationTargetException</code></dd><dt><span class="strong">See Also:</span></dt><dd><a href="../mx4j/AbstractDynamicMBean.html#invoke(java.lang.String, java.lang.Class[], java.lang.Object[])"><code>invoke(String, Class[], Object[])</code></a>, <a href="../mx4j/AbstractDynamicMBean.html#findMethod(java.lang.Class, java.lang.String, java.lang.Class[])"><code>findMethod(java.lang.Class, java.lang.String, java.lang.Class[])</code></a></dd></dl> </li> </ul> <a name="getResource()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getResource</h4> <pre>protected java.lang.Object getResource()</pre> <div class="block">Returns the resource object on which invoke attribute's getters, attribute's setters and operation's methods</div> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../mx4j/AbstractDynamicMBean.html#setResource(java.lang.Object)"><code>setResource(java.lang.Object)</code></a></dd></dl> </li> </ul> <a name="setResource(java.lang.Object)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>setResource</h4> <pre>public void setResource(java.lang.Object resource)</pre> <div class="block">Specifies the resource object on which invoke attribute's getters, attribute's setters and operation's methods.</div> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../mx4j/AbstractDynamicMBean.html#getResource()"><code>getResource()</code></a></dd></dl> </li> </ul> <a name="setMBeanInfo(javax.management.MBeanInfo)"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>setMBeanInfo</h4> <pre>protected void setMBeanInfo(javax.management.MBeanInfo info)</pre> <div class="block">Sets the MBeanInfo object cached by this instance. <br> The given MBeanInfo is not cloned.</div> <dl><dt><span class="strong">See Also:</span></dt><dd><a href="../mx4j/AbstractDynamicMBean.html#getMBeanInfo()"><code>getMBeanInfo()</code></a></dd></dl> </li> </ul> <a name="createMBeanInfo()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>createMBeanInfo</h4> <pre>protected javax.management.MBeanInfo createMBeanInfo()</pre> <div class="block">Creates the MBeanInfo for this instance, calling in succession factory methods that the user can override. Information to create MBeanInfo are taken calling the following methods: <ul> <li><code><a href="../mx4j/AbstractDynamicMBean.html#createMBeanAttributeInfo()"><code>createMBeanAttributeInfo()</code></a></code></li> <li><code><a href="../mx4j/AbstractDynamicMBean.html#createMBeanConstructorInfo()"><code>createMBeanConstructorInfo()</code></a></code></li> <li><code><a href="../mx4j/AbstractDynamicMBean.html#createMBeanOperationInfo()"><code>createMBeanOperationInfo()</code></a></code></li> <li><code><a href="../mx4j/AbstractDynamicMBean.html#createMBeanNotificationInfo()"><code>createMBeanNotificationInfo()</code></a></code></li> <li><code><a href="../mx4j/AbstractDynamicMBean.html#getMBeanClassName()"><code>getMBeanClassName()</code></a></code></li> <li><code><a href="../mx4j/AbstractDynamicMBean.html#getMBeanDescription()"><code>getMBeanDescription()</code></a></code></li> </ul></div> </li> </ul> <a name="createMBeanAttributeInfo()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>createMBeanAttributeInfo</h4> <pre>protected javax.management.MBeanAttributeInfo[] createMBeanAttributeInfo()</pre> <div class="block">To be overridden to return metadata information about manageable attributes.</div> </li> </ul> <a name="createMBeanConstructorInfo()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>createMBeanConstructorInfo</h4> <pre>protected javax.management.MBeanConstructorInfo[] createMBeanConstructorInfo()</pre> <div class="block">To be overridden to return metadata information about manageable constructors.</div> </li> </ul> <a name="createMBeanOperationInfo()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>createMBeanOperationInfo</h4> <pre>protected javax.management.MBeanOperationInfo[] createMBeanOperationInfo()</pre> <div class="block">To be overridden to return metadata information about manageable operations.</div> </li> </ul> <a name="createMBeanNotificationInfo()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>createMBeanNotificationInfo</h4> <pre>protected javax.management.MBeanNotificationInfo[] createMBeanNotificationInfo()</pre> <div class="block">To be overridden to return metadata information about manageable notifications.</div> </li> </ul> <a name="getMBeanClassName()"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getMBeanClassName</h4> <pre>protected java.lang.String getMBeanClassName()</pre> <div class="block">To be overridden to return metadata information about the class name of this MBean; by default returns this class' name.</div> </li> </ul> <a name="getMBeanDescription()"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>getMBeanDescription</h4> <pre>protected java.lang.String getMBeanDescription()</pre> <div class="block">To be overridden to return metadata information about the description of this MBean.</div> </li> </ul> </li> </ul> </li> </ul> </div> </div> <!-- ========= END OF CLASS DATA ========= --> <!-- ======= START OF BOTTOM NAVBAR ====== --> <div class="bottomNav"><a name="navbar_bottom"> <!-- --> </a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> <!-- --> </a> <ul class="navList" title="Navigation"> <li><a href="../overview-summary.html">Overview</a></li> <li><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/AbstractDynamicMBean.html">Use</a></li> <li><a href="package-tree.html">Tree</a></li> <li><a href="../deprecated-list.html">Deprecated</a></li> <li><a href="../index-all.html">Index</a></li> <li><a href="../help-doc.html">Help</a></li> </ul> </div> <div class="subNav"> <ul class="navList"> <li>Prev Class</li> <li><a href="../mx4j/ImplementationException.html" title="class in mx4j"><span class="strong">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../index.html?mx4j/AbstractDynamicMBean.html" target="_top">Frames</a></li> <li><a href="AbstractDynamicMBean.html" target="_top">No Frames</a></li> </ul> <ul class="navList" id="allclasses_navbar_bottom"> <li><a href="../allclasses-noframe.html">All Classes</a></li> </ul> <div> <script type="text/javascript"><!-- allClassesLink = document.getElementById("allclasses_navbar_bottom"); if(window==top) { allClassesLink.style.display = "block"; } else { allClassesLink.style.display = "none"; } //--> </script> </div> <div> <ul class="subNavList"> <li>Summary: </li> <li>Nested | </li> <li>Field | </li> <li><a href="#constructor_summary">Constr</a> | </li> <li><a href="#method_summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li><a href="#constructor_detail">Constr</a> | </li> <li><a href="#method_detail">Method</a></li> </ul> </div> <a name="skip-navbar_bottom"> <!-- --> </a></div> <!-- ======== END OF BOTTOM NAVBAR ======= --> <p class="legalCopy"><small><center><small>Copyright © 2001-2005 The MX4J Contributors. All Rights Reserved.</small></center></small></p> </body> </html>