|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object javax.management.ObjectName
public class ObjectName
MBean のオブジェクト名、または複数の MBean 名に一致するパターンを表します。このクラスのインスタンスは不変です。
このクラスのインスタンスを使って、次の項目を表現することができます。
オブジェクト名は、ドメインの部分とキーのプロパティーの部分から成ります。
「ドメイン」は、コロン (:
) を含まない文字列です。文字列「//
」は今後使用するために予約されているため、この文字列は含めないようにしてください。
ドメインにワイルドカード文字のアスタリスク (*
) や疑問符 (?
) が含まれている場合、オブジェクト名はパターンです。アスタリスクは、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この String は、2 つのキーを持つ ObjectName を表します。キーの名前は、それぞれ 6 文字 (最初と最後の文字は空白文字) です。キーの値
" key1 "
の前後にも空白文字が入っています。
上記の文字制約のほか、引用符で囲まれているかどうかを問わず、ObjectName のどの部分 (ドメイン部分、キー部分、値部分) にも、復帰改行文字 ('\n'
) を含めることはできないという制約があります。ただし、\n
付きの引用符で囲まれた値には、復帰改行文字を含めることができます。
特殊文字と引用符の使用方法に関する規則は、ObjectName の作成に使用するコンストラクタの種類を問わず適用されます。
異なった複数のベンダーから提供された MBean の衝突を避けるためには、MBean を指定する組織の逆 DNS 名、ピリオド、その組織によって解釈が決定される文字列から成るドメイン名を付けるとよいでしょう。たとえば、Sun Microsystems Inc. 指定の MBean の場合、DNS 名 sun.com
のドメインは com.sun.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()
正規形式の名前、すなわちプロパティーを字句順 (lexical order) に並べた文字列表現を返します。 |
String |
getDomain()
ドメイン部分を返します。 |
static ObjectName |
getInstance(ObjectName name)
指定されたオブジェクトを使用できる任意の場所で使用可能な ObjectName のインスタンスを返します。 |
static ObjectName |
getInstance(String name)
新しい ObjectName(name) で取得されたオブジェクトを使用できる任意の場所で使用可能な ObjectName のインスタンスを返します。 |
static ObjectName |
getInstance(String domain,
Hashtable<String,String> table)
新しい ObjectName(domain, table) で取得されたオブジェクトを使用できる任意の場所で使用可能な ObjectName のインスタンスを返します。 |
static ObjectName |
getInstance(String domain,
String key,
String value)
新しい 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 を引用符で囲まない形式で返します。 |
クラス 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
- キーのプロパティーを 1 つ以上含む ハッシュテーブル。テーブル内の各エントリのキーは、 オブジェクト名のキーのプロパティーのキー部分。テーブル内の関連する値は、 オブジェクト名の関連する値
MalformedObjectNameException
- domain
に 不正な文字が含まれる場合、 table
内のキーまたは値に不正な文字が含まれる場合、または table
内に引用符の使用規則に 従っていない値が 1 つ以上ある場合
NullPointerException
- いずれかのパラメータが null の場合メソッドの詳細 |
---|
public static ObjectName getInstance(String name) throws MalformedObjectNameException, NullPointerException
新しい ObjectName(name)
で取得されたオブジェクトを使用できる任意の場所で使用可能な ObjectName のインスタンスを返します。返されるオブジェクトは、ObjectName のサブクラスの可能性があります。同じパラメータを指定してこのメソッドを 2 回呼び出した場合、同じオブジェクトが返されるか、2 つの同等の (同一ではない) オブジェクトが返される可能性があります。
name
- オブジェクト名の文字列表現
MalformedObjectNameException
- パラメータとして渡された文字列の形式が 正しくない場合
NullPointerException
- name
パラメータが null の場合public static ObjectName getInstance(String domain, String key, String value) throws MalformedObjectNameException, NullPointerException
新しい 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, NullPointerException
新しい ObjectName(domain, table)
で取得されたオブジェクトを使用できる任意の場所で使用可能な ObjectName のインスタンスを返します。返されるオブジェクトは、ObjectName のサブクラスの可能性があります。同じパラメータを指定してこのメソッドを 2 回呼び出した場合、同じオブジェクトが返されるか、2 つの同等の (同一ではない) オブジェクトが返される可能性があります。
domain
- オブジェクト名のドメイン部分table
- キーのプロパティーを 1 つ以上含む ハッシュテーブル。テーブル内の各エントリのキーは、 オブジェクト名のキーのプロパティーのキー部分。テーブル内の関連する値は、 オブジェクト名の関連する値
MalformedObjectNameException
- domain
に 不正な文字が含まれる場合、 table
内のキーまたは値に不正な文字が含まれる場合、または table
内に引用符の使用規則に 従っていない値が 1 つ以上ある場合
NullPointerException
- いずれかのパラメータが null の場合public static ObjectName getInstance(ObjectName name) throws NullPointerException
指定されたオブジェクトを使用できる任意の場所で使用可能な 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) throws NullPointerException, IllegalArgumentException
property
- プロパティー。このプロパティーの値がチェックされる
NullPointerException
- property
が null の場合
IllegalArgumentException
- property
が この ObjectName の有効なキーのプロパティーではない場合public String getCanonicalName()
正規形式の名前、すなわちプロパティーを字句順 (lexical order) に並べた文字列表現を返します。
正確には、ドメイン部分、コロン (:
)、字句順のキーのプロパティーリスト、パターン表示から成る String を「正規形式の名前」と呼びます。
キーのプロパティーの正規リストは、getCanonicalKeyPropertyListString()
の説明と同じ文字列です。
パターン表示は、次のいずれかになります。
,*
)
public String getDomain()
public String getKeyProperty(String property) throws NullPointerException
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 が等しい場合にのみ、同一の文字列が返されます。
Object
内の toString
public boolean equals(Object object)
getCanonicalName()
に説明された文字列です。
Object
内の equals
object
- 現在のオブジェクト名と比較する オブジェクト名
object
が ObjectName で、 その正規形式がこの ObjectName の正規形式に等しい場合は trueObject.hashCode()
,
Hashtable
public int hashCode()
Object
内の hashCode
Object.equals(java.lang.Object)
,
Hashtable
public static String quote(String s) throws NullPointerException
指定された String を、ObjectName に含めやすいように引用符で囲んだ値を返します。戻り値は、ObjectNmae 内のキーの値として使用できます。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 をスローします。
これらの規則は、引用符で囲まれた形式と囲まれていない形式が 1 対 1 で対応していることを意味しています。
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
もパターンではなく、2 つの ObjectNames が 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 の 2 つのインスタンスを比較します。ObjectName 間の順序リレーションは、仕様が完全に定められたものではありませんが、ソートされた ObjectNames のリストはユーザーが読みやすい順序で表示されるように意図されています。
特に、2 つの ObjectName インスタンスのドメインが異なる場合、その順序はドメインの辞書規則に従います。キーのプロパティーリストの順序は、無指定のままになります。
たとえば、次のような ObjectName について考えましょう。
これらは、次のような順序にできます。
Comparable<ObjectName>
内の compareTo
name
- 比較対象の ObjectName
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。