public class BasicAttribute extends Object implements Attribute
この実装はスキーマメソッド getAttributeDefinition() および getAttributeSyntaxDefinition() をサポートしません。これらのメソッドはただ OperationNotSupportedException をスローします。BasicAttribute のサブクラスがこれらのメソッドをサポートしている場合、BasicAttribute がこれらのメソッドをオーバーライドします。
BasicAttribute クラスは、デフォルトでは、Object.equals() を使用して同一性のテスト時や値の検索時の属性値の同一性を判定しますが、値が配列である場合は例外です。配列の場合、配列の各要素は Object.equals() を使用してチェックされます。スキーマのこうした用法が有効なメソッドをオーバーライドすることによって同様の同一性チェックを行う場合、BasicAttribute のサブクラスがスキーマ情報を利用できます。同様に、BasicAttribute クラスはデフォルトでは、コンストラクタに渡された値または追加削除メソッドを使って処理された値、あるいはその両方を返します。BasicAttribute のサブクラスは、get() および getAll() をオーバーライドしてディレクトリから直接値を取得できます (または BasicAttribute をサブクラス化する代わりに Attribute インタフェースを直接実装する)。
BasicAttribute の変更 (値の追加、削除など) は、該当するディレクトリの属性の表示には影響しません。ディレクトリへの更新は、DirContext インタフェース内の操作を使用してのみ有効にできます。
BasicAttribute インスタンスは、並行マルチスレッドアクセスに対しては同期化されません。BasicAttribute にアクセスおよび変更しようとする複数のスレッドによって、オブジェクトはロックされます。
修飾子と型 | フィールドと説明 |
---|---|
protected String |
attrID
属性の ID を保持します。
|
protected boolean |
ordered
この属性の値が順序付けされるかどうかを記録するフラグです。
|
protected Vector<Object> |
values
属性の値を保持します。
|
コンストラクタと説明 |
---|
BasicAttribute(String id)
順序付けされていない属性のインスタンスを値なしで新しく構築します。
|
BasicAttribute(String id, boolean ordered)
順序付けされる可能性のある属性のインスタンスを値なしで新しく構築します。
|
BasicAttribute(String id, Object value)
順序付けされていない属性のインスタンスを単一の値で新しく構築します。
|
BasicAttribute(String id, Object value, boolean ordered)
順序付けされる可能性のある属性のインスタンスを単一の値で新しく構築します。
|
修飾子と型 | メソッドと説明 |
---|---|
void |
add(int ix, Object attrVal)
属性値を属性値の順序付けられたリストに追加します。
|
boolean |
add(Object attrVal)
この属性に新しい値を追加します。
|
void |
clear()
この属性からすべての値を削除します。
|
Object |
clone()
このオブジェクトのコピーを作成して、返します。
|
boolean |
contains(Object attrVal)
値がこの属性にあるかどうかを判定します。
|
boolean |
equals(Object obj)
obj がこの属性と同一かどうかを判別します。
|
Object |
get()
この属性の値の 1 つを検出します。
|
Object |
get(int ix)
属性値の順序付けられたリストから属性値を取り出します。
|
NamingEnumeration<?> |
getAll()
この属性の値の列挙を取り出します。
|
DirContext |
getAttributeDefinition()
この属性のスキーマ定義を取り出します。
|
DirContext |
getAttributeSyntaxDefinition()
この属性に関連付けられている構文の定義を検索します。
|
String |
getID()
この属性の ID を取り出します。
|
int |
hashCode()
この属性のハッシュコードを計算します。
|
boolean |
isOrdered()
属性値が順序付けられているかどうかを判別します。
|
Object |
remove(int ix)
属性値の順序付けられたリストから属性値を削除します。
|
boolean |
remove(Object attrval)
指定された値をこの属性から削除します。
|
Object |
set(int ix, Object attrVal)
属性値の順序付けられたリストの属性値を設定します。
|
int |
size()
この属性の値数を取り出します。
|
String |
toString()
この属性の文字列表記を生成します。
|
protected String attrID
protected transient Vector<Object> values
protected boolean ordered
public BasicAttribute(String id)
id
- 属性の ID。null は不可。public BasicAttribute(String id, Object value)
id
- 属性の ID。null は不可。value
- 属性の値。null の場合、null 値が属性に追加される。public BasicAttribute(String id, boolean ordered)
id
- 属性の ID。null は不可。ordered
- true は、属性の値が順序付けされることを示す。それ以外の場合は false。public Object clone()
Object
x
について、次の式
が true であり、次の式x.clone() != x
がx.clone().getClass() == x.getClass()
true
になることですが、これらは絶対的な要件ではありません。また次の式
がx.clone().equals(x)
true
になりますが、これは絶対的な要件ではありません。
慣例上、返されたオブジェクトは、super.clone
を呼び出すことによって取得するようにしてください。クラスとそのすべてのスーパークラス (Object
を除く) がこの規則に従っている場合は、x.clone().getClass() == x.getClass()
が成立します。
通常、このメソッドにより返されるオブジェクトは、このオブジェクト (複製されている) から独立している必要があります。この独立性を実現するには、super.clone
によって返されたオブジェクトを返す前に、その 1 つ以上のフィールドを変更することが必要になる場合があります。これは、通常、複製するオブジェクトの内部「深層構造」を構成する可変オブジェクトのコピー、およびこれらのオブジェクトへの参照をコピーへの参照に置き換えることを意味します。クラスにプリミティブフィールドまたは不変オブジェクトへの参照しか含まれていない場合は、通常、super.clone
によって返されたオブジェクト内のフィールドを変更する必要がありません。
クラス Object
のメソッド clone
は、特定のクローニング操作を実行します。まず、このオブジェクトのクラスがインタフェース Cloneable
を実装していない場合は、CloneNotSupportedException
がスローされます。すべての配列がインタフェース Cloneable
を実装していると見なされること、および配列型 T[]
の clone
メソッドの戻り値の型は T[]
(ここで、T は任意の参照またはプリミティブ型) です。実装していない場合、このメソッドはこのオブジェクトのクラスの新しいインスタンスを生成し、そのフィールドをすべて、このオブジェクトの対応する各フィールドの内容で初期化します。これは代入と同様で、フィールドの内容自身が複製されるのではありません。つまりこのメソッドは、オブジェクトの「シャローコピー」を生成しますが、「ディープコピー」は生成しません。
クラス Object
自体はインタフェース Cloneable
を実装していないため、クラスが Object
であるオブジェクトに対して clone
メソッドを呼び出すと、実行時に例外がスローされます。
public boolean equals(Object obj)
デフォルトでは、値が配列である場合を除き、Object.equals() を使用して属性 ID および属性の値を比較します。配列の場合、配列の各要素は Object.equals() を使用してチェックされます。サブクラスはこれをオーバーライドして、スキーマ構文情報、および 2 つの属性にとって同一が何を意味するかを定義する一致規則を使用できます。サブクラスがスキーマ情報を使用するかどうか、またどのように使用するかは、サブクラスが決定します。サブクラスが equals() をオーバーライドした場合、サブクラスは hashCode() もオーバーライドして、等しい 2 つの属性が同じハッシュコードを持つようにします。
equals
、クラス: Object
obj
- チェックする null の可能性があるオブジェクト。hashCode()
, contains(java.lang.Object)
public int hashCode()
ハッシュコードは、属性の ID のハッシュコード、および値が配列である場合を除く属性の値すべてのハッシュコードを加算することによって計算されます。配列の場合は、配列の各要素のハッシュコードが合計されます。サブクラスが hashCode() をオーバーライドした場合、サブクラスは equals() も同じようにオーバーライドして、等しい 2 つの属性が同じハッシュコードを持つようにします。
hashCode
、クラス: Object
equals(java.lang.Object)
public String toString()
public NamingEnumeration<?> getAll() throws NamingException
デフォルトでは、戻り値は、コンストラクタに渡された値、または追加置換削除メソッドを使用して処理された値、あるいはその両方です。サブクラスはこの値をオーバーライドして、ディレクトリから直接値を検出できます。
getAll
、インタフェース: Attribute
NamingException
- 値の取得中にネーミング例外が検出された場合。Attribute.isOrdered()
public Object get() throws NamingException
デフォルトでは、戻り値は、コンストラクタに渡された値、または追加置換削除メソッドを使用して処理された値、あるいはその両方のうちの 1 つです。サブクラスはこの値をオーバーライドして、ディレクトリから直接値を検出できます。
get
、インタフェース: Attribute
NamingException
- 値の取得中にネーミング例外が検出された場合。public int size()
Attribute
public boolean contains(Object attrVal)
デフォルトでは、Object.equals() は、attrVal が配列の場合を除き、attrVal をこの属性の値と比較するときに使用されます。配列の場合、配列の各要素は Object.equals() を使用してチェックされます。サブクラスがスキーマ情報を使用して同一性を判定する場合があります。
contains
、インタフェース: Attribute
attrVal
- チェックする null の可能性がある値。null の場合、属性が null 値の属性値を持つかどうかを判定する。Object.equals(java.lang.Object)
, equals(java.lang.Object)
public boolean add(Object attrVal)
デフォルトでは、Object.equals() は、attrVal が配列の場合を除き、attrVal をこの属性の値と比較するときに使用されます。配列の場合、配列の各要素は Object.equals() を使用してチェックされます。サブクラスがスキーマ情報を使用して同一性を判定する場合があります。
public boolean remove(Object attrval)
デフォルトでは、Object.equals() は、attrVal が配列の場合を除き、attrVal をこの属性の値と比較するときに使用されます。配列の場合、配列の各要素は Object.equals() を使用してチェックされます。サブクラスがスキーマ情報を使用して同一性を判定する場合があります。
public void clear()
Attribute
public boolean isOrdered()
Attribute
isOrdered
、インタフェース: Attribute
Attribute.get(int)
, Attribute.remove(int)
, Attribute.add(int, java.lang.Object)
, Attribute.set(int, java.lang.Object)
public Object get(int ix) throws NamingException
Attribute
get
、インタフェース: Attribute
ix
- 属性値の順序付けられたリスト内の値のインデックス。0 <= ix < size()。NamingException
- 値の取得中にネーミング例外が検出された場合。public Object remove(int ix)
Attribute
public void add(int ix, Object attrVal)
Attribute
public Object set(int ix, Object attrVal)
Attribute
public DirContext getAttributeSyntaxDefinition() throws NamingException
このメソッドはデフォルトでは OperationNotSupportedException をスローします。サブクラスがスキーマをサポートする場合、サブクラスがこのメソッドをオーバーライドします。
getAttributeSyntaxDefinition
、インタフェース: Attribute
OperationNotSupportedException
- スキーマの取得がサポートされていない場合。NamingException
- スキーマの取得中にネーミング例外が発生した場合。public DirContext getAttributeDefinition() throws NamingException
このメソッドはデフォルトでは OperationNotSupportedException をスローします。サブクラスがスキーマをサポートする場合、サブクラスがこのメソッドをオーバーライドします。
getAttributeDefinition
、インタフェース: Attribute
OperationNotSupportedException
- スキーマの取得がサポートされていない場合。NamingException
- スキーマの取得中にネーミング例外が発生した場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.