- java.lang.Object
-
- javax.management.ImmutableDescriptor
-
- すべての実装されたインタフェース:
Serializable
,Cloneable
,Descriptor
public class ImmutableDescriptor extends Object implements Descriptor
不変記述子- 導入されたバージョン:
- 1.6
- 関連項目:
- 直列化された形式
-
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static ImmutableDescriptor
EMPTY_DESCRIPTOR
空の記述子
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 ImmutableDescriptor(String... fields)
指定されたフィールドを含む記述子を構築します。ImmutableDescriptor(String[] fieldNames, Object[] fieldValues)
指定されたフィールドおよび値を含む記述子を構築します。ImmutableDescriptor(Map<String,?> fields)
フィールドの名前と値が指定したMapのキーと値である記述子を構築します。
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 Descriptor
clone()
この記述子と等価な記述子を返します。boolean
equals(Object o)
この記述子と指定されたオブジェクトを比較します。String[]
getFieldNames()
記述子内のすべてのフィールド名を返します。String[]
getFields()
この記述子に含まれるすべてのフィールドを単一の文字列配列として返します。Object
getFieldValue(String fieldName)
特定のフィールド名の値を返します。その名前の値が存在しない場合はnullを返します。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
を返します。
-
-
-
フィールドの詳細
-
EMPTY_DESCRIPTOR
public static final ImmutableDescriptor EMPTY_DESCRIPTOR
空の記述子
-
-
コンストラクタの詳細
-
ImmutableDescriptor
public ImmutableDescriptor(String[] fieldNames, Object[] fieldValues)
指定されたフィールドおよび値を含む記述子を構築します。- パラメータ:
fieldNames
- フィールド名fieldValues
- フィールド値- 例外:
IllegalArgumentException
- いずれかの配列がnullの場合、配列のサイズが異なる場合、フィールド名がnullまたは空の場合、または同一のフィールド名が複数回出現する場合。
-
ImmutableDescriptor
public ImmutableDescriptor(String... fields)
指定されたフィールドを含む記述子を構築します。 各文字列はfieldName=fieldValue
の形式を取る必要があります。 フィールド名は、最初の=
文字までです。たとえば、Stringがa=b=c
の場合、フィールド名はa
で、値はb=c
です。- パラメータ:
fields
- フィールド名- 例外:
IllegalArgumentException
- パラメータがnullの場合、フィールド名が空の場合、同一のフィールド名が複数回出現する場合、または文字列のいずれかが=
文字を含んでいない場合。
-
ImmutableDescriptor
public ImmutableDescriptor(Map<String,?> fields)
フィールドの名前と値が指定したMapのキーと値である記述子を構築します。
- パラメータ:
fields
- フィールド名と値- 例外:
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を返します。- 定義:
getFieldValue
、インタフェース:Descriptor
- パラメータ:
fieldName
- フィールド名。- 戻り値:
- 対応する値。そのフィールドが存在しない場合はnull。
-
getFields
public final String[] getFields()
インタフェースからコピーされた説明:Descriptor
この記述子に含まれるすべてのフィールドを単一の文字列配列として返します。- 定義:
getFields
、インタフェース:Descriptor
- 戻り値:
- fieldName=fieldValueの形式のフィールドの文字列配列
フィールドの値がStringでない場合、toString()メソッドが呼び出され、戻り値が括弧で囲まれて返される配列内のフィールドの値として使用される。 フィールドの値がnullの場合、返される配列内のフィールドの値は空になる。 記述子が空の場合、空の配列が返される。 - 関連項目:
Descriptor.setFields(java.lang.String[], java.lang.Object[])
-
getFieldValues
public final Object[] getFieldValues(String... fieldNames)
インタフェースからコピーされた説明:Descriptor
記述子内のすべてのフィールドの値をObjectの配列として返します。 戻り値の順番は、fieldNames
String配列パラメータの場合と同じになります。- 定義:
getFieldValues
、インタフェース:Descriptor
- パラメータ:
fieldNames
- 値が返されるフィールドの名前で構成される文字列配列。 配列が空の場合、空の配列が返される。 配列がnullの場合、パラメータがDescriptor.getFieldNames()
により返された配列であるかのように、すべての値が返される。 配列内のフィールド名が存在しない場合(フィールド名がnullまたは空の文字列である場合を含む)、返される対応する配列要素に対してnullが返される。- 戻り値:
- フィールド値から成るオブジェクト配列。
fieldNames
のリストが空の場合、空の配列が返される。
-
getFieldNames
public final String[] getFieldNames()
インタフェースからコピーされた説明:Descriptor
記述子内のすべてのフィールド名を返します。- 定義:
getFieldNames
、インタフェース:Descriptor
- 戻り値:
- フィールド名の文字列配列。 記述子が空の場合、空の配列が返される。
-
equals
public boolean equals(Object o)
この記述子と指定されたオブジェクトを比較します。 指定されたオブジェクトもDescriptorであり、2つの記述子のフィールド名が同一で(大文字と小文字が異なる可能性がある)、関連付けられた値が同じである場合、オブジェクトは等価です。 次の条件を満たす場合、2つのDescriptor内のフィールドのそれぞれの値が等しくなります。- 一方の値がnullの場合、他方もnullでなければならない。
- 一方の値がプリミティブ配列の場合、他方は同じ要素を持つ同じ型のプリミティブ配列でなければならない。
- 一方の値がオブジェクト配列である場合、他方もオブジェクト配列でなければならず、
Arrays.deepEquals(Object[],Object[])
がtrueを返さなければならない。 - それ以外の場合、
Object.equals(Object)
がtrueを返さなければならない。
- 定義:
equals
、インタフェース:Descriptor
- オーバーライド:
equals
、クラス:Object
- パラメータ:
o
- 比較対象のオブジェクト。- 戻り値:
- オブジェクトが同じである場合は
true
、そうでない場合はfalse
。 - 関連項目:
Object.hashCode()
、HashMap
-
hashCode
public int hashCode()
この記述子のハッシュ・コード値を返します。 ハッシュ・コードは、記述子内の各フィールドのハッシュ・コードの合計になります。 名前が
n
で、値がv
のフィールドのハッシュ・コードは、n.toLowerCase().hashCode()^h
になります。 ここで、h
はv
のハッシュ・コードです。計算方法は次のとおりです。v
がnullの場合、h
は0になる。v
がプリミティブ配列の場合、java.util.Arrays.hashCode
の適切なオーバーロードを使用してh
が計算される。v
がオブジェクト配列の場合、Arrays.deepHashCode(Object[])
を使用してh
が計算される。- それ以外の場合、
h
はv.hashCode()
になる。
- 定義:
hashCode
、インタフェース:Descriptor
- オーバーライド:
hashCode
、クラス:Object
- 戻り値:
- このオブジェクトのハッシュ・コード値。
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
toString
public String toString()
クラスからコピーされた説明:Object
オブジェクトの文字列表現を返します。 一般に、toString
メソッドは、このオブジェクトを「テキストで表す」文字列を返します。 この結果は、人間が読める簡潔で有益な情報であるべきです。 すべてのサブクラスで、このメソッドをオーバーライドすることをお勧めします。クラス
Object
のtoString
メソッドは、オブジェクトがインスタンスになっている元のクラスの名前、アットマーク文字「@
」、およびオブジェクトのハッシュ・コードの符号なし16進数表現から構成される文字列を返します。 つまり、このメソッドは次の値と等しい文字列を返します。getClass().getName() + '@' + Integer.toHexString(hashCode())
-
isValid
public boolean isValid()
すべてのフィールドに名前が付与されていて値が有効な場合、trueを返します。 このメソッドは常にtrueを返しますが、必要な場合、サブクラスがこれをオーバーライドしてfalseを返すことが可能です。- 定義:
isValid
、インタフェース:Descriptor
- 戻り値:
- 値が有効な場合はtrue。
- 例外:
RuntimeOperationsException
- 妥当性検査に失敗した場合。 記述子が無効の場合、このメソッドはfalseを返すが、妥当性を判断しようとして失敗するとこの例外をスローする。
-
clone
public Descriptor clone()
この記述子と等価な記述子を返します。 返される記述子を変更してもこの記述子は影響を受けず、この記述子を変更しても返される記述子は影響を受けません。
このメソッドは、呼び出されるオブジェクトを返します。 規約を満たす場合は、サブクラスでこれをオーバーライドして別のオブジェクトを返すことができます。
- 定義:
clone
、インタフェース:Descriptor
- オーバーライド:
clone
、クラス:Object
- 戻り値:
- このインスタンスの複製。
- 例外:
RuntimeOperationsException
- フィールド名またはフィールド値の値が不正である場合。 何らかの理由で記述子の作成に失敗した場合、この例外がスローされる。- 関連項目:
Cloneable
-
setFields
public final void setFields(String[] fieldNames, Object[] fieldValues) throws RuntimeOperationsException
このクラスは不変であるため、この操作はサポートされていません。 この呼出しにより同じ内容の可変記述子が変更される場合、UnsupportedOperationException
をラップするRuntimeOperationsException
がスローされます。 それ以外の場合、可変記述子の場合と同じ動作になります。つまり、不正なパラメータのために例外がスローされるか、何も実行されないかのどちらかになります。- 定義:
setFields
、インタフェース:Descriptor
- パラメータ:
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
がスローされます。 それ以外の場合、可変記述子の場合と同じ動作になります。つまり、不正なパラメータのために例外がスローされるか、何も実行されないかのどちらかになります。- 定義:
setField
、インタフェース:Descriptor
- パラメータ:
fieldName
- 設定されるフィールド名。 nullや空文字列は使用できない。fieldValue
- フィールド名として設定される値。 nullがフィールドで有効な値であれば、nullも使用できる。- 例外:
RuntimeOperationsException
- フィールド名またはフィールド値が不正な場合(ラップされた例外はIllegalArgumentException
)、または記述子が不変な場合(ラップされた例外はUnsupportedOperationException
)。
-
removeField
public final void removeField(String fieldName)
記述子からフィールドを削除します。- 定義:
removeField
、インタフェース:Descriptor
- パラメータ:
fieldName
- 削除されるフィールドの文字列名。 フィールド名が不正であるか、フィールドが見つからない場合、例外はスローされない。- 例外:
RuntimeOperationsException
- 指定した名前のフィールドが存在し、記述子が不変の場合。 ラップされた例外は、UnsupportedOperationException
になる。
-
-