- 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类的实现和支持的一致性。
此类的serialVersionUID为
-6292969195866300415L
。- 从以下版本开始:
- 1.5
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 构造器 描述 DescriptorSupport()
描述符默认构造函数。DescriptorSupport(int initNumFields)
描述符构造函数。DescriptorSupport(String inStr)
采用XML字符串的描述符构造函数。DescriptorSupport(String... fields)
构造函数采用 fieldName = fieldValue格式的字段。DescriptorSupport(String[] fieldNames, Object[] fieldValues)
构造函数采用字段名称和字段值。DescriptorSupport(DescriptorSupport inDescr)
描述符构造函数将描述符作为参数。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 Object
clone()
返回一个新描述符,它是描述符的副本。boolean
equals(Object o)
将此描述符与给定对象进行比较。int
hashCode()
返回此描述符的哈希码值。boolean
isValid()
如果所有字段都具有给定其名称的合法值,则返回true。String
toString()
返回表示描述符的可读字符串。String
toXMLString()
返回表示描述符的XML String。-
声明方法的接口 javax.management.Descriptor
getFieldNames, getFields, getFieldValue, getFieldValues, removeField, setField, setFields
-
-
-
-
构造方法详细信息
-
DescriptorSupport
public DescriptorSupport()
-
DescriptorSupport
public DescriptorSupport(int initNumFields) throws MBeanException, RuntimeOperationsException
- 参数
-
initNumFields
- 存储描述符字段的Map的初始容量。 - 异常
-
RuntimeOperationsException
- 对于RuntimeOperationsException
的非法值(<= 0) -
MBeanException
- 包装分布式通信异常。
-
DescriptorSupport
public DescriptorSupport(DescriptorSupport inDescr)
描述符构造函数将描述符作为参数。 创建一个新的描述符,初始化为参数中传递的描述符的值。- 参数
-
inDescr
- 用于初始化构造的描述符的描述符。 如果它为null或不包含描述符字段,则将创建一个空的描述符。
-
DescriptorSupport
public DescriptorSupport(String inStr) throws MBeanException, RuntimeOperationsException, XMLParseException
采用XML字符串的描述符构造函数。
XML字符串的格式未定义,但实现必须确保
toXMLString()
在现有描述符上返回的字符串可用于使用此构造函数实例化等效描述符。在此实现中,所有字段值将创建为字符串。 如果字段值不是字符串,则程序员必须正确地重置或转换这些字段。
- 参数
-
inStr
- 用于填充此描述符的XML格式的字符串。 格式未定义,但任何实现必须确保方法toXMLString
在现有描述符上返回的字符串可用于在使用此构造函数实例化时实例化等效描述符。 - 异常
-
RuntimeOperationsException
- 如果传入的String inStr参数为null -
XMLParseException
- 解析输入String时的XML解析问题 -
MBeanException
- 包装分布式通信异常。
-
DescriptorSupport
public DescriptorSupport(String[] fieldNames, Object[] fieldValues) throws RuntimeOperationsException
构造函数采用字段名称和字段值。 这两个数组都不能为空。- 参数
-
fieldNames
- 字段名称的字符串数组。 此数组的任何元素都不能为null。 -
fieldValues
- 相应字段值的对象数组。 数组的元素可以为null。fieldValue
必须对fieldName
有效(如方法isValid
中所定义)注意:参数的数组大小应该匹配。 如果两个数组都为空,则创建一个空描述符。
- 异常
-
RuntimeOperationsException
- 用于字段名称或字段值的非法值。 数组长度必须相等。 如果描述符构造因任何原因失败,则抛出此异常。
-
DescriptorSupport
public DescriptorSupport(String... fields)
构造函数采用 fieldName = fieldValue格式的字段。- 参数
-
字段
- 包含字段名称和值的每个元素的字符串数组。 如果此数组为null或为空,则将执行默认构造函数。 空字符串或空字符串将被忽略。所有字段值都应该是字符串。 如果字段值不是字符串,则程序员必须正确地重置或转换这些字段。
注意:每个字符串的格式应为fieldName = fieldValue 。 字段名称以第一个
=
字符结尾; 例如,如果字符串是a=b=c
则字段名称为a
,其值为b=c
。 - 异常
-
RuntimeOperationsException
- 用于字段名称或字段值的非法值。 该字段必须包含“=”。 “= fieldValue”,“fieldName”和“fieldValue”是非法的。 FieldName不能为null。 “fieldName =”将导致该值为null。 如果描述符构造因任何原因失败,则抛出此异常。
-
-
方法详细信息
-
clone
public Object clone() throws RuntimeOperationsException
返回一个新描述符,它是描述符的副本。- Specified by:
-
clone
在界面Descriptor
- 重写:
-
clone
类Object
- 结果
- 这个实例的克隆。
- 异常
-
RuntimeOperationsException
- 用于字段名称或字段值的非法值。 如果描述符构造因任何原因失败,则抛出此异常。 - 另请参见:
-
Cloneable
-
equals
public boolean equals(Object o)
将此描述符与给定对象进行比较。 如果给定对象也是描述符,并且两个描述符具有相同的字段名称(可能在大小写上有所不同)和相同的关联值,则对象是相等的。 如果满足以下条件,则两个描述符中字段的相应值相等:- 如果一个值为null,则另一个值也必须为null。
- 如果一个值是原始数组,那么另一个必须是具有相同元素的相同类型的基本数组。
- 如果一个值是一个对象数组,那么另一个值必须也是,
Arrays.deepEquals
必须返回true。 - 否则
Object.equals(Object)
必须返回true。
- Specified by:
-
equals
在界面Descriptor
- 重写:
-
equals
在类Object
- 参数
-
o
- 要与之比较的对象。 - 结果
-
true
如果对象相同; 否则为false
。 - 另请参见:
-
Object.hashCode()
,HashMap
-
hashCode
public int hashCode()
返回此描述符的哈希码值。 哈希码被计算为描述符中每个字段的哈希码的总和。 名称为
n
且值为v
的字段的哈希码为n.toLowerCase().hashCode() ^ h
。 这里h
的哈希码是v
,计算如下:- 如果
v
为空,则h
为0。 - 如果
v
是基本类型数组然后h
使用的适当重载来计算java.util.Arrays.hashCode
。 - 如果
v
是一个对象数组然后h
使用计算Arrays.deepHashCode
。 - 否则
h
是v.hashCode()
。
- Specified by:
-
hashCode
在界面Descriptor
- 重写:
-
hashCode
在类Object
- 结果
- 此对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
- 如果
-
isValid
public boolean isValid() throws RuntimeOperationsException
如果所有字段都具有给定其名称的合法值,则返回true。此实现不支持与目录或查找服务进行互操作。 因此,符合规范,不对“导出”字段进行检查。
否则,如果满足以下条件,则
- name和descriptorType fieldNames未定义,null或为空,或者不是String
- class,role,getMethod,setMethod fieldNames,如果已定义,则为null或不为String
- persistPeriod,currencyTimeLimit,lastUpdatedTimeStamp,lastReturnedTimeStamp(如果已定义),为null,或者不是数字字符串或不是数值> = -1
- log fieldName,如果已定义,则为null,或者不是布尔值,或者不是值为“t”,“f”,“true”,“false”的String。 这些String值不得区分大小写。
- visibility fieldName(如果已定义)为null,或者不是数字字符串或非数字值> = 1且<= 4
- severity fieldName(如果已定义)为null,或者不是数字字符串,或者不是数值> = 0且<= 6
- persistPolicy fieldName,如果已定义,则为null,或者不是以下字符串之一:
“OnUpdate”,“OnTimer”,“NoMoreOftenThan”,“OnUnregister”,“Always”,“Never”。 这些String值不得区分大小写。
- Specified by:
-
isValid
在界面Descriptor
- 结果
- 如果值是合法的,则为true。
- 异常
-
RuntimeOperationsException
- 如果由于任何原因有效性检查失败,将抛出此异常。
-
toXMLString
public String toXMLString()
返回表示描述符的XML String。
格式未定义,但实现必须确保此方法返回的字符串可用于在使用构造函数
DescriptorSupport(String inStr)
实例化时构建等效描述符。不是String对象的字段将调用toString()来创建值。 该值将括在括号中。 不能保证您可以重建这些对象,除非它们已经专门设置为以有意义的格式支持toString()并且具有匹配的构造函数,该构造函数接受相同格式的String。
如果描述符为空,则返回以下String:<Descriptor> </ Descriptor>
- 结果
- XML字符串。
- 异常
-
RuntimeOperationsException
- 用于字段名称或字段值的非法值。 如果XML格式的字符串构造因任何原因失败,则抛出此异常。
-
toString
public String toString()
返回表示描述符的可读字符串。 该字符串的格式为“fieldName = fieldValue,fieldName2 = fieldValue2,...”
如果描述符中没有字段,则返回空字符串。
如果fieldValue是一个对象,则在其上调用toString()方法,并将其返回值用作括号中括起的字段的值。- 重写:
-
toString
在类Object
- 结果
- 对象的字符串表示形式。
- 异常
-
RuntimeOperationsException
- 用于字段名称或字段值的非法值。 如果描述符字符串由于任何原因而失败,则将抛出此异常。
-
-