JavaTM 2 Platform
Standard Ed. 6

javax.management
類別 ObjectName

java.lang.Object
  繼承者 javax.management.ObjectName
所有已實作的介面:
Serializable, Comparable<ObjectName>, QueryExp

public class ObjectName
extends Object
implements Comparable<ObjectName>, QueryExp

表示 MBean 的物件名,或者能夠與多個 MBean 名稱相比對的網要。此類別的實例是不可變的。

可使用此類別的實例表示:

由兩部分(域和鍵屬性)組成的物件名。

是一個不包括冒號字元 (:) 的由字元組成的字元串。建議域不要包含字元串 "//",該字元串保留供將來使用。

如果域至少包括一個通配符星號 (*) 或問號 (?),則該物件名就是一個網要。星號比對任意零或多個字元的序列,而問號則比對任意單個字元。

如果域為空,則由 MBean 伺服器(在其中使用 ObjectName)的預設域 在特定的上下文中替換它。

鍵屬性 是一個無序的鍵和關聯值的集合。

每個 都是一個由字元組成的非空(null)字元串,不可以包含任何逗號 (,)、等號 (=)、冒號、星號或問號字元。在一個給定的 ObjectName 中,同一個鍵不能出現兩次。

每個與鍵關聯的 都是由字元組成的字元串,或者由引號括起來或者不括起來。

無引號值 可能是一個空的字元串,不包含任意逗號、等號、冒號和引號。

如果無引號值 套件括至少一個通配符星號或問號,則該物件名就是一個屬性值網要

有引號值 由一個引號 ("),後跟可能為空的字元串,然後是另一個引號所組成。在字元串中,反斜線 (\) 具有特殊的含義,它後面必須是下列某個字元:

引號可能不出現在有引號值中,但緊跟在奇數個連續反斜線後的情況除外。

括住有引號值的引號和該值中的所有反斜線都被視為該值的一部分。

如果引號值 套件括至少一個星號或問號,且星號或問號之前沒有反斜槓,則將其視為通配符,並且該物件名是一個屬性值網要。星號比對任意零或多個字元的序列,而問號則比對任意單個字元。

ObjectName 可能是一種屬性列表網要。在這種情況下,它可以有零個或多個鍵和關聯值。它與非網要的 ObjectName 比對,該 ObjectName 的域與相同的鍵和關聯值比對且包含它們,並且可能包括其他鍵和值。

當至少有一個 ObjectName 的有引號無引號 鍵屬性值包含通配符星號或問號(如上所述)時,ObjectName 是一個屬性值網要。在這種情況下,它有一個或多個鍵以及關聯值,並至少有一個值包含通配符。它與一個無網要 ObjectName 相比對,該 ObjectName 的域與之比對,或者包含值與之比對的相同鍵;如果屬性值網要也是屬性列表網要,則無網要 ObjectName 也可以包含其他鍵和值。

如果 ObjectName 是屬性列表網要屬性值網要,或者兩者都是,則它是一個屬性網要

如果某個 ObjectName 的域包含通配符或者 ObjectName 是一個屬性網要,則該 ObjectName 是一個網要。

如果某個 ObjectName 不是一個網要,那麼它必須至少包含一個鍵及其關聯值。

ObjectName 網要的範例有:

按順序使用下列元素可將 ObjectName 寫為 String:

寫為 String 的鍵屬性列表是一個逗號分隔的元素列表。每個元素都是一個星號或一個鍵屬性。鍵屬性由鍵、等號 (=) 和關聯值組成。

鍵屬性列表中最多只能有一個元素為星號。如果鍵屬性列表包含星號元素,則該 ObjectName 是一個屬性列表網要。

在表示 ObjectName 的 String 中,空格沒有任何特殊含意。例如,String:

 domain: key1 = value1 , key2 = value2
 
表示具有兩個鍵的 ObjectName。每個鍵的名字包含 6 個字元,其中第一個和最後一個都是空格。與鍵 " key1 " 相關聯的值同樣以空格開頭和結尾。

除了上述提及的字元限制外,ObjectName 的任何部分都不能包含換行符 ('\n'),無論這些部分是域、鍵還是值(無引號值和有引號值)。可使用序列 \n 將換行符表示為有引號值。

不管使用何種建構子建構 ObjectName,關於特殊字元和引號的規則都適用。

為了避免不同供應商所提供的 MBean 之間出現衝突,提供了一個有用的約定:域名由指定該 MBean 的企業的反向 DNS 名開始,後跟一個句點和一個字元串,由該企業決定該字元串的解釋。例如,由 Sun Microsystems Inc.(DNS 名是 sun.com)所指定的 MBean 將有 com.sun.MyDomain 這樣的域。這基本上與 Java 語言包名的約定相同。

此類別的 serialVersionUID1081892073854801359L

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

欄位摘要
static ObjectName WILDCARD
          定義通配符 "*:*" ObjectName。
 
建構子摘要
ObjectName(String name)
          根據給定的字元串建構一個物件名。
ObjectName(String domain, Hashtable<String,String> table)
          建構一個物件名,它具有根據雜湊表獲得的多個鍵屬性。
ObjectName(String domain, String key, String value)
          建構只具有一個鍵屬性的物件名。
 
方法摘要
 boolean apply(ObjectName name)
          測試此 ObjectName(可以是一個網要)是否與另一個 ObjectName 比對。
 int compareTo(ObjectName name)
          比較兩個 ObjectName 實例。
 boolean equals(Object object)
          比較當前的物件名與另一個物件名是否相等。
 String getCanonicalKeyPropertyListString()
          返回鍵屬性列表的字元串表示形式,其中鍵屬性按詞彙順序排序。
 String getCanonicalName()
          返回該名稱的規範形式;也就是說,一種字元串表示形式,其中屬性按詞彙順序排序。
 String getDomain()
          返回域部分。
static ObjectName getInstance(ObjectName name)
          返回 ObjectName 的實例,該 ObjectName 可用於任何可使用給定物件的地方。
static ObjectName getInstance(String name)
          返回 ObjectName 的實例,該 ObjectName 可用於任何使用 new ObjectName(name) 獲得的物件可以使用的地方。
static ObjectName getInstance(String domain, Hashtable<String,String> table)
          返回 ObjectName 的實例,該 ObjectName 可用於任何使用 new ObjectName(domain, table) 獲得的物件可以使用的地方。
static ObjectName getInstance(String domain, String key, String value)
          返回 ObjectName 的實例,該 ObjectName 可用於任何使用 new ObjectName(domain, key, value) 獲得的物件可以使用的地方。
 String getKeyProperty(String property)
          獲得與鍵屬性中某個鍵相關聯的值。
 Hashtable<String,String> getKeyPropertyList()
          以雜湊表的形式返回鍵屬性。
 String getKeyPropertyListString()
          返回創建時指定的鍵屬性列表的字元串表示形式。
 int hashCode()
          返回此 ObjectName 的雜湊碼。
 boolean isDomainPattern()
          根據物件名的域部分檢查物件名是否為一個網要。
 boolean isPattern()
          檢查該物件名是否為一個網要。
 boolean isPropertyListPattern()
          檢查物件名是否為一個鍵屬性列表網要。
 boolean isPropertyPattern()
          檢查物件名是否為一個鍵屬性網要。
 boolean isPropertyValuePattern()
          檢查物件名是否為值部分至少有一個鍵屬性的網要。
 boolean isPropertyValuePattern(String property)
          檢查鍵屬性中與值關聯的值是否為一個網要。
static String quote(String s)
          返回給定 String 的有引號形式,使之適合包含在 ObjectName 中。
 void setMBeanServer(MBeanServer mbs)
          設置將在其上執行查詢的 MBean 伺服器。
 String toString()
          返回該物件名的字元串表示形式。
static String unquote(String q)
          返回給定 String 的無引號形式,如果 qquote(s) 返回的 String,則 unquote(q).equals(s)
 
從類別 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

欄位詳細資訊

WILDCARD

public static final ObjectName WILDCARD
定義通配符 "*:*" ObjectName。

從以下版本開始:
1.6
建構子詳細資訊

ObjectName

public ObjectName(String name)
           throws MalformedObjectNameException,
                  NullPointerException
根據給定的字元串建構一個物件名。

參數:
name - 物件名的字元串表示形式。
拋出:
MalformedObjectNameException - 如果作為參數傳遞的字元串格式不正確。
NullPointerException - 如果 name 參數為 null。

ObjectName

public ObjectName(String domain,
                  String key,
                  String value)
           throws MalformedObjectNameException,
                  NullPointerException
建構只具有一個鍵屬性的物件名。

參數:
domain - 物件名的域部分。
key - 物件名鍵屬性中的屬性。
value - 物件名鍵屬性中的值。
拋出:
MalformedObjectNameException - 如果 domainkeyvalue 套件含非法字元,如果 value 未遵循有關引號使用的規則。
NullPointerException - 如果某個參數為 null。

ObjectName

public ObjectName(String domain,
                  Hashtable<String,String> table)
           throws MalformedObjectNameException,
                  NullPointerException
建構一個物件名,它具有根據雜湊表獲得的多個鍵屬性。

參數:
domain - 物件名的域部分。
table - 套件含一個或多個鍵屬性的雜湊表。表中每項的鍵都是物件名中鍵屬性的鍵。表中的關聯值是物件名中的關聯值。
拋出:
MalformedObjectNameException - 如果 domain 套件含非法字元,或者 table 中的某個鍵或值包含非法字元,或者 table 中的某個值未遵循有關引號使用的規則。
NullPointerException - 如果某個參數為 null。
方法詳細資訊

getInstance

public static ObjectName getInstance(String name)
                              throws MalformedObjectNameException,
                                     NullPointerException

返回 ObjectName 的實例,該 ObjectName 可用於任何使用 new ObjectName(name) 獲得的物件可以使用的地方。返回的物件可以是 ObjectName 的子類別。使用相同的參數調用此方法兩次可能會返回相同的物件,或者兩個等效但是不同的物件。

參數:
name - 物件名的字元串表示形式。
返回:
與給定 String 相對應的 ObjectName。
拋出:
MalformedObjectNameException - 如果作為參數傳遞的字元串格式不正確。
NullPointerException - 如果 name 參數為 null。

getInstance

public static ObjectName getInstance(String domain,
                                     String key,
                                     String value)
                              throws MalformedObjectNameException,
                                     NullPointerException

返回 ObjectName 的實例,該 ObjectName 可用於任何使用 new ObjectName(domain, key, value) 獲得的物件可以使用的地方。返回的物件可以是 ObjectName 的子類別。使用相同的參數調用此方法兩次可能會返回相同的物件,或者兩個等效但是不同的物件。

參數:
domain - 物件名的域部分。
key - 物件名鍵屬性中的屬性。
value - 物件名鍵屬性中的值。
返回:
與給定域、鍵和值相對應的 ObjectName。
拋出:
MalformedObjectNameException - 如果 domainkeyvalue 套件含非法字元,如果 value 未遵循有關引號使用的規則。
NullPointerException - 如果某個參數為 null。

getInstance

public static ObjectName getInstance(String domain,
                                     Hashtable<String,String> table)
                              throws MalformedObjectNameException,
                                     NullPointerException

返回 ObjectName 的實例,該 ObjectName 可用於任何使用 new ObjectName(domain, table) 獲得的物件可以使用的地方。返回的物件可以是 ObjectName 的子類別。使用相同的參數調用此方法兩次可能會返回相同的物件,或者兩個等效但是不同的物件。

參數:
domain - 物件名的域部分。
table - 套件含一個或多個鍵屬性的雜湊表。表中每項的鍵都是物件名中鍵屬性的鍵。表中的關聯值是物件名中的關聯值。
返回:
與給定域和鍵映射關係相對應的 ObjectName。
拋出:
MalformedObjectNameException - 如果 domain 套件含非法字元,或者 table 中的某個鍵或值包含非法字元,或者 table 中的某個值未遵循有關引號使用的規則。
NullPointerException - 如果某個參數為 null。

getInstance

public static ObjectName getInstance(ObjectName name)
                              throws NullPointerException

返回 ObjectName 的實例,該 ObjectName 可用於任何可使用給定物件的地方。返回的物件可以是 ObjectName 的子類別。如果 name 是 ObjectName 子類別的名稱,則無法保證返回的物件屬於同一個類別。

返回的值可能與 name 相同,也可能不相同。使用相同的參數調用此方法兩次可能會返回相同的物件,或者兩個等效但是不同的物件。

因為 ObjectName 是不可變的,所以製作 ObjectName 的副本通常沒有用。此方法的主要用途是用於防止惡意的調用者,它可能向敏感程式碼傳遞具有可疑行為的子類別實例。這種程式碼可以調用此方法來獲得一個已知沒有可疑行為的 ObjectName。

參數:
name - ObjectName 類別或子類別的一個實例
返回:
ObjectName 或已知具有相同語義的子類別的實例。如果 name 符合 ObjectName 的語義,則返回的物件等於(儘管不必相同)name
拋出:
NullPointerException - 如果 name 為 null。

isPattern

public boolean isPattern()
檢查該物件名是否為一個網要。

如果某個物件名的域包含通配符或者它是一個屬性網要,則該物件名是一個網要。

返回:
如果該名稱是一個網要,則返回 true;否則返回 false。

isDomainPattern

public boolean isDomainPattern()
根據物件名的域部分檢查物件名是否為一個網要。

返回:
如果該名稱是一個域網要,則返回 true;否則返回 false。

isPropertyPattern

public boolean isPropertyPattern()
檢查物件名是否為一個鍵屬性網要。

如果物件名是鍵屬性列表網要(例如 "d:k=v,*")或屬性值網要(例如 "d:k=*"),或者兩者都是(例如 "d:k=*,*"),則它是一個鍵屬性網要。

返回:
如果該名稱是一個屬性網要,則返回 true;否則返回 false。

isPropertyListPattern

public boolean isPropertyListPattern()
檢查物件名是否為一個鍵屬性列表網要。

例如,"d:k=v,*" 和 "d:k=*,*" 是鍵屬性列表網要,而 "d:k=*" 則不是。

返回:
如果該名稱是一個屬性列表網要,則返回 true;否則返回 false。
從以下版本開始:
1.6

isPropertyValuePattern

public boolean isPropertyValuePattern()
檢查物件名是否為值部分至少有一個鍵屬性的網要。

例如,"d:k=*" 和 "d:k=*,*" 是屬性值網要,而 "d:k=*" 則不是。

返回:
如果該名稱是一個屬性值網要,則返回 true;否則返回 false。
從以下版本開始:
1.6

isPropertyValuePattern

public boolean isPropertyValuePattern(String property)
                               throws NullPointerException,
                                      IllegalArgumentException
檢查鍵屬性中與值關聯的值是否為一個網要。

參數:
property - 要檢查值的屬性。
返回:
如果與給定鍵關聯的值是一個網要,則返回 true;否則返回 false。
拋出:
NullPointerException - 如果 property 為 null。
IllegalArgumentException - 如果 property 對於此 ObjectName 不是有效值。
從以下版本開始:
1.6

getCanonicalName

public String getCanonicalName()

返回該名稱的規範形式;也就是說,一種字元串表示形式,其中屬性按詞彙順序排序。

更準確地說,該名稱的規範形式是一個由域部分、冒號 (:)、規範的鍵屬性列表 和一個網要指示 組成的 String。

規範的鍵屬性列表 是與 getCanonicalKeyPropertyListString() 所述相同的字元串。

網要指示 是:

返回:
該名稱的規範形式。

getDomain

public String getDomain()
返回域部分。

返回:
域。

getKeyProperty

public String getKeyProperty(String property)
                      throws NullPointerException
獲得與鍵屬性中某個鍵相關聯的值。

參數:
property - 要返回其值的屬性。
返回:
屬性值,如果此 ObjectName 中沒有此種屬性,則返回 null。
拋出:
NullPointerException - 如果 property 為 null。

getKeyPropertyList

public Hashtable<String,String> getKeyPropertyList()

以雜湊表的形式返回鍵屬性。返回值是一個雜湊表,其中每個鍵是 ObjectName 的鍵屬性列表中的鍵,並且每個值都是與鍵關聯的值。

返回值可以是不可修改的。如果是可修改的,則更改它對此 ObjectName 沒有影響。

返回:
鍵屬性表。

getKeyPropertyListString

public String getKeyPropertyListString()

返回創建時指定的鍵屬性列表的字元串表示形式。如果使用建構子 ObjectName(String) 建構了此 ObjectName,則返回 String 中的鍵屬性順序與該建構子參數中的順序相同。

返回:
鍵屬性列表字元串。此字元串與 ObjectName 是否為網要無關。

getCanonicalKeyPropertyListString

public String getCanonicalKeyPropertyListString()
返回鍵屬性列表的字元串表示形式,其中鍵屬性按詞彙順序排序。為了根據 MBean 的鍵屬性列表來選擇 MBean,在執行字典式比較中使用此方法。詞彙順序就是 String.compareTo(String) 所暗指的順序。

返回:
規範的鍵屬性列表字元串。此字元串與 ObjectName 是否為網要無關。

toString

public String toString()

返回該物件名的字元串表示形式。未指定此字元串的格式,但是當且僅當兩個 ObjectName 相等時才會返回相同的字元串。

覆寫:
類別 Object 中的 toString
返回:
此物件名的字元串表示形式。

equals

public boolean equals(Object object)
比較當前的物件名與另一個物件名是否相等。當且僅當兩個 ObjectName 實例的規範形式相等時它們才相等。規範形式是 getCanonicalName() 所描述的字元串。

覆寫:
類別 Object 中的 equals
參數:
object - 要與當前物件名進行比較的物件名。
返回:
如果 object 是一個 ObjectName 並且其規範形式與此 ObjectName 的規範形式相同,則返回 true。
另請參見:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
返回此 ObjectName 的雜湊碼。

覆寫:
類別 Object 中的 hashCode
返回:
此物件的一個雜湊碼值。
另請參見:
Object.equals(java.lang.Object), Hashtable

quote

public static String quote(String s)
                    throws NullPointerException

返回給定 String 的有引號形式,使之適合包含在 ObjectName 中。返回的值可用作與 ObjectName 中某個鍵相關聯的值。String s 可包含任何字元。適當使用引號可確保返回的值在 ObjectName 中是合法的。

返回值由引號 ('"')、對應於 s 中字元的字元序列和另一個引號所組成。s 中的字元會不加更改地出現在返回值中,但下列內容除外:

參數:
S - 要用引號形式表示的 String。
返回:
有引號形式的 String。
拋出:
NullPointerException - 如果 s 為 null。

unquote

public static String unquote(String q)
                      throws IllegalArgumentException,
                             NullPointerException

返回給定 String 的無引號形式,如果 qquote(s) 返回的 String,則 unquote(q).equals(s)。如果沒有滿足 quote(s).equals(q) 的 String s,則 unquote(q) 拋出 IllegalArgumentException。

這些規則意味著在有引號和無引號形式之間存在一對一的映射關係。

參數:
q - 要用無引號形式表示的 String。
返回:
無引號形式的 String。
拋出:
IllegalArgumentException - 如果不能由 quote(java.lang.String) 方法返回 q,例如它沒有以引號 (") 開始和結束。
NullPointerException - 如果 q 為 null。

apply

public boolean apply(ObjectName name)
              throws NullPointerException

測試此 ObjectName(可以是一個網要)是否與另一個 ObjectName 比對。如果 name 是一個網要,則結果是 false。如果此 ObjectName 是一個網要,則當且僅當 name 與該網要比對時結果才是 true。如果此 ObjectName 和 name 都不是網要,則當且僅當兩個 ObjectName 按 equals(Object) 方法的描述相等時結果才是 true。

指定者:
介面 QueryExp 中的 apply
參數:
name - 要進行比較的 MBean 名。
返回:
如果 name 與此 ObjectName 比對,則返回 true。
拋出:
NullPointerException - 如果 name 為 null。

setMBeanServer

public void setMBeanServer(MBeanServer mbs)
從介面 QueryExp 複製的描述
設置將在其上執行查詢的 MBean 伺服器。

指定者:
介面 QueryExp 中的 setMBeanServer
參數:
mbs - 將在其上執行查詢的 MBean 伺服器。

compareTo

public int compareTo(ObjectName name)

比較兩個 ObjectName 實例。沒有完整地指定 ObjectName 之間的順序關係,但是存儲的 ObjectName 列表一般按照便於閱讀的順序出現。

特別要指出的是,如果兩個 ObjectName 實例的域不同,則其順序為域的字典順序。鍵屬性列表的順序仍然沒有指定。

例如,以下 ObjectName 實例:

將按以下方式排序:

指定者:
介面 Comparable<ObjectName> 中的 compareTo
參數:
name - 要比較的 ObjectName。
返回:
根據此 ObjectName 小於、等於或大於給定 ObjectName 分別返回負整數、零或正整數。
從以下版本開始:
1.6

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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