JavaTM 2 Platform
Standard Ed. 5.0

javax.management
クラス ObjectName

java.lang.Object
  上位を拡張 javax.management.ObjectName
すべての実装されたインタフェース:
Serializable, QueryExp

public class ObjectName
extends Object
implements QueryExp, Serializable

MBean のオブジェクト名、または複数の MBean 名に一致するパターンを表します。このクラスのインスタンスは不変です。

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

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

「ドメイン」は、コロン (:) を含まない文字列です。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

コンストラクタの概要
ObjectName(String name)
          文字列を指定してオブジェクト名を作成します。
ObjectName(String domain, Hashtable table)
          Hashtable から、キーのプロパティを複数持つオブジェクト名を作成します。
ObjectName(String domain, String key, String value)
          キーのプロパティを 1 つだけ持つオブジェクト名を作成します。
 
メソッドの概要
 boolean apply(ObjectName name)
          この ObjectName (パターンの可能性がある) が別の ObjectName と一致するかどうかをテストします。
 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 table)
          新しい ObjectName(domain, table) で取得されたオブジェクトを使用できる任意の場所で使用可能な ObjectName のインスタンスを返します。
static ObjectName getInstance(String domain, String key, String value)
          新しい ObjectName(domain, key, value) で取得されたオブジェクトを使用できる任意の場所で使用可能な ObjectName のインスタンスを返します。
 String getKeyProperty(String property)
          キーのプロパティのキー部分に関連付けられた値を取得します。
 Hashtable getKeyPropertyList()
          キーのプロパティを Hashtable として返します。
 String getKeyPropertyListString()
          作成時に指定した、キーのプロパティのリストの文字列表現を返します。
 int hashCode()
          このオブジェクト名のハッシュコードを返します。
 boolean isDomainPattern()
          オブジェクト名がドメイン部分のパターンであるかどうかをチェックします。
 boolean isPattern()
          オブジェクト名がパターンかどうかをチェックします。
 boolean isPropertyPattern()
          オブジェクト名がキーのプロパティのパターンであるかどうかをチェックします。
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
 

コンストラクタの詳細

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 table)
           throws MalformedObjectNameException,
                  NullPointerException
Hashtable から、キーのプロパティを複数持つオブジェクト名を作成します。

パラメータ:
domain - オブジェクト名のドメイン部分
table - キーのプロパティを 1 つ以上含むハッシュテーブル。テーブル内の個々のキーのエントリは、オブジェクト名を構成するキーのプロパティのキー部分。テーブル内の関連する値は、オブジェクト名を構成するキーの値の部分
例外:
MalformedObjectNameException - domain に不正な文字が含まれる場合、table 内のキーまたは値に不正な文字が含まれる場合、table 内に引用符の使用規則に従っていない値がある場合
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 table)
                              throws MalformedObjectNameException,
                                     NullPointerException

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

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

戻り値:
名前がパターンである場合は true、そうでない場合は false

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 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 サーバ

JavaTM 2 Platform
Standard Ed. 5.0

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

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