public interface DirContext extends Context
ほとんどのメソッドには、Name
パラメータおよび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、またはパラメータとしてメソッドに引き渡される配列オブジェクトは、サービス・プロバイダでは変更されません。サービス・プロバイダでは、メソッドの結果の列挙、および生成された参照の処理を含むオペレーションの間に、Nameパラメータへの参照が保持されます。呼出し側は、この間にオブジェクトを変更することはできません。メソッドによって返されるAttributesオブジェクトは、呼出し側が所有します。あとで呼出し側がオブジェクトを変更することもありますが、サービス・プロバイダは変更しません。
このインタフェースのすべてのメソッドによって、NamingExceptionまたはそのサブクラスのいずれかがスローされます。各例外の詳細については、NamingExceptionおよびサブクラスを参照してください。
Context
修飾子と型 | フィールドと説明 |
---|---|
static int |
ADD_ATTRIBUTE
この定数は、指定された値で属性を追加することを指定します。
|
static int |
REMOVE_ATTRIBUTE
この定数は、指定された属性値を属性から削除することを指定します。
|
static int |
REPLACE_ATTRIBUTE
この定数は、指定された値で属性を置換することを指定します。
|
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)
名前付きコンテキストまたは名前付きオブジェクトで、指定された検索フィルタを満たすエントリを検索します。
|
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です。
static final int REPLACE_ATTRIBUTE
属性がすでに存在する場合、既存のすべての値を新しく指定された値に置き換えます。属性が存在しない場合は、属性を作成します。値が指定されていない場合、属性の値をすべて削除します。属性が少なくとも1つの値を必要とする場合、最後の値を削除すると属性が削除されます。単一値属性に複数の値を追加しようとすると、InvalidAttributeValueException
がスローされます。
この定数の値は2です。
static final int REMOVE_ATTRIBUTE
これによって、属性には、以前の値セットと指定された値セットとの間にセットの相違ができます。値が指定されていない場合、属性全体を削除します。属性が存在しない場合、または指定された値セットの一部または全部が存在しない場合は、存在しないことが無視されて操作が完了するか、あるいは存在しないことを示すNamingExceptionがスローされます。属性が少なくとも1つの値を必要とする場合、最後の値を削除すると属性が削除されます。
この定数の値は3です。
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
指定された属性をオブジェクトが持っていない場合、ディレクトリは存在しない属性を無視し、オブジェクトが持っている要求された属性を返します。
ディレクトリは要求された数より多い属性を返すことがあります(クラスの説明にあるAttribute Type Namesを参照)が、任意の無関連な属性を返すことは許可されていません。
クラスの説明にあるOperational Attributesも参照してください。
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に一致すると見なされます。これは、値の順序は重要でなく、A1にはない「余分な」値が比較に影響を与えることなくA2に含まれている可能性があることを示しています。また、A1に値が含まれていない場合は、一致しているかどうかをテストすることが、同じ識別子を持つ属性A2が存在するかどうかをテストすることと同等であることも示しています。
属性値を比較するのに使用される「同等」の詳細な定義は、ベースとなるディレクトリ・サービスによって定義されます。これは、たとえばObject.equals
メソッドを使用することも、スキーマを使用して別の同等操作を指定することもあります。同等以外の操作に基づくマッチング(部分文字列の比較など)には、search
メソッドのフィルタ引数を取るバージョンを使用します。
このDirContextへの変更が行われた場合、このメソッドの以前の呼出しによって返された列挙への影響は未定義です。
指定された属性をオブジェクトが持っていない場合、ディレクトリは存在しない属性を無視し、オブジェクトが持っている要求された属性を返します。
ディレクトリは要求された数より多い属性を返すことがあります(クラスの説明にあるAttribute Type Namesを参照)が、任意の無関連な属性を返すことは許可されていません。
クラスの説明にあるOperational Attributesも参照してください。
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[])
にatributesToReturnパラメータとして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に従います。このRFCでは、attr
とvalue
に対して次の解釈が示されています。
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
の検索範囲が指定されているときは可能性がある)、その名前は空の文字列です。SearchResultにはまた、cons引数によって属性を返すことが指定された場合、一致するオブジェクトの属性も含まれている可能性があります。
要求された属性をオブジェクトが持っていない場合、その存在しない属性は無視されます。オブジェクトが持っている要求された属性が返されます。
ディレクトリは要求された数より多い属性を返すことがあります(クラスの説明にあるAttribute Type Namesを参照)が、任意の無関連な属性を返すことは許可されていません。
クラスの説明にあるOperational Attributesも参照してください。
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
の検索範囲が指定されているときは可能性がある)、その名前は空の文字列です。
SearchResultにはまた、cons引数によって属性を返すことが指定された場合、一致するオブジェクトの属性も含まれている可能性があります。
要求された属性をオブジェクトが持っていない場合、その存在しない属性は無視されます。オブジェクトが持っている要求された属性が返されます。
ディレクトリは要求された数より多い属性を返すことがあります(クラスの説明にあるAttribute Type Namesを参照)が、任意の無関連な属性を返すことは許可されていません。
無効な変数の置換を行う検索フィルタがこのメソッドに提供された場合、結果は定義されていません。このDirContextに変更が行われた場合、変更前のこのメソッドに対する呼出しによって返された列挙の結果は、定義されていません。
クラスの説明にあるOperational Attributesも参照してください。
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
- ネーミング例外が発生した場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.