public class ObjectName extends Object implements Comparable<ObjectName>, QueryExp
MBeanのオブジェクト名、または複数のMBean名に一致するパターンを表します。 このクラスのインスタンスは不変です。
このクラスのインスタンスを使って、次の項目を表現できます。
オブジェクト名は、ドメインの部分とキーのプロパティの部分から成ります。
domainは、コロン(:
)を含まない文字列です。 文字列「//
」は今後使用するために予約されているため、この文字列は含めないようにしてください。
ドメインにワイルドカード文字のアスタリスク(*
)や疑問符(?
)が含まれている場合、オブジェクト名はパターンです。 アスタリスクは、0個以上の文字列を表します。疑問符は単一の文字を表します。
ドメインが空の場合、この部分は、ObjectNameを使用するMBeanサーバーのデフォルト・ドメインで置き換えられる場合があります。
キーのプロパティは、キーとその値のセットです。これらの並び順はばらばらです。
個々のキーは、空文字列以外の文字列で、カンマ(,
)、等号(=
)、コロン、アスタリスク、疑問符を含めることはできません。 また、特定のObjectName内に同じキーを重複して含めることはできません。
キー1個につき、値が1個ずつ割り当てられます。この値は、引用符で囲まれた文字列か、引用符で囲まれていない文字列です。
引用符で囲まれていない値は、空文字列の可能性があります。この文字列には、カンマ、等号、コロン、引用符を含めることはできません。
引用符で囲まれていない値にワイルドカード文字のアスタリスクや疑問符が含まれている場合、オブジェクト名はプロパティ値パターンになります。 アスタリスクは、0個以上の文字列を表します。疑問符は単一の文字を表します。
引用符で囲まれた値は、引用符("
)で囲まれた空文字列の可能性があります。 文字列内のバックスラッシュ(\
)には特別な意味があります。 バックスラッシュの後ろには、次のいずれかの文字が続きます。
引用符で囲まれた値の内側に、引用符を挿入することはできません。ただし、奇数個のバックスラッシュの直後では挿入可能です。
引用符で囲まれた値の引用符部分と、その値の内側のバックスラッシュは、値の一部と見なされます。
引用符で囲まれた値にアスタリスクや疑問符が含まれており、その前にバックスラッシュがない場合、これらの文字はワイルドカード文字と見なされ、オブジェクト名はプロパティ値パターンになります。 アスタリスクは、0個以上の文字列を表します。疑問符は単一の文字を表します。
ObjectNameは、プロパティ・リスト・パターンの可能性があります。 この場合、0個以上のキーと値の組み合わせを持つことがあります。 ドメインが一致し、同一のキーと値の組み合わせを持つ(その他のキーと値が存在していてもよい)、パターンではないObjectNameに一致します。
ObjectNameがプロパティ値パターンになるのは、前述のように、1つ以上の引用符で囲まれたまたは引用符で囲まれていないキー・プロパティ値にワイルドカード文字のアスタリスクまたは疑問符が含まれている場合です。 この場合は1つ以上のキーと値を持ち、1つ以上の値にワイルドカード文字が含まれています。 これは、ドメインが一致し、値の一致する同一のキーを持つ、パターンではないObjectNameに一致します。プロパティ値パターンがプロパティ・リスト・パターンでもある場合、パターンではないObjectNameにその他のキーおよび値を含めることができます。
ObjectNameは、プロパティ・リスト・パターンまたはプロパティ値パターンあるいはその両方である場合に、プロパティ・パターンになります。
ObjectNameは、ドメインにワイルドカードが含まれるか、ObjectNameがプロパティ・パターンの場合、パターンになります。
ObjectNameがパターンでない場合、キーの値の組み合わせを1つ以上持っている必要があります。
ObjectNameパターンの例を、次に示します。
*:type=Foo,name=Bar
は、正確なキー・セットがtype=Foo,name=Bar
であるすべてのドメイン内の名前に一致します。d:type=Foo,name=Bar,*
は、キーtype=Foo,name=Bar
およびその他のゼロ以上のキーを含むドメインd
内の名前に一致します。*:type=Foo,name=Bar,*
は、キーtype=Foo,name=Bar
およびその他のゼロ以上のキーを含むすべてのドメイン内の名前に一致します。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として書き込まれたキーのプロパティ・リストは、カンマ区切り形式の要素リストになります。 各要素は、アスタリスクかキーのプロパティです。 キーのプロパティは、キー、等号(=
)、値から成ります。
キーのプロパティ・リストの要素として、最大1個のアスタリスクを含めることができます。 キーのプロパティ・リストにアスタリスク要素が含まれる場合、ObjectNameはプロパティ・リスト・パターンになります。
ObjectNameを表すString内の空白文字に、特別な意味はありません。 たとえば、次のString:
domain: key1 = value1 , key2 = value2は、2つのキーを持つObjectNameを表します。 キーの名前は、それぞれ6文字(最初と最後の文字は空白文字)です。 キーの値
" key1 "
の前後にも空白文字が入っています。
上記の文字制約のほか、引用符で囲まれているかどうかを問わず、ObjectNameのどの部分(ドメイン部分、キー部分、値部分)にも、復帰改行文字('\n'
)を含めることはできないという制約があります。 ただし、\n
付きの引用符で囲まれた値には、復帰改行文字を含めることができます。
特殊文字と引用符の使用方法に関する規則は、ObjectNameの作成に使用するコンストラクタの種類を問わず適用されます。
異なった複数のベンダーから提供されたMBeanの競合を避けるためには、MBeanを指定する組織の逆DNS名、ピリオド、その組織によって解釈が決定される文字列から成るドメイン名を付けるとよいでしょう。 たとえば、example.com
指定のMBeanは、com.example.MyDomain
などのドメインを持ちます。 これは、Java言語パッケージ名の規則と基本的に同じです。
このクラスのserialVersionUIDは1081892073854801359L
です。
修飾子と型 | フィールド | 説明 |
---|---|---|
static ObjectName |
WILDCARD |
ワイルドカード「*:*」ObjectNameを定義します。
|
コンストラクタ | 説明 |
---|---|
ObjectName(String name) |
文字列を指定してオブジェクト名を構築します。
|
ObjectName(String domain, Hashtable<String,String> table) |
Hashtableから、キーのプロパティを複数持つオブジェクト名を構築します。
|
ObjectName(String domain, String key, String value) |
キーのプロパティを1つだけ持つオブジェクト名を構築します。
|
修飾子と型 | メソッド | 説明 |
---|---|---|
boolean |
apply(ObjectName name) |
このObjectName (パターンの可能性がある)が別のObjectNameと一致するかどうかをテストします。
|
int |
compareTo(ObjectName name) |
ObjectNameの2つのインスタンスを比較します。
|
boolean |
equals(Object object) |
現在のオブジェクト名と別のオブジェクト名を比較します。
|
String |
getCanonicalKeyPropertyListString() |
字句順に並べられたキーのプロパティ・リストの文字列表現を返します。
|
String |
getCanonicalName() |
正規形式の名前、すなわちプロパティを字句順に並べた文字列表現を返します。
|
String |
getDomain() |
ドメイン部分を返します。
|
static ObjectName |
getInstance(ObjectName name) |
指定されたオブジェクトを使用できる任意の場所で使用可能なObjectNameのインスタンスを返します。
|
static ObjectName |
getInstance(String name) |
new ObjectName(name) で取得されたオブジェクトを使用できる任意の場所で使用可能なObjectNameのインスタンスを返します。 |
static ObjectName |
getInstance(String domain, Hashtable<String,String> table) |
new ObjectName(domain, table) で取得されたオブジェクトを使用できる任意の場所で使用可能なObjectNameのインスタンスを返します。 |
static ObjectName |
getInstance(String domain, String key, String value) |
new ObjectName(domain, key, value) で取得されたオブジェクトを使用できる任意の場所で使用可能なObjectNameのインスタンスを返します。 |
String |
getKeyProperty(String property) |
キーのプロパティのキー部分に関連付けられた値を取得します。
|
Hashtable<String,String> |
getKeyPropertyList() |
キーのプロパティをHashtableとして返します。
|
String |
getKeyPropertyListString() |
作成時に指定した、キーのプロパティのリストの文字列表現を返します。
|
int |
hashCode() |
このオブジェクト名のハッシュ・コードを返します。
|
boolean |
isDomainPattern() |
オブジェクト名がドメイン部分のパターンであるかどうかをチェックします。
|
boolean |
isPattern() |
オブジェクト名がパターンかどうかをチェックします。
|
boolean |
isPropertyListPattern() |
オブジェクト名がキーのプロパティ・リスト上のパターンであるかどうかをチェックします。
|
boolean |
isPropertyPattern() |
オブジェクト名がキーのプロパティのパターンであるかどうかをチェックします。
|
boolean |
isPropertyValuePattern() |
オブジェクト名が1つ以上のキー・プロパティの値部分のパターンであるかどうかをチェックします。
|
boolean |
isPropertyValuePattern(String property) |
キーのプロパティ内のキーに関連付けられた値がパターンであるかどうかをチェックします。
|
static String |
quote(String s) |
指定されたStringを、ObjectNameに含めやすいように引用符で囲んだ値を返します。
|
void |
setMBeanServer(MBeanServer mbs) |
クエリーが実行されるMBeanサーバーを設定します。
|
String |
toString() |
オブジェクト名の文字列表現を返します。
|
static String |
unquote(String q) |
指定されたStringを引用符で囲まない形式で返します。
|
public static final ObjectName WILDCARD
public ObjectName(String name) throws MalformedObjectNameException
name
- オブジェクト名の文字列表現。MalformedObjectNameException
- パラメータとして渡された文字列の形式が正しくない場合。NullPointerException
- name
パラメータがnullの場合。public ObjectName(String domain, String key, String value) throws MalformedObjectNameException
domain
- オブジェクト名のドメイン部分。key
- オブジェクト名のキーのプロパティに含まれる属性。value
- オブジェクト名のキーのプロパティに含まれる値。MalformedObjectNameException
- domain
、key
、またはvalue
に不正な文字が含まれる場合、またはvalue
が引用符の使用規則に従っていない場合。NullPointerException
- いずれかのパラメータがnullの場合。public ObjectName(String domain, Hashtable<String,String> table) throws MalformedObjectNameException
domain
- オブジェクト名のドメイン部分。table
- キーのプロパティを1つ以上含むハッシュ・テーブル。 テーブル内の各エントリのキーは、オブジェクト名のキーのプロパティのキー部分。 テーブル内の関連する値は、オブジェクト名の関連する値。 MalformedObjectNameException
- domain
に不正な文字が含まれる場合、table
内のキーまたは値に不正な文字が含まれる場合、またはtable
内に引用符の使用規則に従っていない値が1つ以上ある場合。NullPointerException
- いずれかのパラメータがnullの場合。public static ObjectName getInstance(String name) throws MalformedObjectNameException, NullPointerException
new ObjectName(name)
で取得されたオブジェクトを使用できる任意の場所で使用可能なObjectNameのインスタンスを返します。 返されるオブジェクトは、ObjectNameのサブクラスの可能性があります。 同じパラメータを指定してこのメソッドを2回呼び出した場合、同じオブジェクトが返されるか、2つの同等の(同一ではない)オブジェクトが返される可能性があります。
name
- オブジェクト名の文字列表現。MalformedObjectNameException
- パラメータとして渡された文字列の形式が正しくない場合。NullPointerException
- name
パラメータがnullの場合。public static ObjectName getInstance(String domain, String key, String value) throws MalformedObjectNameException
new ObjectName(domain, key, value)
で取得されたオブジェクトを使用できる任意の場所で使用可能なObjectNameのインスタンスを返します。 返されるオブジェクトは、ObjectNameのサブクラスの可能性があります。 同じパラメータを指定してこのメソッドを2回呼び出した場合、同じオブジェクトが返されるか、2つの同等の(同一ではない)オブジェクトが返される可能性があります。
domain
- オブジェクト名のドメイン部分。key
- オブジェクト名のキーのプロパティに含まれる属性。value
- オブジェクト名のキーのプロパティに含まれる値。MalformedObjectNameException
- domain
、key
、またはvalue
に不正な文字が含まれる場合、またはvalue
が引用符の使用規則に従っていない場合。NullPointerException
- いずれかのパラメータがnullの場合。public static ObjectName getInstance(String domain, Hashtable<String,String> table) throws MalformedObjectNameException
new ObjectName(domain, table)
で取得されたオブジェクトを使用できる任意の場所で使用可能なObjectNameのインスタンスを返します。 返されるオブジェクトは、ObjectNameのサブクラスの可能性があります。 同じパラメータを指定してこのメソッドを2回呼び出した場合、同じオブジェクトが返されるか、2つの同等の(同一ではない)オブジェクトが返される可能性があります。
domain
- オブジェクト名のドメイン部分。table
- キーのプロパティを1つ以上含むハッシュ・テーブル。 テーブル内の各エントリのキーは、オブジェクト名のキーのプロパティのキー部分。 テーブル内の関連する値は、オブジェクト名の関連する値。 MalformedObjectNameException
- domain
に不正な文字が含まれる場合、table
内のキーまたは値に不正な文字が含まれる場合、またはtable
内に引用符の使用規則に従っていない値が1つ以上ある場合。NullPointerException
- いずれかのパラメータがnullの場合。public static ObjectName getInstance(ObjectName name)
指定されたオブジェクトを使用できる任意の場所で使用可能なObjectNameのインスタンスを返します。 返されるオブジェクトは、ObjectNameのサブクラスの可能性があります。 name
がObjectNameのサブクラスである場合、同じクラスのオブジェクトが返されるとは限りません。
戻り値はname
と同一とは限りません。 同じパラメータを指定してこのメソッドを2回呼び出した場合、同じオブジェクトが返されるか、2つの同等の(同一ではない)オブジェクトが返される可能性があります。
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=v,*」はそうではありません。
public boolean isPropertyValuePattern(String property)
property
- プロパティ。このプロパティの値がチェックされる。NullPointerException
- property
がnullの場合。IllegalArgumentException
- property
がこのObjectNameの有効なキーのプロパティではない場合。public String getCanonicalName()
正規形式の名前、すなわちプロパティを字句順に並べた文字列表現を返します。
正確には、ドメイン部分、コロン(:
)、キーのプロパティの正規リスト、パターン表示から成るStringを正規形式の名前と呼びます。
キーのプロパティの正規リストは、getCanonicalKeyPropertyListString()
の説明と同じ文字列です。
パターン表示は、次のいずれかになります。
,*
)。
public String getDomain()
public String getKeyProperty(String property)
property
- プロパティ。このプロパティの値が取得される。NullPointerException
- property
がnullの場合。public Hashtable<String,String> getKeyPropertyList()
キーのプロパティをHashtableとして返します。 戻り値はHashtableです。このテーブル内の個々のキーは、ObjectNameのキーのプロパティ・リストのキーに一致しています。また、テーブル内の値は、キーに関連付けられた値に一致しています。
戻り値は変更できません。 変更を加えても、このObjectNameに影響はありません。
public String getKeyPropertyListString()
作成時に指定した、キーのプロパティのリストの文字列表現を返します。 このObjectNameがコンストラクタObjectName(String)
で構築された場合、返されるString内のキーのプロパティは、コンストラクタの引数と同じ順で並べられます。
public String getCanonicalKeyPropertyListString()
String.compareTo(String)
によって示される順序です。 public String toString()
オブジェクト名の文字列表現を返します。 この文字列の形式は指定されていませんが、2つのObjectNameが等しい場合にのみ、同一の文字列が返されます。
public boolean equals(Object object)
getCanonicalName()
に説明された文字列です。 equals
、クラスObject
object
- 現在のオブジェクト名と比較するオブジェクト名。object
がObjectNameで、その正規形式がこのObjectNameの正規形式に等しい場合はtrue。Object.hashCode()
、HashMap
public int hashCode()
hashCode
、クラスObject
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public static String quote(String s)
指定されたStringを、ObjectNameに含めやすいように引用符で囲んだ値を返します。 戻り値は、ObjectName内のキーの値として使用できます。 String s
には任意の文字を含めることができます。 引用符の使用方法が適切であれば、戻り値はObjectName内の正当な値です。
戻り値は、s
の文字に対応する文字のシーケンスを引用符("")で囲んだ形式になります。 s
内の文字は、次の場合を除いて戻り値内で変更されません。
s
- 引用符で囲まれるString。NullPointerException
- s
がnullである場合。public static String unquote(String q)
指定されたStringを引用符で囲まない形式で返します。 q
がquote(s)
によって返されるStringである場合、unquote(q).equals(s)
です。 quote(s).equals(q)
のString s
が存在しない場合、unquote(q)はIllegalArgumentExceptionをスローします。
これらの規則は、引用符で囲まれた形式と囲まれていない形式が1対1で対応していることを意味しています。
q
- 引用符で囲まれないString。IllegalArgumentException
- 引用符(")で囲まれていない場合など、quote(java.lang.String)
メソッドがq
を返さない場合。NullPointerException
- q
がnullである場合。public boolean apply(ObjectName name)
このObjectName (パターンの可能性がある)が別のObjectNameと一致するかどうかをテストします。 name
がパターンの場合、結果はfalseです。 このObjectNameがパターンの場合、name
がこのパターンと一致している場合にのみ、結果はtrueです。 このObjectNameもname
もパターンではなく、2つのObjectNamesがequals(Object)
メソッドの説明どおり等価である場合にのみ、結果はtrueです。
apply
、インタフェースQueryExp
name
- 比較対象のMBeanの名前。name
がこのObjectNameと一致する場合はtrue。NullPointerException
- name
がnullである場合。public void setMBeanServer(MBeanServer mbs)
QueryExp
setMBeanServer
、インタフェースQueryExp
mbs
- クエリーが実行されるMBeanサーバー。public int compareTo(ObjectName name)
ObjectNameの2つのインスタンスを比較します。 ObjectName間の順序リレーションは、仕様が完全に定められたものではありませんが、ソートされたObjectNamesのリストはユーザーが読みやすい順序で表示されるように意図されています。
特に、2つのObjectNameインスタンスのドメインが異なる場合、その順序はドメインの辞書規則に従います。 キーのプロパティ・リストの順序は、未指定のままになります。
たとえば、次のようなObjectNameについて考えましょう。
これらは、次のような順序にできます。
compareTo
、インタフェースComparable<ObjectName>
name
-比較対象のオブジェクト。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。