|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface DirContext
ディレクトリサービスインタフェースで、オブジェクトに関連付けられた属性のチェックおよび変更のメソッド、およびディレクトリ検索のメソッドを含みます。
ほとんどのメソッドには、1 つは Name
パラメータを取り、もう 1 つは String
パラメータを取る、オーバーロードされたバージョンがあります。Name
パラメータと String
パラメータが単に同じ名前の異なる表記である場合に同じメソッドのオーバーロードされたバージョンが同じように動作する、という点でこれらのオーバーロードされたバージョンは同等です。以下のメソッドの説明では、1 つのバージョンだけがドキュメント化されています。2 番目のバージョンには、その代わりに最初のバージョンへのリンクがあり、同じドキュメントが両方に適用されます。
Context メソッドに対する名前引数の解釈に関する説明は、Context を参照してください。これと同じ規則が、DirContext メソッドに対する名前引数にも適用されます。
第 2 のモデルは、属性を DirContext の名前 (通常は原始名) と関連付けます。このモデルでは、指定されたオブジェクトの属性操作は、指定されたオブジェクトの親 DirContext の名前のルックアップと大体同等です。続いて親で呼び出された属性操作で、呼び出し側が端末原始名を提供します。属性は親 DirContext に格納されているので、表示できます (実装時に格納されている必要はありません)。DirContext でないオブジェクトは、親が DirContext であれば属性を持つことができます。
JNDI はこれら両方のモデルをサポートします。属性をどこに「格納」するかの決定は、個々のサービスプロバイダによって異なります。JNDI クライアントは、オブジェクトの属性がオブジェクトの一部として格納されるのか、あるいは親オブジェクト内に格納されてオブジェクトの名前と関連付けられるのかについて前提条件を作らない場合に、もっともセキュリティが高くなります。
属性のサブクラス化では、属性はクラス階層で定義されます。ディレクトリによっては、たとえば「名前」属性が「commonName」と「surName」を含むすべての名前に間連する属性のスーパークラスである可能性があります。「名前」属性を要求すると、「commonName」と「surName」の両方が返ってくる可能性があります。
属性型のシノニムを使用して、ディレクトリは複数の名前を同じ属性に割りあてることができます。たとえば、「cn」と「commonName」がともに同じ属性をさす可能性があります。「cn」を要求すると「commonName」属性が返ってくる可能性があります。
ディレクトリによっては、属性の言語コードをサポートしているものもあります。このようなディレクトリにたとえば「説明」属性を要求すると、以下の属性がすべて返ってくる可能性があります。
ディレクトリによっては、管理目的のディレクトリオブジェクトと間連付けられた属性である「操作属性」の概念を持つものもあります。操作属性の 1 例は、オブジェクトのアクセス制御リストです。
getAttributes() および search() メソッドで、返す属性のリストとして null を提供することによって、要求したオブジェクトに関連付けられた属性をすべて返すよう指定できます。返される属性には操作属性は含まれません。操作属性を検索するためには、操作属性に明示的に名前を付ける必要があります。
ある種のメソッドでは、名前がコンテキストを解釈処理している必要があります (たとえば、単一レベルのコンテキストを検索する場合)。このようなメソッドのドキュメントでは、「名前付きコンテキスト」で名前パラメータを説明します。これらのメソッドに対しては、指定されたオブジェクトが DirContext でない場合、NotContextException
がスローされます。これらのメソッド以外は、「指定されたオブジェクト」が DirContext である必要はありません。
Attributes、SearchControls、またはパラメータとしてメソッドに引き渡される配列オブジェクトは、サービスプロバイダでは変更されません。サービスプロバイダは、メソッドの結果の列挙、および生成された参照の処理を含む操作中、これらオブジェクトへの参照を保持します。呼び出し側は、この間にオブジェクトを変更しないでください。メソッドによって返される Attributes オブジェクトは、呼び出し側が所有します。あとで呼び出し側が Name を変更することもありますが、サービスプロバイダは変更しません。
このインタフェースのすべてのメソッドは、NamingException またはそのサブクラスのどれでもスローできます。各例外の詳細は、NamingException およびそのサブクラスを参照してください。
Context
フィールドの概要 | |
---|---|
static int |
ADD_ATTRIBUTE
この定数は、指定された値で属性を追加することを指定します。 |
static int |
REMOVE_ATTRIBUTE
この定数は、指定された属性値を属性から削除することを指定します。 |
static int |
REPLACE_ATTRIBUTE
この定数は、指定された値で属性を置換することを指定します。 |
インタフェース javax.naming.Context から継承されたフィールド |
---|
APPLET, AUTHORITATIVE, BATCHSIZE, DNS_URL, INITIAL_CONTEXT_FACTORY, LANGUAGE, OBJECT_FACTORIES, PROVIDER_URL, REFERRAL, SECURITY_AUTHENTICATION, SECURITY_CREDENTIALS, SECURITY_PRINCIPAL, SECURITY_PROTOCOL, STATE_FACTORIES, URL_PKG_PREFIXES |
メソッドの概要 | |
---|---|
void |
bind(Name name,
Object obj,
Attributes attrs)
関連付けられた属性とともに、名前をオブジェクトにバインドします。 |
void |
bind(String name,
Object obj,
Attributes attrs)
関連付けられた属性とともに、名前をオブジェクトにバインドします。 |
DirContext |
createSubcontext(Name name,
Attributes attrs)
関連付けられた属性とともに、新しいコンテキストを作成してバインドします。 |
DirContext |
createSubcontext(String name,
Attributes attrs)
関連付けられた属性とともに、名前をオブジェクトにバインドします。 |
Attributes |
getAttributes(Name name)
指定されたオブジェクトに関連付けられた属性をすべて取得します。 |
Attributes |
getAttributes(Name name,
String[] attrIds)
指定されたオブジェクトに関連付けられた属性で選択されたものを取得します。 |
Attributes |
getAttributes(String name)
名前付きオブジェクトに関連付けられた属性をすべて取得します。 |
Attributes |
getAttributes(String name,
String[] attrIds)
名前付きオブジェクトに関連付けられた属性で選択されたものを取得します。 |
DirContext |
getSchema(Name name)
指定されたオブジェクトに関連付けられたスキーマを取得します。 |
DirContext |
getSchema(String name)
名前付きオブジェクトに関連したスキーマを取得します。 |
DirContext |
getSchemaClassDefinition(Name name)
指定されたオブジェクトのクラス定義のスキーマオブジェクトを含むコンテキストを取得します。 |
DirContext |
getSchemaClassDefinition(String name)
名前付きオブジェクトのクラス定義のスキーマオブジェクトを含むコンテキストを取得します。 |
void |
modifyAttributes(Name name,
int mod_op,
Attributes attrs)
指定されたオブジェクトに関連付けられた属性を変更します。 |
void |
modifyAttributes(Name name,
ModificationItem[] mods)
変更順指定リストを使用して、指定されたオブジェクトに関連付けられた属性を変更します。 |
void |
modifyAttributes(String name,
int mod_op,
Attributes attrs)
名前付きオブジェクトに関連付けられた属性を変更します。 |
void |
modifyAttributes(String name,
ModificationItem[] mods)
順序付けされた変更リストを使用して、指定されたオブジェクトに関連付けられた属性を変更します。 |
void |
rebind(Name name,
Object obj,
Attributes attrs)
関連付けられた属性とともに名前をオブジェクトにバインドし、既存のバインディングをオーバーライドします。 |
void |
rebind(String name,
Object obj,
Attributes attrs)
関連付けられた属性とともに名前をオブジェクトにバインドし、既存のバインディングをオーバーライドします。 |
NamingEnumeration<SearchResult> |
search(Name name,
Attributes matchingAttributes)
指定された属性のセットを含むオブジェクトを単一コンテキストで検索します。 |
NamingEnumeration<SearchResult> |
search(Name name,
Attributes matchingAttributes,
String[] attributesToReturn)
指定された属性のセットを含むオブジェクトを単一コンテキストで検索し、選択した属性を取得します。 |
NamingEnumeration<SearchResult> |
search(Name name,
String filterExpr,
Object[] filterArgs,
SearchControls cons)
名前付きコンテキストまたは指定されたオブジェクトで、指定された検索フィルタを満たすエントリを検索します。 |
NamingEnumeration<SearchResult> |
search(Name name,
String filter,
SearchControls cons)
名前付きコンテキストまたは指定されたオブジェクトで、指定された検索フィルタを満たすエントリを検索します。 |
NamingEnumeration<SearchResult> |
search(String name,
Attributes matchingAttributes)
指定された属性のセットを含むオブジェクトを単一コンテキストで検索します。 |
NamingEnumeration<SearchResult> |
search(String name,
Attributes matchingAttributes,
String[] attributesToReturn)
指定された属性のセットを含むオブジェクトを単一コンテキストで検索し、選択した属性を取得します。 |
NamingEnumeration<SearchResult> |
search(String name,
String filterExpr,
Object[] filterArgs,
SearchControls cons)
名前付きコンテキストまたは名前付きオブジェクトで、指定された検索フィルタを満たすエントリを検索します。 |
NamingEnumeration<SearchResult> |
search(String name,
String filter,
SearchControls cons)
名前付きコンテキストまたは名前付きオブジェクトで、指定された検索フィルタを満たすエントリを検索します。 |
インタフェース javax.naming.Context から継承されたメソッド |
---|
addToEnvironment, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, getEnvironment, getNameInNamespace, getNameParser, getNameParser, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind |
フィールドの詳細 |
---|
static final int ADD_ATTRIBUTE
属性が存在しない場合、属性を作成します。できあがった属性は、指定された値のセットと以前の値のセットの和集合を持ちます。属性が少なくとも 1 つの値を必要とする場合に値なしで属性を追加すると、InvalidAttributeValueException
がスローされます。その属性がすでに存在する単一値属性に対しては、AttributeInUseException
がスローされます。単一値属性に複数の値を追加しようとすると、InvalidAttributeValueException
がスローされます。
この定数の値は 1 です。
ModificationItem
,
modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes)
,
定数フィールド値static final int REPLACE_ATTRIBUTE
属性がすでに存在する場合、既存のすべての値を新しく指定された値に置き換えます。属性が存在しない場合は、属性を作成します。値が指定されていない場合、属性の値をすべて削除します。属性が少なくとも 1 つの値を必要とする場合、最後の値を削除すると属性が削除されます。単一値属性に複数の値を追加しようとすると、InvalidAttributeValueException
がスローされます。
この定数の値は 2 です。
ModificationItem
,
modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes)
,
定数フィールド値static final int REMOVE_ATTRIBUTE
これによって、属性には、以前の値セットと指定された値セットとの間にセットの相違ができます。値が指定されていない場合、属性全体を削除します。属性が存在しない場合、または指定された値セットの一部または全部が存在しない場合は、存在しないことが無視されて操作が完了するか、あるいは存在しないことを示す NamingException がスローされます。属性が少なくとも 1 つの値を必要とする場合、最後の値を削除すると属性が削除されます。
この定数の値は 3 です。
ModificationItem
,
modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes)
,
定数フィールド値メソッドの詳細 |
---|
Attributes getAttributes(Name name) throws NamingException
name
- 属性の取得元のオブジェクトの名前
name
に関連付けられた属性のセット。名前に属性がない場合、空の属性セットを返し、null になることはない
NamingException
- ネーミング例外が発生した場合getAttributes(String)
,
getAttributes(Name, String[])
Attributes getAttributes(String name) throws NamingException
getAttributes(Name)
を参照してください。
name
- 属性の取得元のオブジェクトの名前
name
に関連付けられた属性のセット
NamingException
- ネーミング例外が発生した場合Attributes getAttributes(Name name, String[] attrIds) throws NamingException
指定された属性をオブジェクトが持っていない場合、ディレクトリは存在しない属性を無視し、オブジェクトが持っている要求された属性を返します。
ディレクトリは要求された以上の数の属性を返すことがあります (クラスの説明の「属性型名」参照) が、無関係な任意の属性を返すことはありません。
クラスの説明の「操作属性」 も参照してください。
name
- 属性の取得元のオブジェクトの名前attrIds
- 取得する属性の識別子。null はすべての属性が取得されることを示す。空の配列は何も取得されないことを示す
NamingException
- ネーミング例外が発生した場合Attributes getAttributes(String name, String[] attrIds) throws NamingException
getAttributes(Name, String[])
を参照してください。
name
- 属性の取得元のオブジェクトの名前attrIds
- 取得する属性の識別子。null はすべての属性が取得されることを示す。空の配列は何も取得されないことを示す
NamingException
- ネーミング例外が発生した場合void modifyAttributes(Name name, int mod_op, Attributes attrs) throws NamingException
name
- 属性が変更されるオブジェクトの名前mod_op
- 変更操作、ADD_ATTRIBUTE
、REPLACE_ATTRIBUTE
、REMOVE_ATTRIBUTE
のいずれかattrs
- 変更に使用される属性。null は不可
AttributeModificationException
- 変更を完了できない場合
NamingException
- ネーミング例外が発生した場合modifyAttributes(Name, ModificationItem[])
void modifyAttributes(String name, int mod_op, Attributes attrs) throws NamingException
modifyAttributes(Name, int, Attributes)
を参照してください。
name
- 属性が変更されるオブジェクトの名前mod_op
- 変更操作、ADD_ATTRIBUTE
、REPLACE_ATTRIBUTE
、REMOVE_ATTRIBUTE
のいずれかattrs
- 変更に使用される属性。null は不可
AttributeModificationException
- 変更を完了できない場合
NamingException
- ネーミング例外が発生した場合void modifyAttributes(Name name, ModificationItem[] mods) throws NamingException
name
- 属性が変更されるオブジェクトの名前mods
- 実行される変更の順序。null は不可
AttributeModificationException
- 変更を完了できない場合
NamingException
- ネーミング例外が発生した場合modifyAttributes(Name, int, Attributes)
,
ModificationItem
void modifyAttributes(String name, ModificationItem[] mods) throws NamingException
modifyAttributes(Name, ModificationItem[])
を参照してください。
name
- 属性が変更されるオブジェクトの名前mods
- 実行される変更の順序。null は不可
AttributeModificationException
- 変更を完了できない場合
NamingException
- ネーミング例外が発生した場合void bind(Name name, Object obj, Attributes attrs) throws NamingException
name
- 空ではないバインドされる名前obj
- null の可能性があるバインドされるオブジェクトattrs
- バインディングに関連付けるオブジェクト
NameAlreadyBoundException
- 名前がすでにバインドされている場合
InvalidAttributesException
- バインディングに「必須」の属性が提供されていない場合
NamingException
- ネーミング例外が発生した場合Context.bind(Name, Object)
,
rebind(Name, Object, Attributes)
void bind(String name, Object obj, Attributes attrs) throws NamingException
bind(Name, Object, Attributes)
を参照してください。
name
- 空ではないバインドされる名前obj
- null の可能性があるバインドされるオブジェクトattrs
- バインディングに関連付けるオブジェクト
NameAlreadyBoundException
- 名前がすでにバインドされている場合
InvalidAttributesException
- バインディングに「必須」の属性が提供されていない場合
NamingException
- ネーミング例外が発生した場合void rebind(Name name, Object obj, Attributes attrs) throws NamingException
name
- 空ではないバインドされる名前obj
- null の可能性があるバインドされるオブジェクトattrs
- バインディングに関連付けるオブジェクト
InvalidAttributesException
- バインディングに「必須」の属性が提供されていない場合
NamingException
- ネーミング例外が発生した場合Context.bind(Name, Object)
,
bind(Name, Object, Attributes)
void rebind(String name, Object obj, Attributes attrs) throws NamingException
rebind(Name, Object, Attributes)
を参照してください。
name
- 空ではないバインドされる名前obj
- null の可能性があるバインドされるオブジェクトattrs
- バインディングに関連付けるオブジェクト
InvalidAttributesException
- バインディングに「必須」の属性が提供されていない場合
NamingException
- ネーミング例外が発生した場合DirContext createSubcontext(Name name, Attributes attrs) throws NamingException
name
- 空ではない作成されるコンテキストの名前attrs
- 新しく作成されたコンテキストに関連付けるオブジェクト
NameAlreadyBoundException
- 名前がすでにバインドされている場合
InvalidAttributesException
- 作成に必要な必須属性 attrs
が一部しか含まれていない場合
NamingException
- ネーミング例外が発生した場合Context.createSubcontext(Name)
DirContext createSubcontext(String name, Attributes attrs) throws NamingException
createSubcontext(Name, Attributes)
を参照してください。
name
- 空ではない作成されるコンテキストの名前attrs
- 新しく作成されたコンテキストに関連付けるオブジェクト
NameAlreadyBoundException
- 名前がすでにバインドされている場合
InvalidAttributesException
- 作成に必要な必須属性 attrs
が一部しか含まれていない場合
NamingException
- ネーミング例外が発生した場合DirContext getSchema(Name name) throws NamingException
このメソッドは、指定されたオブジェクトに適用できるスキーマ情報ツリーのルートを返します。指定されたオブジェクト (またはディレクトリ全体) のいくつかが、同じスキーマを共有する場合があります。
スキーマツリーの構造と内容、スキーマツリーの内容の変更許可、こうした変更のディレクトリへの影響などの問題は、基本となるディレクトリによって異なります。
name
- スキーマの取得元オブジェクトの名前
OperationNotSupportedException
- スキーマがサポートされていない場合
NamingException
- ネーミング例外が発生した場合DirContext getSchema(String name) throws NamingException
getSchema(Name)
を参照してください。
name
- スキーマの取得元オブジェクトの名前
OperationNotSupportedException
- スキーマがサポートされていない場合
NamingException
- ネーミング例外が発生した場合DirContext getSchemaClassDefinition(Name name) throws NamingException
ディレクトリスキーマの情報カテゴリの 1 つに「クラス定義」があります。「オブジェクトクラス」の定義は、オブジェクトの「型」、およびそのオブジェクトが持つ必要のある属性と持てる属性 (必須と任意) を指定します。ここで言う「オブジェクトクラス」は、Java 的な意味ではなく、ディレクトリ的な意味で使われています。たとえば、指定されたオブジェクトが「Person」クラスのディレクトリオブジェクトである場合、getSchemaClassDefinition() は、「Person」の (ディレクトリの) オブジェクトクラス定義を表す DirContext を返します。
オブジェクトクラス定義から取得できる情報は、ディレクトリ依存です。
JNDI 1.2 より前は、このメソッドは指定されたオブジェクトのクラス定義を表す単一のスキーマオブジェクトを返していました。JNDI 1.2 からは、このメソッドは指定されたオブジェクトのクラス定義をすべて含む DirContext を返します。
name
- オブジェクトクラス定義の取得元オブジェクトの名前
OperationNotSupportedException
- スキーマがサポートされていない場合
NamingException
- ネーミング例外が発生した場合DirContext getSchemaClassDefinition(String name) throws NamingException
getSchemaClassDefinition(Name)
を参照してください。
name
- オブジェクトクラス定義の取得元オブジェクトの名前
OperationNotSupportedException
- スキーマがサポートされていない場合
NamingException
- ネーミング例外が発生した場合NamingEnumeration<SearchResult> search(Name name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException
SearchControls
設定を使用して行われます。
オブジェクトを選択するためには、matchingAttributes
の各属性がオブジェクトの属性のいずれかと一致する必要があります。matchingAttributes
が空または null の場合、ターゲットコンテキストのすべてのオブジェクトが返されます。
matchingAttributes
の属性 A1 とオブジェクトの属性 A2 とが同じ識別子を持っており、A1 の各値が A2 の値のいずれかに等しい場合、A1 は A2 に一致するとみなされます。これは、値の順序は重要でなく、また A2 が A1 にない「余分な」値を含んでいても比較には影響がないことを意味します。さらに、A1 が値を持っていない場合、一致のテストは、同じ識別子を持つ属性 A2 が存在するかどうかを調べるのと同じ意になります。
属性値を比較するのに使用される「同等」の詳細な定義は、基本となるディレクトリサービスによって定義されます。定義には、たとえば Object.equals
メソッドを使用する場合もあれば、スキーマを使用して別の同等操作を指定する場合もあります。同等以外の操作に基づくマッチング (部分文字列の比較など) には、フィルタ引数を取る search
メソッドのバージョンを使用します。
この DirContext に変更が行われた場合、変更前のこのメソッドに対する呼び出しによって返された列挙の結果は、定義されていません。
指定された属性をオブジェクトが持っていない場合、ディレクトリは存在しない属性を無視し、オブジェクトが持っている要求された属性を返します。
ディレクトリは要求された以上の数の属性を返すことがあります (クラスの説明の「属性型名」参照) が、無関係な任意の属性を返すことはありません。
クラスの説明の「操作属性」 も参照してください。
name
- 検索するコンテキストの名前matchingAttributes
- 検索する属性。空または null の場合、ターゲットコンテキストのすべてのオブジェクトが返されるattributesToReturn
- 返す属性。null はすべての属性が返されることを示す。空の配列は何も返されないことを示す
attributesToReturn
によって識別された属性、および name
によって名付けられたコンテキストに関連して名付けられた該当オブジェクトの名前を含む
NamingException
- ネーミング例外が発生した場合SearchControls
,
SearchResult
,
search(Name, String, Object[], SearchControls)
NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes, String[] attributesToReturn) throws NamingException
search(Name, Attributes, String[])
を参照してください。
name
- 検索するコンテキストの名前matchingAttributes
- 検索する属性attributesToReturn
- 返す属性
NamingException
- ネーミング例外が発生した場合NamingEnumeration<SearchResult> search(Name name, Attributes matchingAttributes) throws NamingException
search(Name, Attributes, String[])
に null を提供するのと同等です。search(Name, Attributes, String[])
を参照してください。
name
- 検索するコンテキストの名前matchingAttributes
- 検索する属性
NamingException
- ネーミング例外が発生した場合search(Name, Attributes, String[])
NamingEnumeration<SearchResult> search(String name, Attributes matchingAttributes) throws NamingException
search(Name, Attributes)
を参照してください。
name
- 検索するコンテキストの名前matchingAttributes
- 検索する属性
NamingException
- ネーミング例外が発生した場合NamingEnumeration<SearchResult> search(Name name, String filter, SearchControls cons) throws NamingException
filter
の形式と解釈は、RFC 2254 に準拠しています。attr
および value
についての解釈は RFC に次のように定義されています。
attr
は属性の識別子です。
value
は属性の値の文字列表現です。属性値へのこの文字列表現の平行移動は、ディレクトリに固有です。
たとえば「someCount=127」という代入式の場合、attr
は「someCount」で、value
は「127」です。属性 ID (「someCount」)、および場合によってはそのスキーマに基づいて、プロバイダは属性の値が整数型であることを判別します。プロバイダは続いて文字列「127」を適切に構文解析します。
フィルタ文字列の ASCII 以外の文字は、該当する Java (Unicode) 文字で表し、UTF-8 オクテットへの符号化はしません。あるいは、RFC 2254 で述べられている「バックスラッシュ - 16 進数字」表記法も使用できます。
ディレクトリがその属性のいくつかまたは全部の文字列表現をサポートしていない場合、代わりにフィルタ引数を Objects の形で受け入れる search
の形式を使用できます。このようなディレクトリのサービスプロバイダは、フィルタ引数をフィルタ評価のそのサービス特定の表現に平行移動します。search(Name, String, Object[], SearchControls)
を参照してください。
RFC 2254 は、部分文字列一致、等価、近似一致、より大、より小を含む所定の演算子を定義します。これらの演算子は、対応するセマンティクスとともに基本となるディレクトリにある演算子にマップされます。たとえば、同等演算子の場合、ディレクトリはフィルタの属性の「同等」を定義する一致規則を持っているとします。この規則を使用して、フィルタで指定された属性と、ディレクトリのオブジェクトの属性とが同等かどうかを調べます。同様に、ディレクトリが順序付けの規則を持っていれば、この規則を使用して「より大」および「より小」の比較をします。
RFC 2254 で定義されている演算子のすべてをすべての属性に適用できるわけではありません。演算子を適用できない場合、例外 InvalidSearchFilterException
がスローされます。
SearchResult の列挙の形で結果が返されます。各 SearchResult は、オブジェクトの名前やその他オブジェクトに関する情報を含んでいます (SearchResult 参照)。名前は、検索のターゲットコンテキストに関連している (name
パラメータによって名付けられる) か、URL 文字列であるかのどちらかです。cons
が SearchControls.OBJECT_SCOPE
または SearchControls.SUBSTREE_SCOPE
の検索範囲を指定する場合に考えられるように、ターゲットコンテキストが列挙に含まれる場合、その名前は空の文字列です。一致オブジェクトの属性を返すように cons 引数が指定した場合、SearchResult はその属性も含むことがあります。
要求された属性をオブジェクトが持っていない場合、その存在しない属性は無視されます。オブジェクトが持っている要求された属性が返されます。
ディレクトリは要求された以上の数の属性を返すことがあります (クラスの説明の「属性型名」 参照) が、無関係な任意の属性を返すことはありません。
クラスの説明の「操作属性」 も参照してください。
name
- 検索するコンテキストまたはオブジェクトの名前filter
- 検索に使用するフィルタ式。null は不可cons
- 検索を制御する検索制御。null の場合、デフォルトの検索制御が使用される ((new SearchControls()) と同等)
InvalidSearchFilterException
- 基本となるディレクトリが、指定された検索フィルタをサポートしていないか、認識しない場合
InvalidSearchControlsException
- 検索制御が無効な設定を含んでいる場合
NamingException
- ネーミング例外が発生した場合search(Name, String, Object[], SearchControls)
,
SearchControls
,
SearchResult
NamingEnumeration<SearchResult> search(String name, String filter, SearchControls cons) throws NamingException
search(Name, String, SearchControls)
を参照してください。
name
- 検索するコンテキストまたはオブジェクトの名前filter
- 検索に使用するフィルタ式。null は不可cons
- 検索を制御する検索制御。null の場合、デフォルトの検索制御が使用される ((new SearchControls()) と同等)
InvalidSearchFilterException
- 基本となるディレクトリが、指定された検索フィルタをサポートしていないか、認識しない場合
InvalidSearchControlsException
- 検索制御が無効な設定を含んでいる場合
NamingException
- ネーミング例外が発生した場合NamingEnumeration<SearchResult> search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException
filterExpr
の解釈は、RFC 2254 に基づいています。このほかに、filterArgs
配列のオブジェクトに関連するフォーム {i}
の変数を含む場合があります。i
は整数です。その他の点では、filterExpr
の解釈は、メソッド search(Name, String, SearchControls)
の filter
パラメータの解釈と同一です。
変数 {i}
が検索フィルタにある場合、フィルタ引数 filterArgs[i]
がその場所に使用されることを示しています。このような変数は、attr、value、または matchingrule 生成が RFC 2254、セクション 4 のフィルタ文法で掲載される場所ならどこでも使用できます。文字列値フィルタの引数が変数を置換する場合、フィルタは文字列が変数の代わりに指定されたように解釈され、RFC 2254 の規則にしたがって、フィルタ内の特殊な意味を持つ文字 ('*'
など) はエスケープされます。
属性の一部または全部に文字列表現を使用しないディレクトリの場合、属性値に対応するフィルタ引数は String 以外の型の可能性があります。たとえば、構造化されていない 2 進値の属性をサポートするディレクトリは、バイト配列をフィルタ引数として受け入れます。他の型のフィルタ引数の解釈がある場合、解釈はそのディレクトリのサービスプロバイダによって判別され、サービスプロバイダはフィルタ操作を、該当するセマンティクスとともに基本となるディレクトリの操作にマップします。
このメソッドは結果の列挙を返します。列挙の各要素は、オブジェクトの名前その他オブジェクトに関する情報を含んでいます (SearchResult
参照)。名前は、(name
パラメータによって名付けられた) 検索のターゲットコンテキストに関連しているか、URL 文字列であるかのどちらかです。cons
が SearchControls.OBJECT_SCOPE
または SearchControls.SUBSTREE_SCOPE
の検索範囲を指定する場合に考えられるように、ターゲットコンテキストが列挙に含まれる場合、その名前は空の文字列です。
属性を返すよう cons 引数が指定した場合、SearchResult は一致するオブジェクトの属性も含むことがあります。
要求された属性をオブジェクトが持っていない場合、その存在しない属性は無視されます。オブジェクトが持っている要求された属性が返されます。
ディレクトリは要求された以上の数の属性を返すことがあります (クラスの説明の「属性型名」 参照) が、無関係な任意の属性を返すことはありません。
無効な変数の置換を行う検索フィルタがこのメソッドに提供された場合、結果は定義されていません。この DirContext に変更がなされた場合、このメソッドに対する変更前の呼び出しによって返される列挙の結果は定義されていません。
クラスの説明の「操作属性」 も参照してください。
name
- 検索するコンテキストまたはオブジェクトの名前filterExpr
- 検索に使用するフィルタ式。式にはフォーム「{i}
」の変数を含むことができる。i
は負でない整数。null は不可filterArgs
- filterExpr
の変数を置換する引数の配列。filterArgs[i]
の値が各「{i}
」を置換する。null の場合、空の配列と同等cons
- 検索を制御する検索制御。null の場合、デフォルトの検索制御が使用される ((new SearchControls()) と同等)
ArrayIndexOutOfBoundsException
- filterExpr が {i}
式を含み、i
が配列 filterArgs
の範囲外となる場合
InvalidSearchControlsException
- cons が無効な設定を含んでいる場合
InvalidSearchFilterException
- filterArgs を持つ filterExpr が無効な検索フィルタを表している場合
NamingException
- ネーミング例外が発生した場合search(Name, Attributes, String[])
,
MessageFormat
NamingEnumeration<SearchResult> search(String name, String filterExpr, Object[] filterArgs, SearchControls cons) throws NamingException
search(Name, String, Object[], SearchControls)
を参照してください。
name
- 検索するコンテキストまたはオブジェクトの名前filterExpr
- 検索に使用するフィルタ式。式にはフォーム「{i}
」の変数を含むことができる。i
は負でない整数。null は不可filterArgs
- filterExpr
の変数を置換する引数の配列。filterArgs[i]
の値が各「{i}
」を置換する。null の場合、空の配列と同等cons
- 検索を制御する検索制御。null の場合、デフォルトの検索制御が使用される ((new SearchControls()) と同等)
ArrayIndexOutOfBoundsException
- filterExpr が {i}
式を含み、i
が配列 filterArgs
の範囲外となる場合
InvalidSearchControlsException
- cons が無効な設定を含んでいる場合
InvalidSearchFilterException
- filterArgs を持つ filterExpr が無効な検索フィルタを表している場合
NamingException
- ネーミング例外が発生した場合
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。