- /*
 - * @(#)MetaData.java 1.54 03/12/19
 - *
 - * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
 - * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 - */
 - package com.sun.jmx.mbeanserver;
 - import javax.management.* ;
 - /**
 - * The MetaData interface provides local to the metadata service in
 - * an agent.
 - *
 - * @since 1.5
 - * @since.unbundled JMX RI 1.2
 - */
 - public interface MetaData {
 - /**
 - * This methods tests if the MBean is JMX compliant
 - */
 - public void testCompliance(Class c) throws NotCompliantMBeanException;
 - /**
 - * Invokes the preRegister method of an MBean that implements
 - * MBeanRegistration
 - */
 - public ObjectName preRegisterInvoker(Object moi, ObjectName name,
 - MBeanServer mbs)
 - throws InstanceAlreadyExistsException, MBeanRegistrationException;
 - /**
 - * Invokes the postRegister method of an MBean that implements
 - * MBeanRegistration
 - */
 - public void postRegisterInvoker(Object moi, boolean registrationDone);
 - /**
 - * Invokes the preDeregister method of an MBean that implements
 - * MBeanRegistration
 - */
 - public void preDeregisterInvoker(Object moi)
 - throws MBeanRegistrationException;
 - /**
 - * Invokes the postDeregister method of an MBean that implements
 - * MBeanRegistration
 - */
 - public void postDeregisterInvoker(Object moi);
 - /**
 - * This method discovers the attributes and operations that an MBean
 - * exposes for management.
 - *
 - * @param instance The MBean whose class is to be analyzed.
 - *
 - * @return An instance of MBeanInfo allowing to retrieve all methods
 - * and operations of this MBean.
 - *
 - * @exception IntrospectionException if an exception occurs during
 - * introspection.
 - *
 - */
 - public MBeanInfo getMBeanInfo(Object instance)
 - throws IntrospectionException ;
 - /**
 - * This method returns the class name of an MBean.
 - *
 - * @param instance The MBean whose class is to be analyzed.
 - *
 - * @return The class name of the MBean, as registered in its MBeanInfo.
 - *
 - * @exception IntrospectionException if an exception occurs during
 - * introspection.
 - *
 - */
 - public String getMBeanClassName(Object instance)
 - throws IntrospectionException, NotCompliantMBeanException ;
 - /**
 - * Gets the value of a specific attribute of an MBean.
 - *
 - * @param instance The MBean from which the attribute is to be retrieved.
 - * @param attribute An String specifying the name of the attribute to be
 - * retrieved.
 - *
 - * @return The value of the retrieved attribute.
 - *
 - * @exception AttributeNotFoundException The specified attribute is
 - * not accessible in the MBean.
 - * @exception MBeanException Wraps an exception thrown by the MBean's
 - * getter.
 - * @exception ReflectionException Wraps a java.lang.Exception thrown
 - * while trying to invoke the getter.
 - */
 - public Object getAttribute(Object instance, String attribute)
 - throws MBeanException, AttributeNotFoundException, ReflectionException;
 - /**
 - * Enables the values of several attributes of an MBean.
 - *
 - * @param instance The MBean from which the attributes are to be retrieved.
 - * @param attributes A list of the attributes to be retrieved.
 - *
 - * @return The list of the retrieved attributes.
 - *
 - * @exception ReflectionException An exception occurred when trying to invoke the getAttributes method of a Dynamic MBean.
 - *
 - */
 - public AttributeList getAttributes(Object instance, String[] attributes)
 - throws ReflectionException ;
 - /**
 - * Sets the value of a specific attribute of an MBean.
 - *
 - * @param instance The MBean within which the attribute is to be set.
 - * @param attribute The identification of the attribute to be set and
 - * the value it is to be set to.
 - *
 - * @return The value of the attribute that has been set.
 - *
 - * @exception AttributeNotFoundException The specified attribute is
 - * not accessible in the MBean.
 - * @exception InvalidAttributeValueException The specified value for
 - * the attribute is not valid.
 - * @exception MBeanException Wraps an exception thrown by the MBean's
 - * setter.
 - * @exception ReflectionException Wraps a java.lang.Exception thrown
 - * while trying to invoke the setter.
 - */
 - public Object setAttribute(Object instance, Attribute attribute)
 - throws AttributeNotFoundException, InvalidAttributeValueException,
 - MBeanException, ReflectionException;
 - /**
 - * Sets the values of several attributes of an MBean.
 - *
 - * @param instance The MBean within which the attributes are to be set.
 - * @param attributes A list of attributes: The identification of the
 - * attributes to be set and the values they are to be set to.
 - *
 - * @return The list of attributes that were set, with their new values.
 - *
 - * @exception ReflectionException An exception occurred when trying to
 - * invoke the getAttributes method of a Dynamic MBean.
 - *
 - */
 - public AttributeList setAttributes(Object instance,
 - AttributeList attributes)
 - throws ReflectionException;
 - /**
 - * Invokes an operation on an MBean.
 - *
 - * @param instance The MBean on which the method is to be invoked.
 - * @param operationName The name of the operation to be invoked.
 - * @param params An array containing the parameters to be set when the operation is
 - * invoked
 - * @param signature An array containing the signature of the operation. The class objects will
 - * be loaded using the same class loader as the one used for loading the
 - * MBean on which the operation was invoked.
 - *
 - * @return The object returned by the operation, which represents the result of
 - * invoking the operation on the MBean specified.
 - *
 - * @exception MBeanException Wraps an exception thrown by the MBean's invoked method.
 - * @exception ReflectionException Wraps a java.lang.Exception thrown while trying to invoke the method.
 - */
 - public Object invoke(Object instance, String operationName,
 - Object params[],String signature[])
 - throws MBeanException, ReflectionException;
 - /**
 - * Determine whether the given MBean is an instance of a given
 - * class/interface.
 - *
 - * @param instance The MBean concerned.
 - * @param className The name of the class or interface.
 - * @return <code>true</code> if the MBean is an instance of the
 - * given <code>class</code>, <code>false</code> otherwise.
 - * @exception ReflectionException if
 - **/
 - public boolean isInstanceOf(Object instance, String className)
 - throws ReflectionException;
 - }