JavaTM 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 名に一致するパターンを表します。このクラスのインスタンスは不変です。

このクラスのインスタンスを使って、次の項目を表現することができます。

オブジェクト名は、ドメインの部分とキーのプロパティーの部分から成ります。

「ドメイン」は、コロン (:) を含まない文字列です。文字列「//」は今後使用するために予約されているため、この文字列は含めないようにしてください。

ドメインにワイルドカード文字のアスタリスク (*) や疑問符 (?) が含まれている場合、オブジェクト名はパターンです。アスタリスクは、0 個以上の文字列を表します。疑問符は単一の文字を表します。

ドメインが空の場合、この部分は、ObjectName を使用する MBean サーバーの「デフォルトドメイン」で置き換えられる場合があります。

「キーのプロパティー」は、キーとその値のセットです。これらの並び順はばらばらです。

個々の「キー」は、空文字列以外の文字列で、コンマ (,)、等号 (=)、コロン、アスタリスク、疑問符などを含めることはできません。また、特定の ObjectName 内に同じキーを重複して含めることはできません。

キー 1 個につき、「値」が 1 個ずつ割り当てられます。この値は、引用符で囲まれた文字列か、引用符で囲まれていない文字列です。

「引用符で囲まれていない値」は、空文字列の可能性があります。この文字列には、コンマ、等号、コロン、引用符を含めることはできません。

「引用符で囲まれていない値」にワイルドカード文字のアスタリスクや疑問符が含まれている場合、オブジェクト名は「プロパティー値パターン」になります。アスタリスクは、0 個以上の文字列を表します。疑問符は単一の文字を表します。

「引用符で囲まれた値」は、二重引用符 (") で囲まれた空文字列の可能性があります。文字列内のバックスラッシュ (\) には特別な意味があります。バックスラッシュの後ろには、次のいずれかの文字が続きます。

引用符で囲まれた値の内側に、引用符を挿入することはできません。ただし、奇数個のバックスラッシュの直後では挿入可能です。

引用符で囲まれた値の引用符部分と、その値の内側のバックスラッシュは、値の一部と見なされます。

「引用符で囲まれた値」にアスタリスクや疑問符が含まれており、その前にバックスラッシュがない場合、これらの文字はワイルドカード文字と見なされ、オブジェクト名は「プロパティー値パターン」になります。アスタリスクは、0 個以上の文字列を表します。疑問符は単一の文字を表します。

ObjectName は、0 個以上のキーと値の組み合わせを持つ場合、「プロパティーリストパターン」になります。ドメインが一致し、同一のキーと値の組み合わせを持つ (その他のキーと値が存在していてもよい)、パターンではない ObjectName に一致します。

ObjectName が「プロパティー値パターン」になるのは、前述のように、1 つ以上の「引用符で囲まれた」または「引用符で囲まれていない」キープロパティー値にワイルドカード文字のアスタリスクまたは疑問符が含まれている場合です。この場合は 1 つ以上のキーと値を持ち、1 つ以上の値にワイルドカード文字が含まれています。これは、ドメインが一致し、値の一致する同一のキーを持つ、パターンではない ObjectName に一致します。プロパティー値パターンがプロパティーリストパターンでもある場合、パターンではない ObjectName にその他のキーおよび値を含めることができます。

ObjectName は、「プロパティーリストパターン」または「プロパティー値パターン」あるいはその両方である場合に、「プロパティーパターン」になります。

ObjectName は、ドメインにワイルドカードが含まれるか、ObjectName がプロパティーパターンの場合、パターンになります。

ObjectName がパターンでない場合、キーの値の組み合わせを 1 つ以上持っている必要があります。

ObjectName パターンの例を、次に示します。

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 言語パッケージ名の規則と基本的に同じです。

このクラスの serialVersionUID1081892073854801359L です。

導入されたバージョン:
1.5
関連項目:
直列化された形式

フィールドの概要
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
 

フィールドの詳細

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
キーのプロパティーを 1 つだけ持つオブジェクト名を作成します。

パラメータ:
domain - オブジェクト名のドメイン部分
key - オブジェクト名のキーのプロパティーに含まれる属性
value - オブジェクト名のキーのプロパティーに含まれる値
例外:
MalformedObjectNameException - domainkey、または value に 不正な文字が含まれる場合、または value が 引用符の使用規則に従っていない場合
NullPointerException - いずれかのパラメータが null の場合

ObjectName

public ObjectName(String domain,
                  Hashtable<String,String> table)
           throws MalformedObjectNameException,
                  NullPointerException
Hashtable から、キーのプロパティーを複数持つオブジェクト名を作成します。

パラメータ:
domain - オブジェクト名のドメイン部分
table - キーのプロパティーを 1 つ以上含む ハッシュテーブル。テーブル内の各エントリのキーは、 オブジェクト名のキーのプロパティーのキー部分。テーブル内の関連する値は、 オブジェクト名の関連する値
例外:
MalformedObjectNameException - domain に 不正な文字が含まれる場合、 table 内のキーまたは値に不正な文字が含まれる場合、または table 内に引用符の使用規則に 従っていない値が 1 つ以上ある場合
NullPointerException - いずれかのパラメータが null の場合
メソッドの詳細

getInstance

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

新しい ObjectName(name) で取得されたオブジェクトを使用できる任意の場所で使用可能な ObjectName のインスタンスを返します。返されるオブジェクトは、ObjectName のサブクラスの可能性があります。同じパラメータを指定してこのメソッドを 2 回呼び出した場合、同じオブジェクトが返されるか、2 つの同等の (同一ではない) オブジェクトが返される可能性があります。

パラメータ:
name - オブジェクト名の文字列表現
戻り値:
指定された String に対応する ObjectName
例外:
MalformedObjectNameException - パラメータとして渡された文字列の形式が 正しくない場合
NullPointerException - name パラメータが null の場合

getInstance

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

新しい ObjectName(domain, key, value) で取得されたオブジェクトを使用できる任意の場所で使用可能な ObjectName のインスタンスを返します。返されるオブジェクトは、ObjectName のサブクラスの可能性があります。同じパラメータを指定してこのメソッドを 2 回呼び出した場合、同じオブジェクトが返されるか、2 つの同等の (同一ではない) オブジェクトが返される可能性があります。

パラメータ:
domain - オブジェクト名のドメイン部分
key - オブジェクト名のキーのプロパティーに含まれる属性
value - オブジェクト名のキーのプロパティーに含まれる値
戻り値:
指定されたドメイン、キー、 および値に対応する ObjectName
例外:
MalformedObjectNameException - domainkey、または value に 不正な文字が含まれる場合、または value が 引用符の使用規則に従っていない場合
NullPointerException - いずれかのパラメータが null の場合

getInstance

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

新しい ObjectName(domain, table) で取得されたオブジェクトを使用できる任意の場所で使用可能な ObjectName のインスタンスを返します。返されるオブジェクトは、ObjectName のサブクラスの可能性があります。同じパラメータを指定してこのメソッドを 2 回呼び出した場合、同じオブジェクトが返されるか、2 つの同等の (同一ではない) オブジェクトが返される可能性があります。

パラメータ:
domain - オブジェクト名のドメイン部分
table - キーのプロパティーを 1 つ以上含む ハッシュテーブル。テーブル内の各エントリのキーは、 オブジェクト名のキーのプロパティーのキー部分。テーブル内の関連する値は、 オブジェクト名の関連する値
戻り値:
指定されたドメインおよびキーマッピングに 対応する ObjectName
例外:
MalformedObjectNameException - domain に 不正な文字が含まれる場合、 table 内のキーまたは値に不正な文字が含まれる場合、または table 内に引用符の使用規則に 従っていない値が 1 つ以上ある場合
NullPointerException - いずれかのパラメータが null の場合

getInstance

public static ObjectName getInstance(ObjectName name)
                              throws NullPointerException

指定されたオブジェクトを使用できる任意の場所で使用可能な ObjectName のインスタンスを返します。返されるオブジェクトは、ObjectName のサブクラスの可能性があります。name が ObjectName のサブクラスである場合、同じクラスのオブジェクトが返されるとは限りません。

戻り値は name と同一とは限りません。同じパラメータを指定してこのメソッドを 2 回呼び出した場合、同じオブジェクトが返されるか、2 つの同等の (同一ではない) オブジェクトが返される可能性があります。

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()
オブジェクト名が 1 つ以上のキープロパティーの値部分のパターンであるかどうかをチェックします。

たとえば、「d:k=*」と「d:k=*,*」はプロパティー値のパターンですが、「d:k=v,*」はそうではありません。

戻り値:
名前がプロパティー値パターンである場合は 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()

正規形式の名前、すなわちプロパティーを字句順 (lexical order) に並べた文字列表現を返します。

正確には、ドメイン部分、コロン (:)、字句順のキーのプロパティーリスト、パターン表示から成る 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()

キーのプロパティーを Hashtable として返します。戻り値は Hashtable です。このテーブル内の個々のキーは、ObjectName のキーのプロパティーリストのキーに一致しています。また、テーブル内の値は、キーに関連付けられた値に一致しています。

戻り値は変更できません。変更を加えても、この ObjectName に影響はありません。

戻り値:
キーのプロパティーテーブル

getKeyPropertyListString

public String getKeyPropertyListString()

作成時に指定した、キーのプロパティーのリストの文字列表現を返します。この ObjectName がコンストラクタ ObjectName(String) で作成された場合、返される String 内のキーのプロパティーは、コンストラクタの引数と指定順で並べられます。

戻り値:
キーのプロパティーリストの文字列。この文字列は、 ObjectName がパターンであるかどうかに依存しない

getCanonicalKeyPropertyListString

public String getCanonicalKeyPropertyListString()
字句順に並べられたキーのプロパティーリストの文字列表現を返します。これは、MBean をキーのプロパティーリストから選択する際の字句比較に使用されます。「字句順」とは、String.compareTo(String) によって示される順序です。

戻り値:
キーのプロパティーリストの正規文字列。この文字列は、 ObjectName がパターンであるかどうかに依存しない

toString

public String toString()

オブジェクト名の文字列表現を返します。この文字列の形式は指定されていませんが、2 つの ObjectName が等しい場合にのみ、同一の文字列が返されます。

オーバーライド:
クラス Object 内の toString
戻り値:
このオブジェクト名の文字列表現

equals

public boolean equals(Object object)
現在のオブジェクト名と別のオブジェクト名を比較します。2 つの ObjectName インスタンスは、これらの正規形式が等しい場合にのみ等価となります。正規形式は、getCanonicalName() に説明された文字列です。

オーバーライド:
クラス Object 内の equals
パラメータ:
object - 現在のオブジェクト名と比較する オブジェクト名
戻り値:
object が ObjectName で、 その正規形式がこの ObjectName の正規形式に等しい場合は true
関連項目:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
このオブジェクト名のハッシュコードを返します。

オーバーライド:
クラス Object 内の hashCode
戻り値:
このオブジェクトのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

quote

public static String quote(String s)
                    throws NullPointerException

指定された String を、ObjectName に含めやすいように引用符で囲んだ値を返します。戻り値は、ObjectNmae 内のキーの値として使用できます。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 をスローします。

これらの規則は、引用符で囲まれた形式と囲まれていない形式が 1 対 1 で対応していることを意味しています。

パラメータ:
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 もパターンではなく、2 つの ObjectNames が 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 の 2 つのインスタンスを比較します。ObjectName 間の順序リレーションは、仕様が完全に定められたものではありませんが、ソートされた ObjectNames のリストはユーザーが読みやすい順序で表示されるように意図されています。

特に、2 つの ObjectName インスタンスのドメインが異なる場合、その順序はドメインの辞書規則に従います。キーのプロパティーリストの順序は、無指定のままになります。

たとえば、次のような ObjectName について考えましょう。

これらは、次のような順序にできます。

定義:
インタフェース Comparable<ObjectName> 内の compareTo
パラメータ:
name - 比較対象の ObjectName
戻り値:
この ObjectName が指定された ObjectName より小さい場合は負の整数、 等しい場合はゼロ、 大きい場合は正の整数
導入されたバージョン:
1.6

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。