JavaTM 2 Platform
Std. Ed. v1.3

javax.naming.directory
インタフェース DirContext

すべてのスーパーインタフェース:
Context
既知のサブインタフェースの一覧:
EventDirContext, LdapContext
既知の実装クラスの一覧:
InitialDirContext

public interface DirContext
extends Context

ディレクトリサービスインタフェースで、オブジェクトに関連付けられた属性のチェックおよび変更のメソッド、およびディレクトリ検索のメソッドを含みます。

名前

DirContext メソッドに引数として引き渡される名前はそれぞれ、そのコンテキストを基準にしています。コンテキスト自体に名前を付ける場合は、空の名前が使用されます。名前パラメータは null にできません。

ほとんどのメソッドには、1 つは Name パラメータを取り、もう 1 つは String パラメータを取る、オーバーロードされたバージョンがあります。Name パラメータと String パラメータが単に同じ名前の異なる表記である場合に同じメソッドのオーバーロードされたバージョンが同じように動作する、という点でこれらのオーバーロードされたバージョンは同等です。以下のメソッドの説明では、1 つのバージョンだけがドキュメント化されています。2 番目のバージョンには、そのかわりに最初のバージョンへのリンクがあり、同じドキュメントが両方に適用されます。

Context メソッドに対する名前引数の解釈に関する説明は、Context を参照してください。これと同じ規則が、DirContext メソッドに対する名前引数にも適用されます。

属性モデル

基本モデルには 2 つあり、関連付ける属性が異なります。第 1 のモデルは、属性を DirContext オブジェクトと直接関連付けます。このモデルでは、名前付きオブジェクトの属性操作は、(DirContext オブジェクトを返す) 名前のルックアップと大体同等です。続いて DirContext オブジェクトで呼び出された属性操作で、呼び出し側が空の名前を提供します。属性はオブジェクトとともに格納されているとみなすことができます。しかし、これは実装時に格納されている必要があるということではありません。

第 2 のモデルは、属性を DirContext の名前 (通常は原始名) と関連付けます。このモデルでは、名前付きオブジェクトの属性操作は、名前付きオブジェクトの親 DirContext の名前のルックアップと大体同等です。続いて親で呼び出された属性操作で、呼び出し側が端末原始名を提供します。属性は親 DirContext に格納されているので、表示できます (実装時に格納されている必要はありません)。DirContext でないオブジェクトは、親が DirContext であれば属性を持つことができます。

JNDI はこれら両方のモデルをサポートします。属性をどこに「格納」するかの決定は、個々のサービスプロバイダによって異なります。JNDI クライアントは、オブジェクトの属性がオブジェクトの一部として格納されるのか、あるいは親オブジェクト内に格納されてオブジェクトの名前と関連付けられるのかについて前提条件を作らない場合に、もっともセキュリティが高くなります。

属性タイプ名

getAttributes() および search() メソッドで、属性名 (文字列) のリストを提供することによって、返す属性を提供できます。返ってきた属性は、指定した属性名と同じ名前を持っていない場合があります。これは、ディレクトリによっては、サポートする機能が他の属性を返すためです。こうした機能には、属性のサブクラス化、属性名のシノニム、および属性言語コードが含まれます。

属性のサブクラス化では、属性はクラス階層で定義されます。ディレクトリによっては、たとえば「名前」属性が「commonName」と「surName」を含むすべての名前に間連する属性のスーパークラスである可能性があります。「名前」属性を要求すると、「commonName」と「surName」の両方が返ってくる可能性があります。

属性タイプのシノニムを使用して、ディレクトリは複数の名前を同じ属性に割りあてることができます。たとえば、「cn」と「commonName」がともに同じ属性をさす可能性があります。「cn」を要求すると「commonName」属性が返ってくる可能性があります。

ディレクトリによっては、属性の言語コードをサポートしているものもあります。このようなディレクトリにたとえば「説明」属性を要求すると、以下の属性がすべて返ってくる可能性があります。

操作属性

ディレクトリによっては、管理目的のディレクトリオブジェクトと間連付けられた属性である「操作属性」の概念を持つものもあります。操作属性の 1 例は、オブジェクトのアクセス制御リストです。

getAttributes() および search() メソッドで、返す属性のリストとして null を提供することによって、要求したオブジェクトに関連付けられた属性をすべて返すよう指定できます。返される属性には操作属性は含まれません。操作属性を検索するためには、操作属性に明示的に名前を付ける必要があります。

名前付きコンテキスト

ある種のメソッドでは、名前がコンテキストを解釈処理している必要があります (たとえば、単一レベルのコンテキストを検索する場合)。このようなメソッドのドキュメントでは、名前付きコンテキストで名前パラメータを説明します。これらのメソッドに対しては、名前付きオブジェクトが DirContext でない場合、NotContextException がスローされます。これらのメソッド以外は、名前付きオブジェクトが DirContext である必要はありません。

パラメータ

AttributesSearchControls、またはパラメータとしてメソッドに引き渡される配列オブジェクトは、サービスプロバイダでは変更されません。サービスプロバイダは、メソッドの結果の列挙、および生成された参照の処理を含む操作中、これらオブジェクトへの参照を保持します。呼び出し側は、この間にオブジェクトを変更しないでください。メソッドによって返される Attributes オブジェクトは、呼び出し側が所有します。あとで呼び出し側が Name を変更することもありますが、サービスプロバイダは変更しません。

例外

このインタフェースのすべてのメソッドは、NamingException またはそのサブクラスのどれでもスローできます。各例外の詳細については、NamingException およびそのサブクラスを参照してください。

導入されたバージョン:
1.3
関連項目:
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 search(Name name, Attributes matchingAttributes)
          指定された属性のセットを含むオブジェクトを単一コンテキストで検索します。
 NamingEnumeration search(Name name, Attributes matchingAttributes, String[] attributesToReturn)
          指定された属性のセットを含むオブジェクトを単一コンテキストで検索し、選択した属性を取得します。
 NamingEnumeration search(Name name, String filterExpr, Object[] filterArgs, SearchControls cons)
          名前付きコンテキストまたは名前付きオブジェクトで、指定された検索フィルタを満たすエントリを検索します。
 NamingEnumeration search(Name name, String filter, SearchControls cons)
          名前付きコンテキストまたは名前付きオブジェクトで、指定された検索フィルタを満たすエントリを検索します。
 NamingEnumeration search(String name, Attributes matchingAttributes)
          指定された属性のセットを含むオブジェクトを単一コンテキストで検索します。
 NamingEnumeration search(String name, Attributes matchingAttributes, String[] attributesToReturn)
          指定された属性のセットを含むオブジェクトを単一コンテキストで検索し、選択した属性を取得します。
 NamingEnumeration search(String name, String filterExpr, Object[] filterArgs, SearchControls cons)
          名前付きコンテキストまたは名前付きオブジェクトで、指定された検索フィルタを満たすエントリを検索します。
 NamingEnumeration 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
 

フィールドの詳細

ADD_ATTRIBUTE

public static final int ADD_ATTRIBUTE
この定数は、指定された値で属性を追加することを指定します。

属性が存在しない場合、属性を作成します。出来上がった属性は、指定された値のセットと以前の値のセットの和集合を持ちます。属性が少なくとも 1 つの値を必要とする場合に値なしで属性を追加すると、InvalidAttributeValueException がスローされます。その属性がすでに存在する単一値属性に対しては、AttributeInUseException がスローされます。単一値属性に複数の値を追加しようとすると、InvalidAttributeValueException がスローされます。

この定数の値は 1 です。

関連項目:
ModificationItem, modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes)

REPLACE_ATTRIBUTE

public static final int REPLACE_ATTRIBUTE
この定数は、指定された値で属性を置換することを指定します。

属性がすでに存在する場合、既存のすべての値を新しく指定された値に置き換えます。属性が存在しない場合は、属性を作成します。値が指定されていない場合、属性の値をすべて削除します。属性が少なくとも 1 つの値を必要とする場合、最後の値を削除すると属性が削除されます。単一値属性に複数の値を追加しようとすると、InvalidAttributeValueException がスローされます。

この定数の値は 2 です。

関連項目:
ModificationItem, modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes)

REMOVE_ATTRIBUTE

public static final int REMOVE_ATTRIBUTE
この定数は、指定された属性値を属性から削除することを指定します。

これによって、属性には、以前の値セットと指定された値セットとの間にセットの相違ができます。値が指定されていない場合、属性全体を削除します。属性が存在しない場合、または指定された値セットの一部または全部が存在しない場合は、存在しないことが無視されて操作が完了するか、あるいは存在しないことを示す NamingException がスローされます。属性が少なくとも 1 つの値を必要とする場合、最後の値を削除すると属性が削除されます。

この定数の値は 3 です。

関連項目:
ModificationItem, modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes)
メソッドの詳細

getAttributes

public Attributes getAttributes(Name name)
                         throws NamingException
名前付きオブジェクトに関連付けられた属性をすべて取得します。属性モデル、属性タイプ名、および操作属性については、クラスの説明を参照してください。
パラメータ:
name - 属性の取得元のオブジェクトの名前
戻り値:
name に関連付けられた属性のセット。名前に属性がない場合、空の属性セットを返し、null になることはない
例外:
NamingException - ネーミング例外が見つかった場合
関連項目:
getAttributes(String), getAttributes(Name, String[])

getAttributes

public Attributes getAttributes(String name)
                         throws NamingException
名前付きオブジェクトに関連付けられた属性をすべて取得します。詳細は、getAttributes(Name) を参照してください。
パラメータ:
name - 属性の取得元のオブジェクトの名前
戻り値:
name に関連付けられた属性のセット
例外:
NamingException - ネーミング例外が見つかった場合

getAttributes

public Attributes getAttributes(Name name,
                                String[] attrIds)
                         throws NamingException
名前付きオブジェクトに関連付けられた属性で選択されたものを取得します。属性モデル、属性タイプ名、および操作属性については、クラスの説明を参照してください。

指定された属性をオブジェクトが持っていない場合、ディレクトリは存在しない属性を無視し、オブジェクトが持っている要求された属性を返します。

ディレクトリは要求された以上の数の属性を返すことがあります (クラス説明の Attribute Type Names を参照) が、無関係な任意の属性を返すことはありません。

クラスの説明の Operational Attributes も参照してください。

パラメータ:
name - 属性の取得元のオブジェクトの名前
attrIds - 取得する属性の識別子。null はすべての属性が取得されることを示す。空の配列は何も取得されないことを示す
戻り値:
要求された属性。null は不可
例外:
NamingException - ネーミング例外が見つかった場合

getAttributes

public Attributes getAttributes(String name,
                                String[] attrIds)
                         throws NamingException
名前付きオブジェクトに関連付けられた属性で選択されたものを取得します。詳細は、getAttributes(Name, String[]) を参照してください。
パラメータ:
name - 属性の取得元のオブジェクトの名前
attrIds - 取得する属性の識別子。null はすべての属性が取得されることを示す。空の配列は何も取得されないことを示す
戻り値:
要求された属性。null は不可
例外:
NamingException - ネーミング例外が見つかった場合

modifyAttributes

public void modifyAttributes(Name name,
                             int mod_op,
                             Attributes attrs)
                      throws NamingException
名前付きオブジェクトに関連付けられた属性を変更します。変更の順序は指定されません。可能な場合、変更は基本的に行われます。
パラメータ:
name - 属性が変更されるのオブジェクトの名前
mod_op - 変更操作、ADD_ATTRIBUTEREPLACE_ATTRIBUTEREMOVE_ATTRIBUTE のどちらか
attrs - 変更に使用される属性。null は不可
例外:
AttributeModificationException - 変更を完了できない場合
NamingException - ネーミング例外が見つかった場合
関連項目:
modifyAttributes(Name, ModificationItem[])

modifyAttributes

public void modifyAttributes(String name,
                             int mod_op,
                             Attributes attrs)
                      throws NamingException
名前付きオブジェクトに関連付けられた属性を変更します。詳細は modifyAttributes(Name, int, Attributes) を参照してください。
パラメータ:
name - 属性が変更されるのオブジェクトの名前
mod_op - 変更操作、ADD_ATTRIBUTEREPLACE_ATTRIBUTEREMOVE_ATTRIBUTE のどちらか
attrs - 変更に使用される属性。null は不可
例外:
AttributeModificationException - 変更を完了できない場合
NamingException - ネーミング例外が見つかった場合

modifyAttributes

public void modifyAttributes(Name name,
                             ModificationItem[] mods)
                      throws NamingException
変更順指定リストを使用して、名前付きオブジェクトに関連付けられた属性を変更します。変更は指定された順序で行われます。各変更は変更操作コードおよび操作する属性を指定します。可能な場合、変更は基本的に行われます。
パラメータ:
name - 属性が変更されるのオブジェクトの名前
mods - 実行される変更の順序。null は不可
例外:
AttributeModificationException - 変更を完了できない場合
NamingException - ネーミング例外が見つかった場合
関連項目:
modifyAttributes(Name, int, Attributes), ModificationItem

modifyAttributes

public void modifyAttributes(String name,
                             ModificationItem[] mods)
                      throws NamingException
順序付けされた変更リストを使用して、名前付きオブジェクトに関連付けられた属性を変更します。詳細は、modifyAttributes(Name, ModificationItem[]) を参照してください。
パラメータ:
name - 属性が変更されるオブジェクトの名前
mods - 実行される変更の順序。null は不可
例外:
AttributeModificationException - 変更を完了できない場合
NamingException - ネーミング例外が見つかった場合

bind

public void bind(Name name,
                 Object obj,
                 Attributes attrs)
          throws NamingException
関連付けられた属性とともに、名前をオブジェクトにバインドします。attrs が null の場合、objDirContext であれば、バインディングは obj に関連付けられた属性を持ち、それ以外の場合は属性がありません。attrs が null 以外の場合、バインディングは属性として attrs を持ち、obj に関連付けられた属性はすべて無視されます。
パラメータ:
name - 空ではないバインドされる名前
obj - null の可能性があるバインドされるオブジェクト
attrs - バインディングに関連付ける属性
例外:
NameAlreadyBoundException - 名前がすでにバインドされている場合
InvalidAttributesException - バインディングに「必須」の属性が提供されていない場合
NamingException - ネーミング例外が見つかった場合
関連項目:
Context.bind(Name, Object), rebind(Name, Object, Attributes)

bind

public void bind(String name,
                 Object obj,
                 Attributes attrs)
          throws NamingException
関連付けられた属性とともに、名前をオブジェクトにバインドします。詳細は、bind(Name, Object, Attributes) を参照してください。
パラメータ:
name - 空ではないバインドされる名前
obj - null の可能性があるバインドされるオブジェクト
attrs - バインディングに関連付けるオブジェクト
例外:
NameAlreadyBoundException - 名前がすでにバインドされている場合
InvalidAttributesException - バインディングに「必須」の属性が提供されていない場合
NamingException - ネーミング例外が見つかった場合

rebind

public void rebind(Name name,
                   Object obj,
                   Attributes attrs)
            throws NamingException
関連付けられた属性とともに名前をオブジェクトにバインドし、既存のバインディングをオーバーライドします。attrs が null で objDirContext の場合、obj の属性が使用されます。attrs が null で objDirContext でない場合、ディレクトリですでにバインドされているオブジェクトに関連付けられた既存の属性が変更されないまま残ります。attrs が null 以外の場合、ディレクトリですでにバインドされているオブジェクトに関連付けられた既存の属性は削除され、attrs が名前付きオブジェクトに関連付けられます。objDirContextattrs が null 以外の場合、obj の属性は無視されます。
パラメータ:
name - 空ではないバインドされる名前
obj - null の可能性があるバインドされるオブジェクト
attrs - バインディングに関連付ける属性
例外:
InvalidAttributesException - バインディングに「必須」の属性が提供されていない場合
NamingException - ネーミング例外が見つかった場合
関連項目:
Context.bind(Name, Object), bind(Name, Object, Attributes)

rebind

public void rebind(String name,
                   Object obj,
                   Attributes attrs)
            throws NamingException
関連付けられた属性とともに名前をオブジェクトにバインドし、既存のバインディングをオーバーライドします。詳細は、rebind(Name, Object, Attributes) を参照してください。
パラメータ:
name - 空ではないバインドされる名前
obj - null の可能性があるバインドされるオブジェクト
attrs - バインディングに関連付けるオブジェクト
例外:
InvalidAttributesException - バインディングに「必須」の属性が提供されていない場合
NamingException - ネーミング例外が見つかった場合

createSubcontext

public DirContext createSubcontext(Name name,
                                   Attributes attrs)
                            throws NamingException
関連付けられた属性とともに、新しいコンテキストを作成してバインドします。このメソッドは指定した名前で新しいサブコンテキストを作成し、そのサブコンテキストを (名前のほぼ末端の不可分成分によって指定された) ターゲットコンテキストでバインドし、提供された属性を新しく作成されたオブジェクトに関連付けます。すべての中間コンテキストおよびターゲットコンテキストがすでに存在している必要があります。attrs が null の場合、このメソッドは Context.createSubcontext() と同等です。
パラメータ:
name - 空ではない作成されるコンテキストの名前
attrs - 新しく作成されたコンテキストに関連付けるオブジェクト
戻り値:
新しく作成されたコンテキスト
例外:
NameAlreadyBoundException - 名前がすでにバインドされている場合
InvalidAttributesException - 作成に必要な必須属性 attrs が一部しか含まれていない場合
NamingException - ネーミング例外が見つかった場合
関連項目:
Context.createSubcontext(Name)

createSubcontext

public DirContext createSubcontext(String name,
                                   Attributes attrs)
                            throws NamingException
関連付けられた属性とともに、名前をオブジェクトにバインドします。詳細は、createSubcontext(Name, Attributes) を参照してください。
パラメータ:
name - 空ではない作成されるコンテキストの名前
attrs - 新しく作成されたコンテキストに関連付けるオブジェクト
戻り値:
新しく作成されたコンテキスト
例外:
NameAlreadyBoundException - 名前がすでにバインドされている場合
InvalidAttributesException - 作成に必要な必須属性 attrs が一部しか含まれていない場合
NamingException - ネーミング例外が見つかった場合

getSchema

public DirContext getSchema(Name name)
                     throws NamingException
名前付きオブジェクトに関連付けられたスキーマを取得します。スキーマは、名前空間の構造と、その中に保存された属性に関する規則を説明します。スキーマは、ディレクトリに追加できるオブジェクトのタイプとそのオブジェクトを追加する場所、オブジェクトが持てる必須属性と任意の属性を指定します。スキーマのサポート範囲はディレクトリに固有です。

このメソッドは、名前付きオブジェクトに適用できるスキーマ情報ツリーのルートを返します。名前付きオブジェクト (またはディレクトリ全体) のいくつかが、同じスキーマを共有する場合があります。

スキーマツリーの構造と内容、スキーマツリーの内容の変更許可、こうした変更のディレクトリへの影響などの問題は、基本となるディレクトリによって異なります。

パラメータ:
name - スキーマの取得元オブジェクトの名前
戻り値:
コンテキストに関連付けられるスキーマ。null は不可
例外:
OperationNotSupportedException - スキーマがサポートされていない場合
NamingException - ネーミング例外が見つかった場合

getSchema

public DirContext getSchema(String name)
                     throws NamingException
名前付きオブジェクトに関連付けられたスキーマを取得します。詳細は、getSchema(Name) を参照してください。
パラメータ:
name - スキーマの取得元オブジェクトの名前
戻り値:
コンテキストに関連付けられるスキーマ。null は不可
例外:
OperationNotSupportedException - スキーマがサポートされていない場合
NamingException - ネーミング例外が見つかった場合

getSchemaClassDefinition

public DirContext getSchemaClassDefinition(Name name)
                                    throws NamingException
名前付きオブジェクトのクラス定義のスキーマオブジェクトを含むコンテキストを取得します。

ディレクトリスキーマの情報カテゴリの 1 つにクラス定義があります。「オブジェクトクラス」の定義は、オブジェクトのタイプ、およびそのオブジェクトが持つ必要のある属性と持てる属性 (必須と任意) を指定します。ここで言う「オブジェクトクラス」は、Java 的な意味ではなく、ディレクトリ的な意味で使われています。たとえば、名前付きオブジェクトが「Person」クラスのディレクトリオブジェクトである場合、getSchemaClassDefinition() は、「Person」の (ディレクトリの) オブジェクトクラス定義を表す DirContext を返します。

オブジェクトクラス定義から取得できる情報は、ディレクトリ依存です。

JNDI 1.2 より前は、このメソッドは名前付きオブジェクトのクラス定義を表す単一のスキーマオブジェクトを返していました。JNDI 1.2 からは、このメソッドは名前付きオブジェクトのクラス定義をすべて含む DirContext を返します。

パラメータ:
name - オブジェクトクラス定義の取得元オブジェクトの名前
戻り値:
名前付きオブジェクトのクラス定義を含む DirContext。null は不可
例外:
OperationNotSupportedException - スキーマがサポートされていない場合
NamingException - ネーミング例外が見つかった場合

getSchemaClassDefinition

public DirContext getSchemaClassDefinition(String name)
                                    throws NamingException
名前付きオブジェクトのクラス定義のスキーマオブジェクトを含むコンテキストを取得します。詳細は、getSchemaClassDefinition(Name) を参照してください。
パラメータ:
name - オブジェクトクラス定義の取得元オブジェクトの名前
戻り値:
名前付きオブジェクトのクラス定義を含む DirContext。null は不可
例外:
OperationNotSupportedException - スキーマがサポートされていない場合
NamingException - ネーミング例外が見つかった場合

search

public NamingEnumeration search(Name name,
                                Attributes matchingAttributes,
                                String[] attributesToReturn)
                         throws NamingException
指定された属性のセットを含むオブジェクトを単一コンテキストで検索し、選択した属性を取得します。検索は、デフォルトの SearchControls 設定を使用して行われます。

オブジェクトを選択するためには、matchingAttributes の各属性がオブジェクトの属性のどれかと一致する必要があります。matchingAttributes が空または null の場合、ターゲットコンテキストのすべてのオブジェクトが返されます。

matchingAttributes の属性 A1 とオブジェクトの属性 A2 とが同じ識別子を持っており、A1 の各値が A2 の値のどれかに等しい場合、A1A2 に一致するとみなされます。これは、値の順序は重要でなく、また A2A1 にない「余分な」値を含んでいても比較には影響がないことを意味します。さらに、A1 が値を持っていない場合、一致のテストは、同じ識別子を持つ属性 A2 が存在するかどうかを調べるのと同じ意になります。

属性値を比較するのに使用される「同等」の詳細な定義は、基本となるディレクトリサービスによって定義されます。定義には、たとえば Object.equals メソッドを使用する場合もあれば、スキーマを使用して別の同等操作を指定する場合もあります。同等以外の操作に基づくマッチング (部分文字列の比較など) には、フィルタ引数を取る search メソッドのバージョンを使用します。

この DirContext に変更が行われた場合、変更前のこのメソッドに対する呼び出しによって返された列挙の結果は、定義されていません。

指定された属性をオブジェクトが持っていない場合、ディレクトリは存在しない属性を無視し、オブジェクトが持っている要求された属性を返します。

ディレクトリは要求された以上の数の属性を返すことがあります (クラス説明の Attribute Type Names 参照) が、無関係な任意の属性を返すことはありません。

クラスの説明の Operational Attributes も参照してください。

パラメータ:
name - 検索するコンテキストの名前
matchingAttributes - 検索する属性。空または null の場合、ターゲットコンテキストのすべてのオブジェクトが返される
attributesToReturn - 返す属性。null はすべての属性が返されることを示す。空の配列は何も返されないことを示す
戻り値:
null 以外の SearchResult オブジェクトの列挙。各 SearchResult は、attributesToReturn によって識別された属性、および name によって名付けられたコンテキストに関連して名付けられた該当オブジェクトの名前を含む
例外:
NamingException - ネーミング例外が見つかった場合
関連項目:
SearchControls, SearchResult, search(Name, String, Object[], SearchControls)

search

public NamingEnumeration search(String name,
                                Attributes matchingAttributes,
                                String[] attributesToReturn)
                         throws NamingException
指定された属性のセットを含むオブジェクトを単一コンテキストで検索し、選択した属性を取得します。詳細は、search(Name, Attributes, String[]) を参照してください。
パラメータ:
name - 検索するコンテキストの名前
matchingAttributes - 検索する属性
attributesToReturn - 返す属性
戻り値:
null 以外の SearchResult オブジェクトの列挙
例外:
NamingException - ネーミング例外が見つかった場合

search

public NamingEnumeration search(Name name,
                                Attributes matchingAttributes)
                         throws NamingException
指定された属性のセットを含むオブジェクトを単一コンテキストで検索します。このメソッドはそのオブジェクトのすべての属性を返します。これは、atributesToReturn パラメータとしてメソッド search(Name, Attributes, String[]) に null を提供するのと同等です。
詳細については、search(Name, Attributes, String[]) を参照してください。
パラメータ:
name - 検索するコンテキストの名前
matchingAttributes - 検索する属性
戻り値:
SearchResult オブジェクトの列挙
例外:
NamingException - ネーミング例外が見つかった場合
関連項目:
search(Name, Attributes, String[])

search

public NamingEnumeration search(String name,
                                Attributes matchingAttributes)
                         throws NamingException
指定された属性のセットを含むオブジェクトを単一コンテキストで検索します。詳細は、search(Name, Attributes) を参照してください。
パラメータ:
name - 検索するコンテキストの名前
matchingAttributes - 検索する属性
戻り値:
SearchResult オブジェクトの列挙
例外:
NamingException - ネーミング例外が見つかった場合

search

public NamingEnumeration 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 文字列であるかのどちらかです。consSearchControls.OBJECT_SCOPE または SearchControls.SUBSTREE_SCOPE の検索範囲を指定する場合に考えられるように、ターゲットコンテキストが列挙に含まれる場合、その名前は空の文字列です。一致オブジェクトの属性を返すように cons 引数が指定した場合、SearchResult はその属性も含むことがあります。

要求された属性をオブジェクトが持っていない場合、その存在しない属性は無視されます。オブジェクトが持っている要求された属性が返されます。

ディレクトリは要求された以上の数の属性を返すことがあります (クラス説明の Attribute Type Names 参照) が、無関係な任意の属性を返すことはありません。

クラスの説明の Operational Attributes も参照してください。

パラメータ:
name - 検索するコンテキストまたはオブジェクトの名前
filter - 検索に使用するフィルタ式。null は不可
cons - 検索を制御する検索制御。null の場合、デフォルトの検索制御が使用される ((new SearchControls()) と同等)
戻り値:
フィルタを満たすオブジェクトの SearchResult の列挙。null は不可
例外:
InvalidSearchFilterException - 基本となるディレクトリが、指定された検索フィルタをサポートしていないか、認識しない場合
InvalidSearchControlsException - 検索制御が無効な設定を含んでいる場合
NamingException - ネーミング例外が見つかった場合
関連項目:
search(Name, String, Object[], SearchControls), SearchControls, SearchResult

search

public NamingEnumeration search(String name,
                                String filter,
                                SearchControls cons)
                         throws NamingException
名前付きコンテキストまたは名前付きオブジェクトで、指定された検索フィルタを満たすエントリを検索します。検索制御によって指定されたように検索を行います。詳細は、search(Name, String, SearchControls) を参照してください。
パラメータ:
name - 検索するコンテキストまたはオブジェクトの名前
filter - 検索に使用するフィルタ式。null は不可
cons - 検索を制御する検索制御。null の場合、デフォルトの検索制御が使用される ((new SearchControls()) と同等)
戻り値:
フィルタを満たすオブジェクトの SearchResult の列挙
例外:
InvalidSearchFilterException - 基本となるディレクトリが、指定された検索フィルタをサポートしていないか、認識しない場合
InvalidSearchControlsException - 検索制御が無効な設定を含んでいる場合
NamingException - ネーミング例外が見つかった場合

search

public NamingEnumeration 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] がその場所に使用されることを示しています。このような変数は、attrvalue、または matchingrule 生成が RFC 2254、セクション 4 のフィルタ文法で掲載される場所ならどこでも使用できます。文字列値フィルタの引数が変数を置換する場合、フィルタは文字列が変数の代わりに指定されたように解釈され、RFC 2254 の規則にしたがって、フィルタ内の特殊な意味を持つ文字 ('*' など) はエスケープされます。

属性の一部または全部に文字列表現を使用しないディレクトリの場合、属性値に対応するフィルタ引数は String 以外のタイプの可能性があります。たとえば、構造化されていない 2 進値の属性をサポートするディレクトリは、バイト配列をフィルタ引数として受け入れます。他のタイプのフィルタ引数の解釈がある場合、解釈はそのディレクトリのサービスプロバイダによって判別され、サービスプロバイダはフィルタ操作を、該当するセマンティクスとともに基本となるディレクトリの操作にマップします。

このメソッドは結果の列挙を返します。列挙の各要素は、オブジェクトの名前その他オブジェクトに関する情報を含んでいます (SearchResult 参照)。名前は、(name パラメータによって名付けられた) 検索のターゲットコンテキストに関連しているか、URL 文字列であるかのどちらかです。consSearchControls.OBJECT_SCOPE または SearchControls.SUBSTREE_SCOPE の検索範囲を指定する場合に考えられるように、ターゲットコンテキストが列挙に含まれる場合、その名前は空の文字列です。

属性を返すよう cons 引数が指定した場合、SearchResult は一致するオブジェクトの属性も含むことがあります。

要求された属性をオブジェクトが持っていない場合、その存在しない属性は無視されます。オブジェクトが持っている要求された属性が返されます。

ディレクトリは要求された以上の数の属性を返すことがあります (クラス説明の Attribute Type Names 参照) が、無関係な任意の属性を返すことはありません。

無効な変数の置換を行う検索フィルタがこのメソッドに提供された場合、結果は定義されていません。この DirContext に変更がなされた場合、このメソッドに対する変更前の呼び出しによって返される列挙の結果は定義されていません。

クラスの説明の Operational Attributes も参照してください。

パラメータ:
name - 検索するコンテキストまたはオブジェクトの名前
filterExpr - 検索に使用するフィルタ式。式にはフォーム「{i}」の変数を含むことができる。i は負でない整数。null は不可
filterArgs - filterExpr の変数を置換する引数の配列。filterArgs[i] の値が各「{i}」を置換する。null の場合、空の配列と同等
cons - 検索を制御する検索制御。null の場合、デフォルトの検索制御が使用される ((new SearchControls()) と同等)
戻り値:
フィルタを満たすオブジェクトの SearchResult の列挙。null は不可
例外:
ArrayIndexOutOfBoundsException - filterExpr{i} 式を含み、i が配列 filterArgs の範囲外となる場合
InvalidSearchControlsException - cons が無効な設定を含んでいる場合
InvalidSearchFilterException - filterArgs を持つ filterExpr が無効な検索フィルタを表している場合
NamingException - ネーミング例外が見つかった場合
関連項目:
search(Name, Attributes, String[]), MessageFormat

search

public NamingEnumeration 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()) と同等)
戻り値:
フィルタを満たすオブジェクトの SearchResult の列挙。null は不可
例外:
ArrayIndexOutOfBoundsException - filterExpr{i} 式を含み、i が配列 filterArgs の範囲外となる場合
InvalidSearchControlsException - cons が無効な設定を含んでいる場合
InvalidSearchFilterException - filterArgs を持つ filterExpr が無効な検索フィルタを表している場合
NamingException - ネーミング例外が見つかった場合

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.