public class ImmutableDescriptor extends Object implements Descriptor
修飾子と型 | フィールドと説明 |
---|---|
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)
特定のフィールド名の値を返します。その名前の値が存在しない場合は 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 を返します。 |
public static final ImmutableDescriptor EMPTY_DESCRIPTOR
public ImmutableDescriptor(String[] fieldNames, Object[] fieldValues)
IllegalArgumentException
- いずれかの配列が null の場合、配列のサイズが異なる場合、フィールド名が null または空の場合、または同一のフィールド名が複数回出現する場合。public ImmutableDescriptor(String... fields)
fieldName=fieldValue
の形式を取る必要があります。フィールド名は、最初の =
文字までです。たとえば、String が a=b=c
の場合、フィールド名は a
で、値は b=c
です。IllegalArgumentException
- パラメータが null の場合、フィールド名が空の場合、同一のフィールド名が複数回出現する場合、または文字列のいずれかが =
文字を含んでいない場合。public ImmutableDescriptor(Map<String,?> fields)
フィールドの名前と値が指定した Map のキーと値である記述子を構築します。
IllegalArgumentException
- パラメータが null の場合、フィールド名が null または空の場合、または同一のフィールド名が複数回出現する場合 (フィールド名の大文字と小文字が区別されないために発生することがある)。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 を返す場合に、同一と見なされる。public final Object getFieldValue(String fieldName)
Descriptor
getFieldValue
、インタフェース: Descriptor
fieldName
- フィールド名。public final String[] getFields()
Descriptor
getFields
、インタフェース: Descriptor
Descriptor.setFields(java.lang.String[], java.lang.Object[])
public final Object[] getFieldValues(String... fieldNames)
Descriptor
fieldNames
String 配列パラメータの場合と同じになります。getFieldValues
、インタフェース: Descriptor
fieldNames
- 値が返されるフィールドの名前で構成される文字列配列。配列が空の場合、空の配列が返される。配列が null の場合、パラメータが Descriptor.getFieldNames()
により返された配列であるかのように、すべての値が返される。配列内のフィールド名が存在しない場合 (フィールド名が null または空の文字列である場合を含む)、返される対応する配列要素に対して null が返される。fieldNames
のリストが空の場合、空の配列が返される。public final String[] getFieldNames()
Descriptor
getFieldNames
、インタフェース: Descriptor
public boolean equals(Object o)
Arrays.deepEquals(Object[],Object[])
が true を返さなければならない。Object.equals(Object)
が true を返さなければならない。equals
、インタフェース: Descriptor
equals
、クラス: Object
o
- 比較対象のオブジェクト。true
、そうでない場合は false
。Object.hashCode()
、HashMap
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)
public String toString()
Object
toString
メソッドは、このオブジェクトを「テキストで表す」文字列を返します。この結果は、人間が読める簡潔で有益な情報であるべきです。すべてのサブクラスで、このメソッドをオーバーライドすることをお勧めします。
クラス Object
の toString
メソッドは、オブジェクトがインスタンスになっている元のクラスの名前、アットマーク文字「@
」、およびオブジェクトのハッシュコードの符号なし 16 進数表現から構成される文字列を返します。つまり、このメソッドは次の値と等しい文字列を返します。
getClass().getName() + '@' + Integer.toHexString(hashCode())
public boolean isValid()
isValid
、インタフェース: Descriptor
RuntimeOperationsException
- 妥当性検査に失敗した場合。記述子が無効の場合、このメソッドは false を返すが、妥当性を判断しようとして失敗するとこの例外をスローする。public Descriptor clone()
この記述子と等価な記述子を返します。返される記述子を変更してもこの記述子は影響を受けず、この記述子を変更しても返される記述子は影響を受けません。
このメソッドは、呼び出されるオブジェクトを返します。規約を満たす場合は、サブクラスでこれをオーバーライドして別のオブジェクトを返すことができます。
clone
、インタフェース: Descriptor
clone
、クラス: Object
RuntimeOperationsException
- フィールド名またはフィールド値の値が不正である場合。何らかの理由で記述子の作成に失敗した場合、この例外がスローされる。Cloneable
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()
public final void setField(String fieldName, Object fieldValue) throws RuntimeOperationsException
UnsupportedOperationException
をラップする RuntimeOperationsException
がスローされます。それ以外の場合、可変記述子の場合と同じ動作になります。つまり、不正なパラメータのために例外がスローされるか、何も実行されないかのどちらかになります。setField
、インタフェース: Descriptor
fieldName
- 設定されるフィールド名。null や空文字列は使用できない。fieldValue
- フィールド名として設定される値。null がフィールドで有効な値であれば、null も使用できる。RuntimeOperationsException
- フィールド名またはフィールド値が不正な場合 (ラップされた例外は IllegalArgumentException
)、または記述子が不変な場合 (ラップされた例外は UnsupportedOperationException
)。public final void removeField(String fieldName)
removeField
、インタフェース: Descriptor
fieldName
- 削除されるフィールドの文字列名。フィールド名が不正であるか、フィールドが見つからない場合、例外はスローされない。RuntimeOperationsException
- 指定した名前のフィールドが存在し、記述子が不変の場合。ラップされた例外は、UnsupportedOperationException
になる。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.