モジュール java.naming
パッケージ javax.naming.directory

インタフェースDirContext

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


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

    名前

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

    ほとんどのメソッドには、Nameパラメータおよび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」属性が返ってくる可能性があります。

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

    • 説明
    • 説明;lang-en
    • 説明;lang-de
    • 説明;lang-fr

    操作属性

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

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

    名前付きコンテキスト

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

    パラメータ

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

    例外

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

    導入されたバージョン:
    1.3
    関連項目:
    Context
    • フィールドの詳細

      • ADD_ATTRIBUTE

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

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

        この定数の値は1です。

        関連項目:
        ModificationItem, modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes), 定数フィールド値
      • REPLACE_ATTRIBUTE

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

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

        この定数の値は2です。

        関連項目:
        ModificationItem, modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes), 定数フィールド値
      • REMOVE_ATTRIBUTE

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

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

        この定数の値は3です。

        関連項目:
        ModificationItem, modifyAttributes(javax.naming.Name, int, javax.naming.directory.Attributes), 定数フィールド値
    • メソッドの詳細

      • getAttributes

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

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

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

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

        ディレクトリは要求された数より多い属性を返すことがあります(クラスの説明にあるAttribute Type Namesを参照)が、任意の無関連な属性を返すことは許可されていません。

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

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

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

        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

        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

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

        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

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

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

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

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

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

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

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

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

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

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

        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

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

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

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

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

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

        このDirContextへの変更が行われた場合、このメソッドの以前の呼出しによって返された列挙への影響は未定義です。

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

        ディレクトリは要求された数より多い属性を返すことがあります(クラスの説明にあるAttribute Type Namesを参照)が、任意の無関連な属性を返すことは許可されていません。

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

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

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

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

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

        NamingEnumeration<SearchResult> search​(Name name,
                                               String filter,
                                               SearchControls cons)
                                        throws NamingException
        名前付きコンテキストまたは名前付きオブジェクトで、指定された検索フィルタを満たすエントリを検索します。 検索制御によって指定されたように検索を行います。

        filterの形式と解釈は、RFC 2254に従います。このRFCでは、attrvalueに対して次の解釈が示されています。

        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())と同等)。
        戻り値:
        フィルタを満たすオブジェクトのSearchResultの列挙。nullは不可
        例外:
        InvalidSearchFilterException - 指定された検索フィルタが、ベースとなるディレクトリによってサポートまたは認識されていない場合
        InvalidSearchControlsException - 検索コントロールに無効な設定が含まれている場合
        NamingException - ネーミング例外が発生した場合
        関連項目:
        search(Name, String, Object[], SearchControls), SearchControls, SearchResult
      • search

        NamingEnumeration<SearchResult> 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

        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]がその場所で使用されることを示します。 このような変数は、attrvalue、または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())と同等)。
        戻り値:
        フィルタを満たすオブジェクトのSearchResultの列挙。nullは不可
        例外:
        ArrayIndexOutOfBoundsException - filterExpr{i}式(iは配列filterArgsの範囲外)が含まれている場合
        InvalidSearchControlsException - consに無効な設定が含まれている場合
        InvalidSearchFilterException - filterArgsを含むfilterExprが無効な検索フィルタを表している場合
        NamingException - ネーミング例外が発生した場合
        関連項目:
        search(Name, Attributes, String[]), MessageFormat
      • search

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