JavaTM 2 Platform
Standard Ed. 5.0

javax.management.modelmbean
类 DescriptorSupport

java.lang.Object
  继承者 javax.management.modelmbean.DescriptorSupport
所有已实现的接口:
Serializable, Cloneable, Descriptor

public class DescriptorSupport
extends Object
implements Descriptor

此类表示 ModelMBean 元素的元数据集。描述符是 ModelMBeanInfo、ModelMBeanNotificationInfo、ModelMBeanAttributeInfo、ModelMBeanConstructorInfo 和 ModelMBeanParameterInfo 的一部分。

描述符由一个字段集合组成。每个字段都采用 fieldname=fieldvalue 格式。字段名称是不区分大小写的,在字段值上将保留大小写。

所有字段名称和值都不是预定义的。任何程序都可以定义和添加新字段。出于实现一致性考虑,某些字段已预定义,并受 ModelMBeanInfo、ModelMBeanAttributeInfo、ModelMBeanConstructorInfo、ModelMBeanNotificationInfo、ModelMBeanOperationInfo 和 ModelMBean 类的支持。

从以下版本开始:
1.5
另请参见:
序列化表格

构造方法摘要
DescriptorSupport()
          描述符默认的构造方法。
DescriptorSupport(DescriptorSupport inDescr)
          带有参数为 Descriptor 的描述符构造方法。
DescriptorSupport(int initNumFields)
          描述符构造方法。
DescriptorSupport(String inStr)
          Descriptor 构造方法带有一个 XML String。
DescriptorSupport(String[] fields)
          带有 fieldName=fieldValue 格式的字段的构造方法。
DescriptorSupport(String[] fieldNames, Object[] fieldValues)
          带有字段名称和字段值的构造方法。
 
方法摘要
 Object clone()
          返回作为 Descriptor 副本的新 Descriptor。
 String[] getFieldNames()
          返回描述符中的所有字段名称。
 String[] getFields()
          返回描述符中的所有字段。
 Object getFieldValue(String inFieldName)
          返回特定的 fieldname 值。
 Object[] getFieldValues(String[] fieldNames)
          以 Object 数组形式返回描述符中的所有字段值。
 boolean isValid()
          如果所有给定名称的字段都有合法值,则返回 true。
 void removeField(String fieldName)
          从描述符移除字段。
 void setField(String inFieldName, Object fieldValue)
          设置特定的 fieldname 的字符串值。
 void setFields(String[] fieldNames, Object[] fieldValues)
          将列表中所有 Field 设置为 fieldValue 数组中具有相同索引的新值。
 String toString()
          返回 表示描述符的可读字符串
 String toXMLString()
          返回表示描述符的 XML 字符串。
 
从类 java.lang.Object 继承的方法
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

DescriptorSupport

public DescriptorSupport()
描述符默认的构造方法。默认的初始描述符大小为 20。此大小会根据需要而增加。
注意,创建的空描述符不是有效的描述符(isValid 方法返回 false)。


DescriptorSupport

public DescriptorSupport(int initNumFields)
                  throws MBeanException,
                         RuntimeOperationsException
描述符构造方法。将存储 descriptor 字段的 Map 的初始容量作为参数。容量将根据需要而增加。
注意,创建的空描述符不是有效的描述符(isValid 方法返回 false)。

参数:
initNumFields - 存储 descriptor 字段的 Map 的初始容量。
抛出:
RuntimeOperationsException - 如果 initNumField 的值是非法值 (<= 0)
MBeanException - 如果包装了一个分布式通信异常。

DescriptorSupport

public DescriptorSupport(DescriptorSupport inDescr)
带有参数为 Descriptor 的描述符构造方法。创建初始化为传入参数中的描述符的值的新描述符。

参数:
inDescr - 描述符,用于初始化所构造的描述符。如果它为 null 或不包含 descriptor 字段,则将创建一个空 Descriptor。

DescriptorSupport

public DescriptorSupport(String inStr)
                  throws MBeanException,
                         RuntimeOperationsException,
                         XMLParseException

Descriptor 构造方法带有一个 XML String。

XML 字符串的格式是未定义的,但实现必须确保,当使用此构造方法进行实例化时,现有描述符上的 toXMLString() 所返回的字符串能够用来实例化一个等效的描述符。

在此实现中,所有字段值都将以 String 形式创建。如果字段值不是 String 形式的,则程序员必须重置或正确转换这些字段。

参数:
inStr - 用于填充此 Descriptor 的 XML 格式的字符串。格式是未定义的,但任何实现必须确保,当使用此构造方法进行实例化时,现有描述符上的 toXMLString 方法所返回的字符串能够用于实例化一个等效的描述符。
抛出:
RuntimeOperationsException - 如果传递到参数中的 String inStr 为 null
XMLParseException - 如果解析输入 String 时发生 XML 解析问题
MBeanException - 如果包装了一个分布式通信异常。

DescriptorSupport

public DescriptorSupport(String[] fieldNames,
                         Object[] fieldValues)
                  throws RuntimeOperationsException
带有字段名称和字段值的构造方法。数组和数组元素不可能为 null。

参数:
fieldNames - 字段名称的 String 数组。此数组的所有元素均不能为 null。
fieldValues - 对应字段值的 Object 数组。此数组的元素可以为 null。fieldValue 必须对 fieldName 有效(正如在 isValid 方法中所定义的)。

注:参数的数组大小应是匹配的。如果两个数组均为 null 或空,则创建一个空描述符。

抛出:
RuntimeOperationsException - 如果 Names 或 Values 字段的值为非法值。数组长度必须相等。如果描述符构造由于任何原因而失败,都将抛出此异常。

DescriptorSupport

public DescriptorSupport(String[] fields)
带有 fieldName=fieldValue 格式的字段的构造方法。

参数:
fields - 每个元素包含一个字段名称和字段值的 String 数组。如果此数组为 null 或空,则将执行默认的构造方法。忽略 null 字符串或空字符串。

所有字段值都应是 String。如果字段值不是 String,则程序员必须重置或正确转换这些字段。

注:每个字符串都应为 fieldName=fieldValue 形式。

抛出:
RuntimeOperationsException - 如果 Names 或 Values 字段的值为非法值。字段必须包含 "="。"=fieldValue"、"fieldName" 和 "fieldValue" 是非法的。FieldName 不可能为 null。"fieldName=" 将使值为 null。如果描述符构造由于任何原因而失败,都将抛出此异常。
方法详细信息

getFieldValue

public Object getFieldValue(String inFieldName)
                     throws RuntimeOperationsException
返回特定的 fieldname 值。

指定者:
接口 Descriptor 中的 getFieldValue
参数:
inFieldName - 相关的字段名称;如果未找到,则返回 null。
返回:
表示字段值的 Object
抛出:
RuntimeOperationsException - 如果 Names 字段的值为非法的(null 或空字符串)。

setField

public void setField(String inFieldName,
                     Object fieldValue)
              throws RuntimeOperationsException
设置特定的 fieldname 的字符串值。字段的值必须对字段有效(正如 isValid 方法中所定义的)。如果字段不存在,则将它添加到 Descriptor 的末尾。如果字段存在,则替换该值。

指定者:
接口 Descriptor 中的 setField
参数:
inFieldName - 要设置的字段名称。不能为 null 或空字符串。
fieldValue - 针对该字段名称所设置的字段值。可以为 null 或空字符串。
抛出:
RuntimeOperationsException - 如果 Names 字段的值为非法值。

getFields

public String[] getFields()
返回描述符中的所有字段。返回的顺序不是设置字段时的顺序。

指定者:
接口 Descriptor 中的 getFields
返回:
字段的 fieldName=fieldValue 格式的 String 数组。如果描述符中没有字段,则返回一个空 String 数组。如果 fieldValue 不是 String,则对它调用 toString() 方法,其返回的值用作括号中的字段值。
另请参见:
setFields(java.lang.String[], java.lang.Object[])

getFieldNames

public String[] getFieldNames()
返回描述符中的所有字段名称。返回的顺序不是设置字段时的顺序。

指定者:
接口 Descriptor 中的 getFieldNames
返回:
字段名称的 String 数组。如果描述符为空,则将得到一个空数组。

getFieldValues

public Object[] getFieldValues(String[] fieldNames)
以 Object 数组形式返回描述符中的所有字段值。返回的值的顺序与 fieldNames String 数组参数的顺序相同。

指定者:
接口 Descriptor 中的 getFieldValues
参数:
fieldNames - 字段名称的 String 数组,该字段的值应该返回。
如果该数组为空,则将返回一个空数组。
如果该数组为 'null',则将返回所有值。返回的顺序不是设置字段时的顺序。
如果在数组中不存在某个字段名称,则为要返回的匹配数组元素返回 null。
返回:
字段值的 Object 数组。如果描述符为空,则将得到一个空数组。

setFields

public void setFields(String[] fieldNames,
                      Object[] fieldValues)
               throws RuntimeOperationsException
将列表中所有 Field 设置为 fieldValue 数组中具有相同索引的新值。数组大小必须是匹配的。设置字段值之前先验证该值(通过调用 isValid 方法)。如果该值无效,则将抛出一个异常。如果数组为空,则所有更改都将无效。

指定者:
接口 Descriptor 中的 setFields
参数:
fieldNames - 字段名称的 String 数组。数组和数组元素不可能为 null。
fieldValues - 对应字段值的 Object 数组。数组不可能为 null。此数组的元素可以为 null。
抛出:
RuntimeOperationsException - 如果 Names 或 Values 字段的值为非法值。这两个字段的值均不能为 null。数组长度必须相等。
另请参见:
getFields()

clone

public Object clone()
             throws RuntimeOperationsException
返回作为 Descriptor 副本的新 Descriptor。

指定者:
接口 Descriptor 中的 clone
覆盖:
Object 中的 clone
返回:
此实例的一个克隆。
抛出:
RuntimeOperationsException - 如果 Names 或 Values 字段的值为非法值。如果描述符构造由于任何原因而失败,都将抛出此异常。
另请参见:
Cloneable

removeField

public void removeField(String fieldName)
从描述符移除字段。

指定者:
接口 Descriptor 中的 removeField
参数:
fieldName - 要移除的字段的 String 名称。如果找不到该字段,则不抛出异常。

isValid

public boolean isValid()
                throws RuntimeOperationsException
如果所有给定名称的字段都有合法值,则返回 true。

此实现不支持与目录或查找服务进行互操作。因此,根据规范,将不对 "export" 字段进行检查。

否则,在以下情况下此实现返回 false:

指定者:
接口 Descriptor 中的 isValid
返回:
如果值是合法的,则返回 true。
抛出:
RuntimeOperationsException - 如果验证检查由于任何原因而失败,都将抛出此异常。

toXMLString

public String toXMLString()

返回表示描述符的 XML 字符串。

格式是未定义的,但实现应确保,当使用构造方法 DescriptorSupport(String inStr) 进行实例化时,此方法所返回的字符串能够用于构造一个等效描述符。

对不是 String 对象的字段调用 toString() 来创建值。该值将用括号括起来。不保证能够重新构造这些对象,除非它们已经过特殊设置以有意义的格式支持 toString(),并且具有接受相同格式的 String 的匹配构造方法。

如果描述符为空,则返回以下 String: <Descriptor></Descriptor>

返回:
XML 字符串。
抛出:
RuntimeOperationsException - 如果 Names 或 Values 字段的值为非法值。如果 XML 格式的字符串构造由于任何原因而失败,都将抛出此异常。

toString

public String toString()
返回 表示描述符的可读字符串。该字符串的格式将为 "fieldName=fieldValue,fieldName2=fieldValue2,..."
如果描述符中没有字段,则返回一个空 String。
如果 fieldValue 是一个对象,则对它调用 toString() 方法,其返回值用作括号中的字段值。

覆盖:
Object 中的 toString
返回:
该对象的字符串表示形式。
抛出:
RuntimeOperationsException - 如果 Names 或 Values 字段的值为非法值。如果描述符字符串由于任何原因而失败,都将抛出此异常。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策