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()
Objectxについて、次の式 
 が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、クラスObjectobj - チェックするnullの可能性があるオブジェクト。hashCode(), contains(java.lang.Object)public int hashCode()
ハッシュ・コードは、属性のIDのハッシュ・コード、および値が配列である場合を除く属性の値すべてのハッシュ・コードを加算することによって計算されます。 配列の場合は、配列の各要素のハッシュ・コードが合計されます。 サブクラスがhashCode()をオーバーライドした場合、サブクラスはequals()も同じようにオーバーライドして、等しい2つの属性が同じハッシュ・コードを持つようにします。
hashCode、クラスObjectequals(java.lang.Object)public String toString()
public NamingEnumeration<?> getAll() throws NamingException
デフォルトでは、戻り値は、コンストラクタに渡された値、または追加置換削除メソッドを使用して処理された値、あるいはその両方です。 サブクラスはこの値をオーバーライドして、ディレクトリから直接値を検出できます。
getAll、インタフェースAttributeNamingException - 値の取得中にネーミング例外が検出された場合。Attribute.isOrdered()public Object get() throws NamingException
デフォルトでは、戻り値は、コンストラクタに渡された値、または追加置換削除メソッドを使用して処理された値、あるいはその両方のうちの1つです。 サブクラスはこの値をオーバーライドして、ディレクトリから直接値を検出できます。
get、インタフェースAttributeNamingException - 値の取得中にネーミング例外が検出された場合。public int size()
Attributepublic boolean contains(Object attrVal)
デフォルトでは、Object.equals()は、attrValが配列の場合を除き、attrValをこの属性の値と比較するときに使用されます。 配列の場合、配列の各要素はObject.equals()を使用してチェックされます。 サブクラスがスキーマ情報を使用して同一性を判定する場合があります。
contains、インタフェースAttributeattrVal - チェックする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()
Attributepublic boolean isOrdered()
AttributeisOrdered、インタフェースAttributeAttribute.get(int), Attribute.remove(int), Attribute.add(int, java.lang.Object), Attribute.set(int, java.lang.Object)public Object get(int ix) throws NamingException
Attributeget、インタフェースAttributeix - 属性値の順序付けられたリスト内の値のインデックス。0 <= ix < size()。NamingException - 値の取得中にネーミング例外が検出された場合。public Object remove(int ix)
Attributepublic void add(int ix,
                Object attrVal)
Attributepublic Object set(int ix, Object attrVal)
Attributepublic DirContext getAttributeSyntaxDefinition() throws NamingException
このメソッドはデフォルトではOperationNotSupportedExceptionをスローします。 サブクラスがスキーマをサポートする場合、サブクラスがこのメソッドをオーバーライドします。
getAttributeSyntaxDefinition、インタフェースAttributeOperationNotSupportedException - スキーマの取得がサポートされていない場合。NamingException - スキーマの取得中にネーミング例外が発生した場合。public DirContext getAttributeDefinition() throws NamingException
このメソッドはデフォルトではOperationNotSupportedExceptionをスローします。 サブクラスがスキーマをサポートする場合、サブクラスがこのメソッドをオーバーライドします。
getAttributeDefinition、インタフェースAttributeOperationNotSupportedException - スキーマの取得がサポートされていない場合。NamingException - スキーマの取得中にネーミング例外が発生した場合。 バグまたは機能を送信 
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。 
 Copyright © 1993, 2025, Oracle and/or its affiliates.  All rights reserved.  Use is subject to license terms.  Documentation Redistribution Policyも参照してください。