クラスObjectName
- すべての実装されたインタフェース:
Serializable,Comparable<ObjectName>,QueryExp
MBeanのオブジェクト名、または複数のMBean名に一致するパターンを表します。 このクラスのインスタンスは不変です。
このクラスのインスタンスを使って、次の項目を表現できます。
- オブジェクト名
- クエリーのコンテキスト内のオブジェクト名パターン
オブジェクト名は、ドメインの部分とキーのプロパティの部分から成ります。
domainは、コロン(:)を含まない文字列です。 文字列「//」は今後使用するために予約されているため、この文字列は含めないようにしてください。
ドメインにワイルドカード文字のアスタリスク(*)や疑問符(?)が含まれている場合、オブジェクト名はパターンです。 アスタリスクは、0個以上の文字列を表します。疑問符は単一の文字を表します。
ドメインが空の場合、この部分は、ObjectNameを使用するMBeanサーバーのデフォルト・ドメインで置き換えられる場合があります。
キーのプロパティは、キーとその値のセットです。これらの並び順はばらばらです。
個々のキーは、空文字列以外の文字列で、カンマ(,)、等号(=)、コロン、アスタリスク、疑問符を含めることはできません。 また、特定のObjectName内に同じキーを重複して含めることはできません。
キー1個につき、値が1個ずつ割り当てられます。この値は、引用符で囲まれた文字列か、引用符で囲まれていない文字列です。
引用符で囲まれていない値は、空文字列の可能性があります。この文字列には、カンマ、等号、コロン、引用符を含めることはできません。
引用符で囲まれていない値にワイルドカード文字のアスタリスクや疑問符が含まれている場合、オブジェクト名はプロパティ値パターンになります。 アスタリスクは、0個以上の文字列を表します。疑問符は単一の文字を表します。
引用符で囲まれた値は、引用符(")で囲まれた空文字列の可能性があります。 文字列内のバックスラッシュ(\)には特別な意味があります。 バックスラッシュの後ろには、次のいずれかの文字が続きます。
- 別のバックスラッシュ。 2番目のバックスラッシュには特別な意味はありません。2つの文字で単一のバックスラッシュを表します。
- 「n」。 前置されたバックスラッシュと1組で、単一の復帰改行(Javaにおける'\n')を表します。
- 引用符。 前置されたバックスラッシュと1組で、単一の引用符を表します。この引用符は「閉じる」引用符とは見なされません。 引用符で囲まれた値を有効にするには、これとは別に「閉じる」引用符を指定する必要があります。
- 疑問符(?)またはアスタリスク(*)。 バックスラッシュと1組で、単一の疑問符またはアスタリスクを表します。
引用符で囲まれた値の内側に、引用符を挿入することはできません。ただし、奇数個のバックスラッシュの直後では挿入可能です。
引用符で囲まれた値の引用符部分と、その値の内側のバックスラッシュは、値の一部と見なされます。
引用符で囲まれた値にアスタリスクや疑問符が含まれており、その前にバックスラッシュがない場合、これらの文字はワイルドカード文字と見なされ、オブジェクト名はプロパティ値パターンになります。 アスタリスクは、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です。
- 実装上のノート:
- この実装におけるドメイン名の最大許容長は、
Integer.MAX_VALUE/4です - 導入されたバージョン:
- 1.5
- 関連項目:
-
フィールドのサマリー
フィールド -
コンストラクタのサマリー
コンストラクタコンストラクタ説明ObjectName(String name) 文字列を指定してオブジェクト名を構築します。ObjectName(String domain, String key, String value) キーのプロパティを1つだけ持つオブジェクト名を構築します。ObjectName(String domain, Hashtable<String, String> table) Hashtableから、キーのプロパティを複数持つオブジェクト名を構築します。 -
メソッドのサマリー
修飾子と型メソッド説明booleanapply(ObjectName name) このObjectName (パターンの可能性がある)が別のObjectNameと一致するかどうかをテストします。intcompareTo(ObjectName name) ObjectNameの2つのインスタンスを比較します。boolean現在のオブジェクト名と別のオブジェクト名を比較します。字句順に並べられたキーのプロパティ・リストの文字列表現を返します。正規形式の名前、すなわちプロパティを字句順に並べた文字列表現を返します。ドメイン部分を返します。static ObjectNamegetInstance(String name) new ObjectName(name)で取得されたオブジェクトを使用できる任意の場所で使用可能なObjectNameのインスタンスを返します。static ObjectNamegetInstance(String domain, String key, String value) new ObjectName(domain, key, value)で取得されたオブジェクトを使用できる任意の場所で使用可能なObjectNameのインスタンスを返します。static ObjectNamegetInstance(String domain, Hashtable<String, String> table) new ObjectName(domain, table)で取得されたオブジェクトを使用できる任意の場所で使用可能なObjectNameのインスタンスを返します。static ObjectNamegetInstance(ObjectName name) 指定されたオブジェクトを使用できる任意の場所で使用可能なObjectNameのインスタンスを返します。getKeyProperty(String property) キーのプロパティのキー部分に関連付けられた値を取得します。キーのプロパティをHashtableとして返します。作成時に指定した、キーのプロパティのリストの文字列表現を返します。inthashCode()このオブジェクト名のハッシュ・コードを返します。booleanオブジェクト名がドメイン部分のパターンであるかどうかをチェックします。booleanオブジェクト名がパターンかどうかをチェックします。booleanオブジェクト名がキーのプロパティ・リスト上のパターンであるかどうかをチェックします。booleanオブジェクト名がキーのプロパティのパターンであるかどうかをチェックします。booleanオブジェクト名が1つ以上のキー・プロパティの値部分のパターンであるかどうかをチェックします。booleanisPropertyValuePattern(String property) キーのプロパティ内のキーに関連付けられた値がパターンであるかどうかをチェックします。static String指定されたStringを、ObjectNameに含めやすいように引用符で囲んだ値を返します。voidクエリーが実行されるMBeanサーバーを設定します。toString()オブジェクト名の文字列表現を返します。static String指定されたStringを引用符で囲まない形式で返します。
-
フィールド詳細
-
WILDCARD
-
-
コンストラクタの詳細
-
ObjectName
public ObjectName(String name) throws MalformedObjectNameException 文字列を指定してオブジェクト名を構築します。- パラメータ:
name- オブジェクト名の文字列表現。- スロー:
MalformedObjectNameException- パラメータとして渡された文字列の形式が正しくない場合。NullPointerException-nameパラメータがnullの場合。
-
ObjectName
public ObjectName(String domain, String key, String value) throws MalformedObjectNameException キーのプロパティを1つだけ持つオブジェクト名を構築します。- パラメータ:
domain- オブジェクト名のドメイン部分。key- オブジェクト名のキーのプロパティに含まれる属性。value- オブジェクト名のキーのプロパティに含まれる値。- スロー:
MalformedObjectNameException-domain、keyまたはvalueに不正な文字が含まれているか、valueが引用符のルールに従っていないか、ドメインの長さが最大許容長を超えています。NullPointerException- いずれかのパラメータがnullの場合。
-
ObjectName
public ObjectName(String domain, Hashtable<String, String> table) throws MalformedObjectNameExceptionHashtableから、キーのプロパティを複数持つオブジェクト名を構築します。- パラメータ:
domain- オブジェクト名のドメイン部分。table- キーのプロパティを1つ以上含むハッシュ・テーブル。 テーブル内の各エントリのキーは、オブジェクト名のキーのプロパティのキー部分。 テーブル内の関連する値は、オブジェクト名の関連する値。- スロー:
MalformedObjectNameException-domainに不正な文字が含まれているか、table内のキーまたは値の1つに不正な文字が含まれているか、table内の値の1つが引用符のルールに従っていないか、ドメインの長さが最大許容長を超えています。NullPointerException- いずれかのパラメータがnullの場合。
-
-
メソッドの詳細
-
getInstance
public static ObjectName getInstance(String name) throws MalformedObjectNameException, NullPointerException new 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 new ObjectName(domain, key, value)で取得されたオブジェクトを使用できる任意の場所で使用可能なObjectNameのインスタンスを返します。 返されるオブジェクトは、ObjectNameのサブクラスの可能性があります。 同じパラメータを指定してこのメソッドを2回呼び出した場合、同じオブジェクトが返されるか、2つの同等の(同一ではない)オブジェクトが返される可能性があります。- パラメータ:
domain- オブジェクト名のドメイン部分。key- オブジェクト名のキーのプロパティに含まれる属性。value- オブジェクト名のキーのプロパティに含まれる値。- 戻り値:
- 指定されたドメイン、キー、および値に対応するObjectName。
- スロー:
MalformedObjectNameException-domain、keyまたはvalueに不正な文字が含まれているか、valueが引用符のルールに従っていないか、ドメインの長さが最大許容長を超えています。NullPointerException- いずれかのパラメータがnullの場合。
-
getInstance
public static ObjectName getInstance(String domain, Hashtable<String, String> table) throws MalformedObjectNameExceptionnew ObjectName(domain, table)で取得されたオブジェクトを使用できる任意の場所で使用可能なObjectNameのインスタンスを返します。 返されるオブジェクトは、ObjectNameのサブクラスの可能性があります。 同じパラメータを指定してこのメソッドを2回呼び出した場合、同じオブジェクトが返されるか、2つの同等の(同一ではない)オブジェクトが返される可能性があります。- パラメータ:
domain- オブジェクト名のドメイン部分。table- キーのプロパティを1つ以上含むハッシュ・テーブル。 テーブル内の各エントリのキーは、オブジェクト名のキーのプロパティのキー部分。 テーブル内の関連する値は、オブジェクト名の関連する値。- 戻り値:
- 指定されたドメインおよびキー・マッピングに対応するObjectName。
- スロー:
MalformedObjectNameException-domainに不正な文字が含まれているか、table内のキーまたは値の1つに不正な文字が含まれているか、table内の値の1つが引用符のルールに従っていないか、ドメインの長さが最大許容長を超えています。NullPointerException- いずれかのパラメータがnullの場合。
-
getInstance
public static ObjectName getInstance(ObjectName name) 指定されたオブジェクトを使用できる任意の場所で使用可能な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) キーのプロパティ内のキーに関連付けられた値がパターンであるかどうかをチェックします。- パラメータ:
property- プロパティ。このプロパティの値がチェックされる。- 戻り値:
- 指定したキーのプロパティに関連付けられた値がパターンである場合はtrue、そうでない場合はfalse。
- スロー:
NullPointerException-propertyがnullの場合。IllegalArgumentException-propertyがこのObjectNameの有効なキーのプロパティではない場合。- 導入されたバージョン:
- 1.6
-
getCanonicalName
public String getCanonicalName()正規形式の名前、すなわちプロパティを字句順に並べた文字列表現を返します。
正確には、ドメイン部分、コロン(
:)、キーのプロパティの正規リスト、パターン表示から成るStringを正規形式の名前と呼びます。キーのプロパティの正規リストは、
getCanonicalKeyPropertyListString()の説明と同じ文字列です。パターン表示は、次のいずれかになります。
- ObjectNameがプロパティ・リスト・パターンでない場合、空
- ObjectNameがキーを持たないプロパティ・リスト・パターンである場合、アスタリスク
- ObjectNameが1つ以上キーを持つプロパティ・リスト・パターンである場合、カンマとアスタリスク(
,*)。
- 戻り値:
- 正規形式の名前。
-
getDomain
-
getKeyProperty
キーのプロパティのキー部分に関連付けられた値を取得します。- パラメータ:
property- プロパティ。このプロパティの値が取得される。- 戻り値:
- プロパティの値。このObjectName内に該当するプロパティがない場合はnull。
- スロー:
NullPointerException-propertyがnullの場合。
-
getKeyPropertyList
-
getKeyPropertyListString
public String getKeyPropertyListString()作成時に指定した、キーのプロパティのリストの文字列表現を返します。 このObjectNameがコンストラクタ
ObjectName(String)で構築された場合、返されるString内のキーのプロパティは、コンストラクタの引数と同じ順で並べられます。- 戻り値:
- キーのプロパティ・リストの文字列。 この文字列は、ObjectNameがパターンであるかどうかに依存しない。
-
getCanonicalKeyPropertyListString
public String getCanonicalKeyPropertyListString()字句順に並べられたキーのプロパティ・リストの文字列表現を返します。 これは、MBeanをキーのプロパティ・リストから選択する際の字句比較に使用されます。 字句順とは、String.compareTo(String)によって示される順序です。- 戻り値:
- キーのプロパティ・リストの正規文字列。 この文字列は、ObjectNameがパターンであるかどうかに依存しない。
-
toString
-
equals
public boolean equals(Object object) 現在のオブジェクト名と別のオブジェクト名を比較します。 2つのObjectNameインスタンスは、これらの正規形式が等しい場合にのみ等価となります。 正規形式は、getCanonicalName()に説明された文字列です。 -
hashCode
-
quote
指定されたStringを、ObjectNameに含めやすいように引用符で囲んだ値を返します。 戻り値は、ObjectName内のキーの値として使用できます。 String
sには任意の文字を含めることができます。 引用符の使用方法が適切であれば、戻り値はObjectName内の正当な値です。戻り値は、
sの文字に対応する文字のシーケンスを引用符("")で囲んだ形式になります。s内の文字は、次の場合を除いて戻り値内で変更されません。- 引用符("")をバックスラッシュ+引用符(")で置き換える。
- アスタリスク(*)をバックスラッシュ+アスタリスク(\*)で置き換える。
- 疑問符(?)をバックスラッシュ+疑問符(\?)で置き換える。
- バックスラッシュ1個をバックスラッシュ2個で置き換える。
- 復帰改行文字(Javaにおける'\n')をバックスラッシュ+'\n'で置き換える。
- パラメータ:
s- 引用符で囲まれるString。- 戻り値:
- 引用符で囲まれたString。
- スロー:
NullPointerException-sがnullである場合。
-
unquote
指定されたStringを引用符で囲まない形式で返します。
qがquote(s)によって返されるStringである場合、unquote(q).equals(s)です。quote(s).equals(q)のStringsが存在しない場合、unquote(q)はIllegalArgumentExceptionをスローします。これらの規則は、引用符で囲まれた形式と囲まれていない形式が1対1で対応していることを意味しています。
- パラメータ:
q- 引用符で囲まれないString。- 戻り値:
- 引用符で囲まれていないString。
- スロー:
IllegalArgumentException- 引用符(")で囲まれていない場合など、quote(java.lang.String)メソッドがqを返さない場合。NullPointerException-qがnullである場合。
-
apply
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である場合。
-
setMBeanServer
public void setMBeanServer(MBeanServer mbs) インタフェースからコピーされた説明:QueryExpクエリーが実行されるMBeanサーバーを設定します。- 定義:
setMBeanServer、インタフェースQueryExp- パラメータ:
mbs- クエリーが実行されるMBeanサーバー。
-
compareTo
public int compareTo(ObjectName name) ObjectNameの2つのインスタンスを比較します。 ObjectName間の順序リレーションは、仕様が完全に定められたものではありませんが、ソートされたObjectNamesのリストはユーザーが読みやすい順序で表示されるように意図されています。
特に、2つのObjectNameインスタンスのドメインが異なる場合、その順序はドメインの辞書規則に従います。 キーのプロパティ・リストの順序は、未指定のままになります。
たとえば、次のようなObjectNameについて考えましょう。
- Shapes:type=Square,name=3
- Colors:type=Red,name=2
- Shapes:type=Triangle,side=isosceles,name=2
- Colors:type=Red,name=1
- Shapes:type=Square,name=1
- Colors:type=Blue,name=1
- Shapes:type=Square,name=2
- JMImplementation:type=MBeanServerDelegate
- Shapes:type=Triangle,side=scalene,name=1
これらは、次のような順序にできます。
- Colors:type=Blue,name=1
- Colors:type=Red,name=1
- Colors:type=Red,name=2
- JMImplementation:type=MBeanServerDelegate
- Shapes:type=Square,name=1
- Shapes:type=Square,name=2
- Shapes:type=Square,name=3
- Shapes:type=Triangle,side=scalene,name=1
- Shapes:type=Triangle,side=isosceles,name=2
- 定義:
compareTo、インタフェースComparable<ObjectName>- パラメータ:
name-比較対象のオブジェクト。- 戻り値:
- このObjectNameが指定されたObjectNameより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数。
- 導入されたバージョン:
- 1.6
-