001: /**
002: * The XMOJO Project 5
003: * Copyright © 2003 XMOJO.org. All rights reserved.
004:
005: * NO WARRANTY
006:
007: * BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
008: * THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
009: * OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
010: * PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
011: * OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
012: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
013: * TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE
014: * LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
015: * REPAIR OR CORRECTION.
016:
017: * IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
018: * ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
019: * THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
020: * GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
021: * USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF
022: * DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
023: * PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE),
024: * EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
025: * SUCH DAMAGES.
026: **/package javax.management;
027:
028: /**
029: * Defines the methods that should be implemented by a Dynamic MBean
030: * (MBean that exposes a dynamic management interface).
031: */
032: public abstract interface DynamicMBean {
033: /**
034: * Provides the exposed attributes and actions of the Dynamic MBean using
035: * an MBeanInfo object.
036: *
037: * @return An instance of <CODE>MBeanInfo</CODE> allowing all attributes
038: * and actions exposed by this Dynamic MBean to be retrieved.
039: */
040: public MBeanInfo getMBeanInfo();
041:
042: /**
043: * Obtains the value of a specific attribute of the Dynamic MBean.
044: *
045: * @param attribute - The name of the attribute to be retrieved
046: *
047: * @return The value of the attribute retrieved.
048: *
049: * @exception AttributeNotFoundException - The specified attribute
050: * does not exist or cannot be retrieved.
051: *
052: * @exception MBeanException - Wraps a <CODE>java.lang.Exception</CODE>
053: * thrown by the MBean's getter.
054: *
055: * @exception ReflectionException - Wraps a <CODE>java.lang.Exception</CODE>
056: * thrown while trying to invoke the getter.
057: */
058: public Object getAttribute(String attribute)
059: throws AttributeNotFoundException, MBeanException,
060: ReflectionException;
061:
062: /**
063: * Sets the value of a specific attribute of the Dynamic MBean.
064: *
065: * @param attribute - The identification of the attribute to be set and
066: * the value it is to be set to.
067: *
068: * @exception AttributeNotFoundException - The specified attribute
069: * does not exist or cannot be retrieved.
070: *
071: * @exception InvalidAttributeValueException - The specified value is
072: * not a valid value for the attribute.
073: *
074: * @exception MBeanException - Wraps a <CODE>java.lang.Exception</CODE>
075: * thrown by the MBean's setter.
076: *
077: * @exception ReflectionException - Wraps a <CODE>java.lang.Exception</CODE>
078: * thrown while trying to invoke the MBean's setter.
079: */
080: public void setAttribute(Attribute attribute)
081: throws AttributeNotFoundException,
082: InvalidAttributeValueException, MBeanException,
083: ReflectionException;
084:
085: /**
086: * Enables the values of several attributes of the Dynamic MBean.
087: *
088: * @param attributes A list of the attributes to be retrieved.
089: *
090: * @return The list of attributes retrieved.
091: *
092: */
093: public AttributeList getAttributes(String[] attributes);
094:
095: /**
096: * Sets the values of several attributes of the Dynamic MBean.
097: *
098: * @param name The object name of the MBean within which the attributes
099: * are to be set.
100: *
101: * @param attributes A list of attributes: The identification of the
102: * attributes to be set and the values they are to be set to.
103: *
104: * @return The list of attributes that were set, with their new values.
105: */
106: public AttributeList setAttributes(AttributeList attributes);
107:
108: /**
109: * Allows an action to be invoked on the Dynamic MBean.
110: *
111: * @param actionName - The name of the action to be invoked.
112: *
113: * @param params - An array containing the parameters to be set when
114: * the action is invoked.
115: *
116: * @param signature - An array containing the signature of the action.
117: * The class objects will be loaded through the same class
118: * loader as the one used for loading the MBean on which
119: * the action is invoked.
120: *
121: * @return The object returned by the action, which represents the result
122: * of invoking the action on the MBean specified.
123: *
124: * @exception MBeanException - Wraps a <CODE>java.lang.Exception</CODE>
125: * thrown by the MBean's invoked method.
126: *
127: * @exception ReflectionException - Wraps a <CODE>java.lang.Exception</CODE>
128: * thrown while trying to invoke the method
129: */
130: public Object invoke(String actionName, Object[] params,
131: String[] signature) throws MBeanException,
132: ReflectionException;
133: }
|