モジュール java.management
パッケージ javax.management

クラスObjectName

java.lang.Object
javax.management.ObjectName
すべての実装されたインタフェース:
Serializable, Comparable<ObjectName>, QueryExp

public class ObjectName extends Object implements 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=Bard:type=Fro,name=Barなどに一致します。
  • d:type=F*o,name=Barは、d:type=Fo,name=Bard: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言語パッケージ名の規則と基本的に同じです。

このクラスのserialVersionUID1081892073854801359Lです。

実装上のノート:
この実装におけるドメイン名の最大許容長は、Integer.MAX_VALUE/4です
導入されたバージョン:
1.5
関連項目: