OpenMBeanInfo.java |
/* * JBoss, the OpenSource J2EE webOS * * Distributable under LGPL license. * See terms of license at gnu.org. */ package javax.management.openmbean; import javax.management.MBeanAttributeInfo; import javax.management.MBeanConstructorInfo; import javax.management.MBeanOperationInfo; import javax.management.MBeanNotificationInfo; /** * An MBean is an OpenMBean when its getMBeanInfo() returns an MBeanInfo * implementing this interface and extending javax.management.MBeanInfo.<p> * * {@link OpenMBeanInfoSupport} is an example of such a class.<p> * * The MBean info classes should be the OpenInfo versions. e.g. * an {@link OpenMBeanAttributeInfo} instead of MBeanAttributeInfo. * * @author <a href="mailto:Adrian.Brock@HappeningTimes.com">Adrian Brock</a>. * * @version $Revision: 1.4 $ * */ public interface OpenMBeanInfo { // Attributes ---------------------------------------------------- // Constructors -------------------------------------------------- // Public -------------------------------------------------------- /** * Retrieve the fully qualified class name of the open MBean the * implementation of this interface describes. * * @return the fully qualified class name. */ String getClassName(); /** * Retrieve a human readable description of the open MBean the * implementation of this interface describes. * * @return the description. */ String getDescription(); /** * Retrieve an array of OpenMBeanAttributeInfos describing each attribute * of the open mbean.<p> * * Each instance should also implement OpenMBeanAttributeInfo * * @return the array of attributes. */ MBeanAttributeInfo[] getAttributes(); /** * Retrieve an array of OpenMBeanOperationInfos describing each operation * of the open mbean.<p> * * Each instance should also implement OpenMBeanOperationInfo * * @return the array of operations. */ MBeanOperationInfo[] getOperations(); /** * Retrieve an array of OpenMBeanConstructorInfos describing each constructor * of the open mbean.<p> * * Each instance should also implement OpenMBeanConstructorInfo * * @return the array of constructors. */ MBeanConstructorInfo[] getConstructors(); /** * Retrieve an array of MBeanNotificationInfos describing each notification * of the open mbean. * * @return the array of notifications. */ MBeanNotificationInfo[] getNotifications(); /** * Compares an object for equality with the implementing class.<p> * * The object is not null<br> * The object implements the open mbean info interface<br> * The getClassName() methods return strings that are equal<br> * The information objects (attributes, constructors, operations and * notifications) are the equal * * @param obj the object to test * @return true when above is true, false otherwise */ boolean equals(Object obj); /** * Generates a hashcode for the implementation.<p> * * The hashcode is the sum of the hashcodes for<br> * getClassName()<br> * java.util.HashSet(java.util.Arrays.asList(getAttributes()).hashCode()<br> * java.util.HashSet(java.util.Arrays.asList(getConstructors()).hashCode()<br> * java.util.HashSet(java.util.Arrays.asList(getOperations()).hashCode()<br> * java.util.HashSet(java.util.Arrays.asList(getNotifications()).hashCode()<br> * * @return the calculated hashcode */ int hashCode(); /** * A string representation of the open mbean info.<p> * * It is made up of<br> * The implementing class<br> * getClassName()<br> * toString() for each of the info arrays * * @return the string */ String toString(); }
OpenMBeanInfo.java |