JavaTM Platform
Standard Ed. 6

javax.management
クラス ImmutableDescriptor

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

public class ImmutableDescriptor
extends Object
implements Descriptor

不変記述子

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

フィールドの概要
static ImmutableDescriptor EMPTY_DESCRIPTOR
          空の記述子
 
コンストラクタの概要
ImmutableDescriptor(Map<String,?> fields)
           フィールドの名前と値が指定した Map のキーと値である記述子を構築します。
ImmutableDescriptor(String... fields)
          指定されたフィールドを含む記述子を構築します。
ImmutableDescriptor(String[] fieldNames, Object[] fieldValues)
          指定されたフィールドおよび値を含む記述子を構築します。
 
メソッドの概要
 Descriptor clone()
           この記述子と等価な記述子を返します。
 boolean equals(Object o)
          この記述子と指定されたオブジェクトを比較します。
 String[] getFieldNames()
          記述子内のすべてのフィールド名を返します。
 String[] getFields()
          この記述子に含まれるすべてのフィールドを単一の文字列配列として返します。
 Object getFieldValue(String fieldName)
          特定のフィールド名の値を返します。
 Object[] getFieldValues(String... fieldNames)
          記述子内のすべてのフィールドの値を Object の配列として返します。
 int hashCode()
           この記述子のハッシュコード値を返します。
 boolean isValid()
          すべてのフィールドに名前が付与されていて値が有効な場合、true を返します。
 void removeField(String fieldName)
          記述子からフィールドを削除します。
 void setField(String fieldName, Object fieldValue)
          このクラスは不変であるため、この操作はサポートされていません。
 void setFields(String[] fieldNames, Object[] fieldValues)
          このクラスは不変であるため、この操作はサポートされていません。
 String toString()
          オブジェクトの文字列表現を返します。
static ImmutableDescriptor union(Descriptor... descriptors)
           内容が指定した記述子の和集合である ImmutableDescriptor を返します。
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

EMPTY_DESCRIPTOR

public static final ImmutableDescriptor EMPTY_DESCRIPTOR
空の記述子

コンストラクタの詳細

ImmutableDescriptor

public ImmutableDescriptor(String[] fieldNames,
                           Object[] fieldValues)
指定されたフィールドおよび値を含む記述子を構築します。

例外:
IllegalArgumentException - いずれかの配列が null の場合、 配列のサイズが異なる場合、 フィールド名が null または空の場合、または同一のフィールド名が 複数回出現する場合

ImmutableDescriptor

public ImmutableDescriptor(String... fields)
指定されたフィールドを含む記述子を構築します。各 String は、fieldName=fieldValue の形式にする必要があります。フィールド名は、最初の = 文字までです。たとえば、String が a=b=c の場合、フィールド名は a で、値は b=c です。

例外:
IllegalArgumentException - パラメータが null の場合、フィールド名が空の場合、同一のフィールド名が複数回出現する場合、 または文字列のいずれかが = 文字を含んでいない場合。

ImmutableDescriptor

public ImmutableDescriptor(Map<String,?> fields)
 

フィールドの名前と値が指定した Map のキーと値である記述子を構築します。

例外:
IllegalArgumentException - パラメータが null の場合、 フィールド名が null または空の場合、または同一のフィールド名が 複数回出現する場合 (フィールド名の大文字と小文字が区別されない場合に 発生することがある)
メソッドの詳細

union

public static ImmutableDescriptor union(Descriptor... descriptors)
 

内容が指定した記述子の和集合である ImmutableDescriptor を返します。結果には、各記述子内に出現する全フィールドが、メソッド呼び出し時点でのそのフィールドの値とともに表示されます。その後、記述子を変更しても、ここで返される ImmutableDescriptor は影響を受けません。

 

もっとも単純なケースでは、記述子は 1 つだけで、返される ImmutableDescriptor はこのメソッドの呼び出し時のフィールドのコピーになります。

 
 Descriptor d = something();
 ImmutableDescriptor copy = ImmutableDescriptor.union(d);
 

パラメータ:
descriptors - 結合する記述子。記述子のいずれかが null である場合、 それはスキップされる
戻り値:
指定した記述子の和集合である ImmutableDescriptor。入力記述子のいずれかが必須フィールドをすべて含む ImmutableDescriptor である場合、返されるオブジェクトはその記述子と同じになる可能性がある。
例外:
IllegalArgumentException - 2 つの記述子に同一のフィールド名が存在するが、 それぞれに関連付けられた値が異なる場合。プリミティブ配列値は、 要素および型が同じ場合に、 同一と見なされる。オブジェクト配列値は、Arrays.deepEquals(Object[],Object[]) が true を返す場合に、 同一と見なされる

getFieldValue

public final Object getFieldValue(String fieldName)
インタフェース Descriptor の記述:
特定のフィールド名の値を返します。その名前の値が存在しない場合は null を返します。

定義:
インタフェース Descriptor 内の getFieldValue
パラメータ:
fieldName - フィールド名。
戻り値:
対応する値。そのフィールドが存在しない場合は null

getFields

public final String[] getFields()
インタフェース Descriptor の記述:
この記述子に含まれるすべてのフィールドを単一の文字列配列として返します。

定義:
インタフェース Descriptor 内の getFields
戻り値:
fieldName=fieldValue の形式のフィールドの文字列配列
フィールドの値が String でない場合、toString() メソッドが 呼び出され、戻り値が括弧で囲まれて 返される配列内のフィールドの値として使用される。フィールドの値が null の場合、返される配列内のフィールドの値は 空になる。記述子が空の場合、空の配列が 返される
関連項目:
Descriptor.setFields(java.lang.String[], java.lang.Object[])

getFieldValues

public final Object[] getFieldValues(String... fieldNames)
インタフェース Descriptor の記述:
記述子内のすべてのフィールドの値を Object の配列として返します。戻り値の順番は、fieldNames String 配列パラメータの場合と同じになります。

定義:
インタフェース Descriptor 内の getFieldValues
パラメータ:
fieldNames - 値が返されるフィールドの名前で構成される 文字列配列。配列が空の場合、 空の配列が返される。配列が null の場合、 パラメータが Descriptor.getFieldNames() により返された配列であるかのように、 すべての値が返される。配列内のフィールド名が存在しない場合 (フィールド名が null または空の文字列である場合を含む)、返される対応する配列要素に対して null が返される
戻り値:
フィールド値から成るオブジェクト配列。fieldNames のリストが 空の場合、空の配列が返される

getFieldNames

public final String[] getFieldNames()
インタフェース Descriptor の記述:
記述子内のすべてのフィールド名を返します。

定義:
インタフェース Descriptor 内の getFieldNames
戻り値:
フィールド名の文字列配列。記述子が空の場合、空の配列が 返される

equals

public boolean equals(Object o)
この記述子と指定されたオブジェクトを比較します。指定されたオブジェクトも Descriptor であり、2 つの記述子のフィールド名が同一で (大文字と小文字が異なる可能性がある)、関連付けられた値が同じである場合、オジェクトは等価です。次の条件を満たす場合、2 つの Descriptor 内のフィールドのそれぞれの値が等しくなります。

定義:
インタフェース Descriptor 内の equals
オーバーライド:
クラス Object 内の equals
パラメータ:
o - 比較対象のオブジェクト
戻り値:
オブジェクトが等しい場合は true、 そうでない場合は false
関連項目:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
 

この記述子のハッシュコード値を返します。ハッシュコードは、記述子内の各フィールドのハッシュコードの合計になります。名前が n で、値が v のフィールドのハッシュコードは、n.toLowerCase().hashCode() ^ h になります。ここで、hv のハッシュコードです。計算方法は次のとおりです。

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

toString

public String toString()
クラス Object の記述:
オブジェクトの文字列表現を返します。通常、toString メソッドはこのオブジェクトを「テキストで表現する」文字列を返します。この結果は、人間が読める簡潔で有益な情報であるべきです。すべてのサブクラスで、このメソッドをオーバーライドすることをお勧めします。

Object クラスの toString メソッドは、オブジェクトの派生元のクラス名、アットマーク (@)、およびオブジェクトのハッシュコードの符号なし 16 進表現から構成される文字列を返します。つまり、このメソッドは次の値と等しい文字列を返します。

 
 getClass().getName() + '@' + Integer.toHexString(hashCode())
 

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

isValid

public boolean isValid()
すべてのフィールドに名前が付与されていて値が有効な場合、true を返します。このメソッドは常に true を返しますが、必要な場合、サブクラスがこれをオーバーライドして false を返すことが可能です。

定義:
インタフェース Descriptor 内の isValid
戻り値:
値が有効な場合は true
例外:
RuntimeOperationsException - 妥当性検査に失敗した場合。記述子が無効の場合、このメソッドは false を返すが、 妥当性を判断しようとして失敗するとこの例外をスローする

clone

public Descriptor clone()
 

この記述子と等価な記述子を返します。返される記述子を変更してもこの記述子は影響を受けず、この記述子を変更しても返される記述子は影響を受けません。

 

このメソッドは、呼び出されるオブジェクトを返します。規約を満たす場合は、サブクラスでこれをオーバーライドして別のオブジェクトを返すことができます。

定義:
インタフェース Descriptor 内の clone
オーバーライド:
クラス Object 内の clone
戻り値:
このインスタンスの複製
例外:
RuntimeOperationsException - フィールド名またはフィールド値が不正である場合。なんらかの理由で記述子の作成に失敗した場合、この例外がスローされる
関連項目:
Cloneable

setFields

public final void setFields(String[] fieldNames,
                            Object[] fieldValues)
                     throws RuntimeOperationsException
このクラスは不変であるため、この操作はサポートされていません。この呼び出しにより同じ内容の可変記述子が変更される場合、UnsupportedOperationException をラップする RuntimeOperationsException がスローされます。それ以外の場合、可変記述子の場合と同じ動作になります。つまり、不正なパラメータのために例外がスローされるか、何も実行されないかのどちらかになります。

定義:
インタフェース Descriptor 内の setFields
パラメータ:
fieldNames - フィールド名の文字列配列。配列および配列要素は、 null にはできない
fieldValues - 対応するフィールド値から成るオブジェクト配列。配列は null 以外。配列要素は null の場合もある
例外:
RuntimeOperationsException - なんらかの理由で変更が失敗した場合。fieldNames または fieldValues が null の場合、 配列の長さが異なる場合、 または、それらのいずれかに不正な値が存在する場合に、 ラップされた例外は IllegalArgumentException になる。記述子が不変で、呼び出しによりその内容が変更される場合、ラップされた例外は UnsupportedOperationException になる。
関連項目:
Descriptor.getFields()

setField

public final void setField(String fieldName,
                           Object fieldValue)
                    throws RuntimeOperationsException
このクラスは不変であるため、この操作はサポートされていません。この呼び出しにより同じ内容の可変記述子が変更される場合、UnsupportedOperationException をラップする RuntimeOperationsException がスローされます。それ以外の場合、可変記述子の場合と同じ動作になります。つまり、不正なパラメータのために例外がスローされるか、何も実行されないかのどちらかになります。

定義:
インタフェース Descriptor 内の setField
パラメータ:
fieldName - 設定されるフィールド名。null や空文字列は使用できない
fieldValue - フィールド名として設定される 値。null がフィールドで有効な値であれば、null も使用できる
例外:
RuntimeOperationsException - フィールド名またはフィールド値が不正な場合 (ラップされた例外は IllegalArgumentException)、または記述子が不変な場合 (ラップされた例外は UnsupportedOperationException)。

removeField

public final void removeField(String fieldName)
記述子からフィールドを削除します。

定義:
インタフェース Descriptor 内の removeField
パラメータ:
fieldName - 削除されるフィールドの文字列名。フィールド名が不正であるか、フィールドが見つからない場合、 例外はスローされない
例外:
RuntimeOperationsException - 指定した名前のフィールドが存在し、 記述子が不変の場合。ラップされた例外は、 UnsupportedOperationException になる

JavaTM Platform
Standard Ed. 6

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

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