JavaTM 2 Platform
Standard Ed. 6

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 類別的支持。

此類別的 serialVersionUID-6292969195866300415L

從以下版本開始:
1.5
另請參見:
序列化表格

建構子摘要
DescriptorSupport()
          描述符預設的建構子。
DescriptorSupport(DescriptorSupport inDescr)
          採用 Descriptor 作為參數的描述符建構子。
DescriptorSupport(int initNumFields)
          描述符建構子。
DescriptorSupport(String... fields)
          帶有 fieldName=fieldValue 格式的欄位的建構子。
DescriptorSupport(String inStr)
          Descriptor 建構子帶有一個 XML String。
DescriptorSupport(String[] fieldNames, Object[] fieldValues)
          帶有欄位名稱和欄位值的建構子。
 
方法摘要
 Object clone()
          返回作為 Descriptor 副本的新 Descriptor。
 boolean equals(Object o)
          將此描述符與給定物件比較。
 String[] getFieldNames()
          返回描述符中的所有欄位名。
 String[] getFields()
          以 string 陣列的形式返回此 descriptor 中所包含的所有欄位。
 Object getFieldValue(String fieldName)
          返回指定欄位名的值,如果該名稱不存在任何值,則返回 null。
 Object[] getFieldValues(String... fieldNames)
          以 Object 陣列的形式返回該 descriptor 中的所有欄位值。
 int hashCode()
          返回此描述符的雜湊碼值。
 boolean isValid()
          如果所有給定名稱的欄位都有合法值,則返回 true。
 void removeField(String fieldName)
          從該 descriptor 中刪除欄位。
 void setField(String fieldName, Object fieldValue)
          設置特定欄位名的值。
 void setFields(String[] fieldNames, Object[] fieldValues)
          將欄位名稱陣列中的所有欄位設置為與欄位值陣列中的索引相同的新值。
 String toString()
          返回表示描述符的可讀字元串
 String toXMLString()
          返回表示描述符的 XML 字元串。
 
從類別 java.lang.Object 繼承的方法
finalize, getClass, 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 方法中所定義的那樣)。

註:參數的陣列大小應是比對的。如果兩個陣列均為空,則創建一個空描述符。

拋出:
RuntimeOperationsException - 如果 Names 或 Values 欄位的值為非法值。陣列長度必須相等。如果因為某種原因導致描述符建構失敗,則將拋出此異常。

DescriptorSupport

public DescriptorSupport(String... fields)
帶有 fieldName=fieldValue 格式的欄位的建構子。

參數:
fields - 每個元素包含一個欄位名稱和欄位值的 String 陣列。如果此陣列為 null 或空,則將執行預設的建構子。忽略 null 字元串或空字元串。

所有欄位值都應是 String。如果欄位值不是 String,則開發人員必須重置或正確轉換這些欄位。

註:每個字元串都應為 fieldName=fieldValue 形式。欄位名稱到第一個 = 字元結束;例如,如果 String 為 a=b=c 則欄位名稱為 a,其值為 b=c

拋出:
RuntimeOperationsException - 如果 Names 或 Values 欄位的值為非法值。欄位必須包含 "="。"=fieldValue"、"fieldName" 和 "fieldValue" 是非法的。FieldName 不可以為 null。"fieldName=" 將使該值為 null。如果因為某種原因導致描述符建構失敗,則將拋出此異常。
方法詳細資訊

getFieldValue

public Object getFieldValue(String fieldName)
                     throws RuntimeOperationsException
從介面 Descriptor 複製的描述
返回指定欄位名的值,如果該名稱不存在任何值,則返回 null。

指定者:
介面 Descriptor 中的 getFieldValue
參數:
fieldName - 欄位名稱。
返回:
相應的值,如果欄位不存在,則返回 null。
拋出:
RuntimeOperationsException - 如果欄位名稱不合法。

setField

public void setField(String fieldName,
                     Object fieldValue)
              throws RuntimeOperationsException
從介面 Descriptor 複製的描述

設置特定欄位名的值。這將修改現有的欄位或添加一個新欄位。

設置前將驗證該欄位值。如果該值無效,則將拋出一個異常。有效性的含義依賴於描述符實作。

指定者:
介面 Descriptor 中的 setField
參數:
fieldName - 要設置的欄位的名稱。不能為 null 或空。
fieldValue - 針對該欄位名稱所設置的欄位值。如果 null 是欄位的有效值,則可以為 null。
拋出:
RuntimeOperationsException - 如果欄位名或欄位值不合法(包裹的異常為 IllegalArgumentException);或者描述符不可變(包裹的異常為 UnsupportedOperationException)。

getFields

public String[] getFields()
從介面 Descriptor 複製的描述
以 string 陣列的形式返回此 descriptor 中所包含的所有欄位。

指定者:
介面 Descriptor 中的 getFields
返回:
各欄位的 String 陣列,格式為 fieldName=fieldValue
如果欄位值不是一個 String,則對該值調用 toString() 方法並將返回值(用圓括號括起來)用作所返回陣列中欄位的值。如果欄位的值為 null,則返回陣列中的欄位值將為空。如果描述符為空,則將得到一個空陣列。
另請參見:
Descriptor.setFields(java.lang.String[], java.lang.Object[])

getFieldNames

public String[] getFieldNames()
從介面 Descriptor 複製的描述
返回描述符中的所有欄位名。

指定者:
介面 Descriptor 中的 getFieldNames
返回:
欄位名稱的 String 陣列。如果描述符為空,則將得到一個空陣列。

getFieldValues

public Object[] getFieldValues(String... fieldNames)
從介面 Descriptor 複製的描述
以 Object 陣列的形式返回該 descriptor 中的所有欄位值。返回值的順序與 fieldNames String 陣列參數的順序相同。

指定者:
介面 Descriptor 中的 getFieldValues
參數:
fieldNames - 欄位名稱的 String 陣列,應該返回這些欄位的值。如果該陣列為空,則將返回一個空陣列。如果陣列為 null,則將返回所有值,如同參數是 Descriptor.getFieldNames() 返回的陣列一樣。如果陣列中某個欄位名不存在(包括欄位名為 null 或空字元串的情況),則對於要返回的比對陣列元素,將返回 null。
返回:
欄位值的 Object 陣列。如果 fieldNames 列表為空,則將得到一個空陣列。

setFields

public void setFields(String[] fieldNames,
                      Object[] fieldValues)
               throws RuntimeOperationsException
從介面 Descriptor 複製的描述

將欄位名稱陣列中的所有欄位設置為與欄位值陣列中的索引相同的新值。陣列大小必須是比對的。

設置前將驗證該欄位值。如果該值無效,則將拋出一個異常。如果陣列為空,則所有更改都將無效。

指定者:
介面 Descriptor 中的 setFields
參數:
fieldNames - 欄位名稱的 String 陣列。陣列和陣列元素不能為 null。
fieldValues - 對應欄位值的 Object 陣列。陣列不能為 null。陣列的元素可以為 null。
拋出:
RuntimeOperationsException - 如果由於某種原因更改失敗。如果 fieldNamesfieldValues 為 null,或者陣列的長度不同,或者其中一個陣列存在非法值,則包裹的異常為 IllegalArgumentException。如果描述符不可變,且調用將更改其內容,則包裹的異常為 UnsupportedOperationException
另請參見:
Descriptor.getFields()

clone

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

指定者:
介面 Descriptor 中的 clone
覆寫:
類別 Object 中的 clone
返回:
此實例的一個副本。
拋出:
RuntimeOperationsException - 如果 Names 或 Values 欄位的值為非法值。如果因為某種原因導致描述符建構失敗,則將拋出此異常。
另請參見:
Cloneable

removeField

public void removeField(String fieldName)
從介面 Descriptor 複製的描述
從該 descriptor 中刪除欄位。

指定者:
介面 Descriptor 中的 removeField
參數:
fieldName - 要移除的欄位的 String 名稱。如果欄位名不合法或找不到欄位,則不拋出任何異常。

equals

public boolean equals(Object o)
將此描述符與給定物件比較。如果給定對象也是一個 Descriptor,並且兩個 Descriptor 具有相同的欄位名稱(有時是不同的)和關聯值,則兩個物件相等。如果滿足以下情況,則兩個 Descriptor 欄位的各個值相等:

指定者:
介面 Descriptor 中的 equals
覆寫:
類別 Object 中的 equals
參數:
o - 要與之比較的物件。
返回:
如果物件相同,則返回 true;否則返回 false
另請參見:
Object.hashCode(), Hashtable

hashCode

public int hashCode()

返回此描述符的雜湊碼值。該雜湊碼是描述符每個欄位的雜湊碼的總和。名為 n 且值為 v 的欄位的雜湊碼為 n.toLowerCase().hashCode() ^ h。這裡的 hv 的雜湊碼,計算方式如下:

指定者:
介面 Descriptor 中的 hashCode
覆寫:
類別 Object 中的 hashCode
返回:
此物件的雜湊碼值。
另請參見:
Object.equals(java.lang.Object), Hashtable

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. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only