/* * @(#)file Descriptor.java * @(#)author IBM Corp. * @(#)version 1.23 * @(#)lastedit 04/02/10 */ /* * Copyright IBM Corp. 1999-2000. All rights reserved. * * The program is provided "as is" without any warranty express or implied, * including the warranty of non-infringement and the implied warranties of * merchantibility and fitness for a particular purpose. IBM will not be * liable for any damages suffered by you or any third party claim against * you regarding the Program. * * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * This software is the proprietary information of Sun Microsystems, Inc. * Use is subject to license terms. * * Copyright 2004 Sun Microsystems, Inc. Tous droits reserves. * Ce logiciel est propriete de Sun Microsystems, Inc. * Distribue par des licences qui en restreignent l'utilisation. * */ package javax.management; import javax.management.RuntimeOperationsException; import javax.management.MBeanException; import com.sun.jmx.trace.Trace; /** * This interface represents the behavioral metadata set for a JMX Element. * For examples, a descriptor is part of the ModelMBeanInfo, ModelMBeanNotificationInfo, ModelMBeanAttributeInfo, * ModelMBeanConstructorInfo, and ModelMBeanParameterInfo. *

* A descriptor consists of a collection of fields. Each field is in fieldname=fieldvalue format. *

* All field names and values are not predefined. New fields can be defined and added by any program. * In the case of ModelMBean some fields have been predefined for consistency of implementation and support by the ModelMBeanInfo * ModelMBean*Info, and ModelMBean classes. *

* * @since 1.5 */ public interface Descriptor extends java.io.Serializable, Cloneable { /** * Returns the value for a specific fieldname. * * @param fieldName The field name in question; if not found, null is returned. * * @return Object Field value. * * @exception RuntimeOperationsException for illegal value for field name. * */ public Object getFieldValue(String fieldName) throws RuntimeOperationsException; /** * Sets the value for a specific fieldname. The field value will be validated before * it is set. If it is not valid, then an exception will be thrown. This will modify * an existing field or add a new field. * * @param fieldName The field name to be set. Cannot be null or empty. * @param fieldValue The field value to be set for the field * name. Can be null. * * @exception RuntimeOperationsException for illegal value for field name or field value. * */ public void setField(String fieldName, Object fieldValue) throws RuntimeOperationsException; /** * Returns all of the fields contained in this descriptor as a string array. * * @return String array of fields in the format fieldName=fieldValue * If the value of a field is not a String, then the toString() method * will be called on it and the returned value used as the value for * the field in the returned array. Object values which are not Strings * will be enclosed in parentheses. If the descriptor is empty, you will get * an empty array. * * @see #setFields */ public String[] getFields() ; /** * Returns all the fields names in the descriptor. * * @return String array of fields names. If the descriptor is empty, you will get * an empty array. * */ public String[] getFieldNames() ; /** * Returns all the field values in the descriptor as an array of Objects. The * returned values are in the same order as the fieldNames String array parameter. * * @param fieldNames String array of the names of the fields that the values * should be returned for. If the array is empty then an empty array will be * returned. If the array is 'null' then all values will be returned. If a field * name in the array does not exist, then null is returned for the matching array * element being returned. * * @return Object array of field values. If the descriptor is empty, you will get * an empty array. * */ public Object[] getFieldValues(String[] fieldNames) ; /** * Removes a field from the descriptor. * * @param fieldName String name of the field to be removed. * If the field is not found no exception is thrown. */ public void removeField(String fieldName) ; /** * Sets all Fields in the list to the new value in with the same index * in the fieldValue array. Array sizes must match. * The field value will be validated before it is set. * If it is not valid, then an exception will be thrown. * If the arrays are empty, then no change will take effect. * * @param fieldNames String array of field names. The array and array elements cannot be null. * @param fieldValues Object array of the corresponding field values. The array cannot be null. * Elements of the array can be null. * * @exception RuntimeOperationsException for illegal value for field Names or field Values. * Neither can be null. The array lengths must be equal. * If the descriptor construction fails for any reason, this exception will be thrown. * * @see #getFields */ public void setFields(String[] fieldNames, Object[] fieldValues) throws RuntimeOperationsException; /** * Returns a new Descriptor which is a duplicate of the Descriptor. * * @exception RuntimeOperationsException for illegal value for field Names or field Values. * If the descriptor construction fails for any reason, this exception will be thrown. */ public Object clone() throws RuntimeOperationsException; /** * Returns true if all of the fields have legal values given their * names. * * @return true if the values are legal. * * @exception RuntimeOperationsException If the validity checking fails for any reason, this exception will be thrown. */ public boolean isValid() throws RuntimeOperationsException; }