|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.management.ObjectName
public class ObjectName
表示 MBean 的物件名,或者能夠與多個 MBean 名稱相比對的網要。此類別的實例是不可變的。
可使用此類別的實例表示:
由兩部分(域和鍵屬性)組成的物件名。
域 是一個不包括冒號字元 (:
) 的由字元組成的字元串。建議域不要包含字元串 "//
",該字元串保留供將來使用。
如果域至少包括一個通配符星號 (*
) 或問號 (?
),則該物件名就是一個網要。星號比對任意零或多個字元的序列,而問號則比對任意單個字元。
如果域為空,則由 MBean 伺服器(在其中使用 ObjectName)的預設域 在特定的上下文中替換它。
鍵屬性 是一個無序的鍵和關聯值的集合。
每個鍵 都是一個由字元組成的非空(null)字元串,不可以包含任何逗號 (,
)、等號 (=
)、冒號、星號或問號字元。在一個給定的 ObjectName 中,同一個鍵不能出現兩次。
每個與鍵關聯的值 都是由字元組成的字元串,或者由引號括起來或者不括起來。
無引號值 可能是一個空的字元串,不包含任意逗號、等號、冒號和引號。
如果無引號值 套件括至少一個通配符星號或問號,則該物件名就是一個屬性值網要。
有引號值 由一個引號 ("
),後跟可能為空的字元串,然後是另一個引號所組成。在字元串中,反斜線 (\
) 具有特殊的含義,它後面必須是下列某個字元:
引號可能不出現在有引號值中,但緊跟在奇數個連續反斜線後的情況除外。
括住有引號值的引號和該值中的所有反斜線都被視為該值的一部分。
如果引號值 套件括至少一個星號或問號,且星號或問號之前沒有反斜槓,則將其視為通配符,並且該物件名是一個屬性值網要。星號比對任意零或多個字元的序列,而問號則比對任意單個字元。
ObjectName 可能是一種屬性列表網要。在這種情況下,它可以有零個或多個鍵和關聯值。它與非網要的 ObjectName 比對,該 ObjectName 的域與相同的鍵和關聯值比對且包含它們,並且可能包括其他鍵和值。
當至少有一個 ObjectName 的有引號 或無引號 鍵屬性值包含通配符星號或問號(如上所述)時,ObjectName 是一個屬性值網要。在這種情況下,它有一個或多個鍵以及關聯值,並至少有一個值包含通配符。它與一個無網要 ObjectName 相比對,該 ObjectName 的域與之比對,或者包含值與之比對的相同鍵;如果屬性值網要也是屬性列表網要,則無網要 ObjectName 也可以包含其他鍵和值。
如果 ObjectName 是屬性列表網要 或屬性值網要,或者兩者都是,則它是一個屬性網要。
如果某個 ObjectName 的域包含通配符或者 ObjectName 是一個屬性網要,則該 ObjectName 是一個網要。
如果某個 ObjectName 不是一個網要,那麼它必須至少包含一個鍵及其關聯值。
ObjectName 網要的範例有:
*:type=Foo,name=Bar
比對鍵的具體設置為 type=Foo,name=Bar
的任何域中的名稱。d:type=Foo,name=Bar,*
比對具有鍵 type=Foo,name=Bar
以及 0 或其他鍵的域 d
中的名稱。*:type=Foo,name=Bar,*
比對具有鍵 type=Foo,name=Bar
以及 0 或其他鍵的域中的名稱。d:type=F?o,name=Bar
將與諸如 d:type=Foo,name=Bar
和 d:type=Fro,name=Bar
之類別的鍵和名稱比對。d:type=F*o,name=Bar
將與諸如 d:type=Fo,name=Bar
和 d:type=Frodo,name=Bar
之類別的鍵和名稱比對。d:type=Foo,name="B*"
將與諸如 d:type=Foo,name="Bling"
之類別的鍵和名稱比對。通配符在引號中也能被識別,並且像其他特殊字元一樣可以使用 \
轉義。按順序使用下列元素可將 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 語言包名的約定相同。
此類別的 serialVersionUID 為 1081892073854801359L
。
欄位摘要 | |
---|---|
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 的無引號形式,如果 q 是 quote(s) 返回的 String,則 unquote(q).equals(s) 。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
欄位詳細資訊 |
---|
public static final ObjectName WILDCARD
建構子詳細資訊 |
---|
public ObjectName(String name) throws MalformedObjectNameException, NullPointerException
name
- 物件名的字元串表示形式。
MalformedObjectNameException
- 如果作為參數傳遞的字元串格式不正確。
NullPointerException
- 如果 name
參數為 null。public ObjectName(String domain, String key, String value) throws MalformedObjectNameException, NullPointerException
domain
- 物件名的域部分。key
- 物件名鍵屬性中的屬性。value
- 物件名鍵屬性中的值。
MalformedObjectNameException
- 如果 domain
、key
或 value
套件含非法字元,如果 value
未遵循有關引號使用的規則。
NullPointerException
- 如果某個參數為 null。public ObjectName(String domain, Hashtable<String,String> table) throws MalformedObjectNameException, NullPointerException
domain
- 物件名的域部分。table
- 套件含一個或多個鍵屬性的雜湊表。表中每項的鍵都是物件名中鍵屬性的鍵。表中的關聯值是物件名中的關聯值。
MalformedObjectNameException
- 如果 domain
套件含非法字元,或者 table
中的某個鍵或值包含非法字元,或者 table
中的某個值未遵循有關引號使用的規則。
NullPointerException
- 如果某個參數為 null。方法詳細資訊 |
---|
public static ObjectName getInstance(String name) throws MalformedObjectNameException, NullPointerException
返回 ObjectName 的實例,該 ObjectName 可用於任何使用 new ObjectName(name)
獲得的物件可以使用的地方。返回的物件可以是 ObjectName 的子類別。使用相同的參數調用此方法兩次可能會返回相同的物件,或者兩個等效但是不同的物件。
name
- 物件名的字元串表示形式。
MalformedObjectNameException
- 如果作為參數傳遞的字元串格式不正確。
NullPointerException
- 如果 name
參數為 null。public static ObjectName getInstance(String domain, String key, String value) throws MalformedObjectNameException, NullPointerException
返回 ObjectName 的實例,該 ObjectName 可用於任何使用 new ObjectName(domain, key, value)
獲得的物件可以使用的地方。返回的物件可以是 ObjectName 的子類別。使用相同的參數調用此方法兩次可能會返回相同的物件,或者兩個等效但是不同的物件。
domain
- 物件名的域部分。key
- 物件名鍵屬性中的屬性。value
- 物件名鍵屬性中的值。
MalformedObjectNameException
- 如果 domain
、key
或 value
套件含非法字元,如果 value
未遵循有關引號使用的規則。
NullPointerException
- 如果某個參數為 null。public static ObjectName getInstance(String domain, Hashtable<String,String> table) throws MalformedObjectNameException, NullPointerException
返回 ObjectName 的實例,該 ObjectName 可用於任何使用 new ObjectName(domain, table)
獲得的物件可以使用的地方。返回的物件可以是 ObjectName 的子類別。使用相同的參數調用此方法兩次可能會返回相同的物件,或者兩個等效但是不同的物件。
domain
- 物件名的域部分。table
- 套件含一個或多個鍵屬性的雜湊表。表中每項的鍵都是物件名中鍵屬性的鍵。表中的關聯值是物件名中的關聯值。
MalformedObjectNameException
- 如果 domain
套件含非法字元,或者 table
中的某個鍵或值包含非法字元,或者 table
中的某個值未遵循有關引號使用的規則。
NullPointerException
- 如果某個參數為 null。public static ObjectName getInstance(ObjectName name) throws NullPointerException
返回 ObjectName 的實例,該 ObjectName 可用於任何可使用給定物件的地方。返回的物件可以是 ObjectName 的子類別。如果 name
是 ObjectName 子類別的名稱,則無法保證返回的物件屬於同一個類別。
返回的值可能與 name
相同,也可能不相同。使用相同的參數調用此方法兩次可能會返回相同的物件,或者兩個等效但是不同的物件。
因為 ObjectName 是不可變的,所以製作 ObjectName 的副本通常沒有用。此方法的主要用途是用於防止惡意的調用者,它可能向敏感程式碼傳遞具有可疑行為的子類別實例。這種程式碼可以調用此方法來獲得一個已知沒有可疑行為的 ObjectName。
name
- ObjectName 類別或子類別的一個實例
name
符合 ObjectName 的語義,則返回的物件等於(儘管不必相同)name
。
NullPointerException
- 如果 name
為 null。public boolean isPattern()
如果某個物件名的域包含通配符或者它是一個屬性網要,則該物件名是一個網要。
public boolean isDomainPattern()
public boolean isPropertyPattern()
如果物件名是鍵屬性列表網要(例如 "d:k=v,*")或屬性值網要(例如 "d:k=*"),或者兩者都是(例如 "d:k=*,*"),則它是一個鍵屬性網要。
public boolean isPropertyListPattern()
例如,"d:k=v,*" 和 "d:k=*,*" 是鍵屬性列表網要,而 "d:k=*" 則不是。
public boolean isPropertyValuePattern()
例如,"d:k=*" 和 "d:k=*,*" 是屬性值網要,而 "d:k=*" 則不是。
public boolean isPropertyValuePattern(String property) throws NullPointerException, IllegalArgumentException
property
- 要檢查值的屬性。
NullPointerException
- 如果 property
為 null。
IllegalArgumentException
- 如果 property
對於此 ObjectName 不是有效值。public String getCanonicalName()
返回該名稱的規範形式;也就是說,一種字元串表示形式,其中屬性按詞彙順序排序。
更準確地說,該名稱的規範形式是一個由域部分、冒號 (:
)、規範的鍵屬性列表 和一個網要指示 組成的 String。
規範的鍵屬性列表 是與 getCanonicalKeyPropertyListString()
所述相同的字元串。
網要指示 是:
,*
)。
public String getDomain()
public String getKeyProperty(String property) throws NullPointerException
property
- 要返回其值的屬性。
NullPointerException
- 如果 property
為 null。public Hashtable<String,String> getKeyPropertyList()
以雜湊表的形式返回鍵屬性。返回值是一個雜湊表,其中每個鍵是 ObjectName 的鍵屬性列表中的鍵,並且每個值都是與鍵關聯的值。
返回值可以是不可修改的。如果是可修改的,則更改它對此 ObjectName 沒有影響。
public String getKeyPropertyListString()
返回創建時指定的鍵屬性列表的字元串表示形式。如果使用建構子 ObjectName(String)
建構了此 ObjectName,則返回 String 中的鍵屬性順序與該建構子參數中的順序相同。
public String getCanonicalKeyPropertyListString()
String.compareTo(String)
所暗指的順序。
public String toString()
返回該物件名的字元串表示形式。未指定此字元串的格式,但是當且僅當兩個 ObjectName 相等時才會返回相同的字元串。
Object
中的 toString
public boolean equals(Object object)
getCanonicalName()
所描述的字元串。
Object
中的 equals
object
- 要與當前物件名進行比較的物件名。
object
是一個 ObjectName 並且其規範形式與此 ObjectName 的規範形式相同,則返回 true。Object.hashCode()
,
Hashtable
public int hashCode()
Object
中的 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public static String quote(String s) throws NullPointerException
返回給定 String 的有引號形式,使之適合包含在 ObjectName 中。返回的值可用作與 ObjectName 中某個鍵相關聯的值。String s
可包含任何字元。適當使用引號可確保返回的值在 ObjectName 中是合法的。
返回值由引號 ('"')、對應於 s
中字元的字元序列和另一個引號所組成。s
中的字元會不加更改地出現在返回值中,但下列內容除外:
S
- 要用引號形式表示的 String。
NullPointerException
- 如果 s
為 null。public static String unquote(String q) throws IllegalArgumentException, NullPointerException
返回給定 String 的無引號形式,如果 q
是 quote(s)
返回的 String,則 unquote(q).equals(s)
。如果沒有滿足 quote(s).equals(q)
的 String s
,則 unquote(q) 拋出 IllegalArgumentException。
這些規則意味著在有引號和無引號形式之間存在一對一的映射關係。
q
- 要用無引號形式表示的 String。
IllegalArgumentException
- 如果不能由 quote(java.lang.String)
方法返回 q
,例如它沒有以引號 (") 開始和結束。
NullPointerException
- 如果 q
為 null。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。public void setMBeanServer(MBeanServer mbs)
QueryExp
複製的描述
QueryExp
中的 setMBeanServer
mbs
- 將在其上執行查詢的 MBean 伺服器。public int compareTo(ObjectName name)
比較兩個 ObjectName 實例。沒有完整地指定 ObjectName 之間的順序關係,但是存儲的 ObjectName 列表一般按照便於閱讀的順序出現。
特別要指出的是,如果兩個 ObjectName 實例的域不同,則其順序為域的字典順序。鍵屬性列表的順序仍然沒有指定。
例如,以下 ObjectName 實例:
將按以下方式排序:
Comparable<ObjectName>
中的 compareTo
name
- 要比較的 ObjectName。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。