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

インタフェースDirStateFactory

すべてのスーパー・インタフェース:
StateFactory

public interface DirStateFactory extends StateFactory
このインタフェースは、オブジェクトと該当属性とのバインディングの状態を取得するファクトリを表します。

JNDIフレームワークを使用すると、object factoriesを介してオブジェクト実装を動的にロードできます。

DirStateFactoryは、AttributesインスタンスをgetStateToBind()メソッドに指定して返すことで、StateFactoryを拡張します。 DirStateFactory実装は、DirContextサービス・プロバイダによって使用されることを意図しています。 呼出し元がDirContext.bind()を使用してオブジェクトをバインドする場合、オブジェクトにバインドする属性のセットを指定することもできます。 バインドするオブジェクトおよび属性は、ファクトリのgetStateToBind()メソッドに渡されます。 ファクトリは、オブジェクトと属性を処理する場合はバインドされるオブジェクトと属性の該当ペアを返します。 オブジェクトを処理しない場合、ファクトリはnullを返す必要があります。

たとえば、呼出し側がプリンタ・オブジェクトをプリンタ関連の属性とバインドすることがあります。

 ctx.rebind("inky", printer, printerAttrs);
ctxのLDAPサービス・プロバイダは、DirStateFactory (DirectoryManager.getStateToBind()を介して間接的に)を使用し、printerおよびprinterAttrsを指定します。 LDAPディレクトリのファクトリは、printerを一連の属性に変換し、それをprinterAttrsとマージする場合があります。 続いてサービス・プロバイダがその属性を使ってLDAPエントリを生成し、ディレクトリを更新します。

DirStateFactoryStateFactoryを拡張するため、2つのgetStateToBind()メソッドがあり、一方はattributes引数によって他方とは異なります。 DirectoryManager.getStateToBind()はattributes引数を受け入れるフォームのみを使用しますが、NamingManager.getStateToBind()はattributes引数を受け入れないフォームのみを使用します。

DirStateFactoryのgetStateToBind()メソッドのどちらの形式でも、異なるパラメータを使用して複数回起動できます。 実装はスレッド・セーフです。

導入されたバージョン:
1.3
関連項目:
  • ネストされたクラスのサマリー

    ネストされたクラス
    修飾子と型
    インタフェース
    説明
    static class 
    DirStateFactory.getStateToBind()の結果を返す、オブジェクトと属性のペアです。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    getStateToBind(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes inAttrs)
    変換対象のオブジェクトおよび属性を、バインディングするためにオブジェクトの状態を取得します。

    インタフェースjavax.naming.spi.StateFactoryで宣言されたメソッド

    getStateToBind
  • メソッドの詳細

    • getStateToBind

      DirStateFactory.Result getStateToBind(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes inAttrs) throws NamingException
      変換対象のオブジェクトおよび属性を、バインディングするためにオブジェクトの状態を取得します。

      DirectoryManager.getStateToBind()は、状態ファクトリに連続してロードします。 ファクトリがDirStateFactoryを実装している場合、DirectoryManagerはこのメソッドを呼び出します。実装されていない場合は、StateFactory.getStateToBind()を呼び出します。 これは、ファクトリがnull以外の答えを生成するまで行われます。

      ファクトリによって例外がスローされると、例外はDirectoryManager.getStateToBind()のコール元に渡されます。 null以外の答えを生成する可能性のあるほかのファクトリの検索は停止します。 ファクトリは、それが目的の唯一のファクトリであり、ほかのファクトリを検索する必要がないことが確実な場合にのみ、例外をスローするようにします。 このファクトリが指定された引数でオブジェクトを生成できない場合は、nullを返します。

      作成されるオブジェクトの名前を指定するために、必要に応じてnameパラメータやnameCtxパラメータを使用できます。 詳細は、ObjectFactory.getObjectInstance()にある「名前パラメータとコンテキスト・パラメータ」の説明を参照してください。 コンテキスト実装はスレッド・セーフであることが保証されないため、nameCtxを使用する場合、ファクトリはその使用を並行アクセスに対して同期化するようにします。

      nameinAttrsおよびenvironmentパラメータは、コール元が所有します。 実装はこれらのオブジェクトを変更せず、そのオブジェクトに対する参照も保持しませんが、複製またはコピーに対する参照を保持することがあります。 このメソッドが返すオブジェクトは呼出し側が所有します。 実装は続いてこれを変更しません。 これには、同じようにコール元が所有する新しいAttributesオブジェクト、または元のinAttrsパラメータへの参照が含まれます。

      パラメータ:
      obj - 状態を取得する、nullの可能性があるオブジェクト。
      name - nameCtxを基準にしたこのオブジェクトの名前、または名前が指定されていない場合はnull。
      nameCtx - nameパラメータが基準にして指定されているコンテキスト、またはnameがデフォルトの初期コンテキストを基準にしている場合はnull。
      environment - オブジェクトの状態の作成で使用されるnullの可能性がある環境。
      inAttrs - オブジェクトにバインドされる、nullの可能性がある属性。 ファクトリはinAttrsを変更できません。
      戻り値:
      バインドするオブジェクトの状態およびバインドする対応する属性を含むResult。オブジェクトがこのファクトリを使用しない場合、null。
      例外:
      NamingException - オブジェクトの状態を取得しようとしているときにこのファクトリが例外を検出し、ほかのファクトリが試行されない場合。
      関連項目: