-
- すべてのスーパー・インタフェース:
StateFactory
public interface DirStateFactory extends StateFactory
このインタフェースは、オブジェクトと該当属性とのバインディングの状態を取得するファクトリを表します。JNDIフレームワークでは、
オブジェクト・ファクトリ
を使用してオブジェクト実装を動的にロードできます。DirStateFactory
はStateFactory
を拡張して、getStateToBind()
メソッドがAttributes
インスタンスを指定して返すことができるようします。DirStateFactory
実装はDirContext
サービス・プロバイダが使用するものです。 呼出し側がDirContext.bind()
を使ってオブジェクトをバインドするとき、属性のセットもそのオブジェクトにバインドされるよう指定できます。 バインドされるオブジェクトと属性は、ファクトリのgetStateToBind()
メソッドに渡されます。 ファクトリは、オブジェクトと属性を処理する場合はバインドされるオブジェクトと属性の該当ペアを返します。 オブジェクトを処理しない場合、ファクトリはnullを返す必要があります。たとえば、呼出し側がプリンタ・オブジェクトをプリンタ関連の属性とバインドすることがあります。
ctx.rebind("inky", printer, printerAttrs);
ctx
のLDAPサービス・プロバイダは(DirectoryManager.getStateToBind()
を使って間接的に)DirStateFactory
を使用して、DirStateFactoryにprinter
およびprinterAttrs
を指定します。 LDAPディレクトリのファクトリはprinter
を属性のセットに変え、それをprinterAttrs
とマージします。 続いてサービス・プロバイダがその属性を使ってLDAPエントリを生成し、ディレクトリを更新します。DirStateFactory
はStateFactory
を拡張するので、2つのgetStateToBind()
メソッドを持ちます。この2つのメソッドは属性引数が異なります。DirectoryManager.getStateToBind()
は属性引数を受け入れる形式のみを使用し、NamingManager.getStateToBind()
は属性引数を受け入れない形式のみを使用します。DirStateFactoryの
getStateToBind()
メソッドのどちらかの形式が、異なるパラメータを使って複数回呼び出されることがあります。 実装はスレッド・セーフです。
-
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 インタフェース 説明 static class
DirStateFactory.Result
DirStateFactory.getStateToBind()の結果を返す、オブジェクトと属性のペアです。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 DirStateFactory.Result
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
を使用する場合、ファクトリはその使用を並行アクセスに対して同期化するようにします。name
、inAttrs
、およびenvironment
の各パラメータは、呼出し側が所有します。 実装はこれらのオブジェクトを変更せず、そのオブジェクトに対する参照も保持しませんが、複製またはコピーに対する参照を保持することがあります。 このメソッドが返すオブジェクトは呼出し側が所有します。 実装は続いてこれを変更しません。 実装には、呼出し側が所有するのと同じ新しいAttributes
オブジェクトか、あるいは元のinAttrs
パラメータへの参照が含まれます。- パラメータ:
obj
- 状態を取得する、nullの可能性があるオブジェクト。name
-nameCtx
を基準にしたこのオブジェクトの名前、または名前が指定されていない場合はnull。nameCtx
-name
パラメータが基準にして指定されているコンテキスト、またはname
がデフォルトの初期コンテキストを基準にしている場合はnull。environment
- オブジェクトの状態の作成で使用されるnullの可能性がある環境。inAttrs
- オブジェクトにバインドされる、nullの可能性がある属性。 ファクトリはinAttrs
を変更できない。- 戻り値:
- オブジェクトのバインディングの状態およびバインドされる該当の属性を含む
Result
オブジェクトがこのファクトリを使用しない場合はnull。 - 例外:
NamingException
- オブジェクトの状態を取得しようとしているときにこのファクトリが例外を検出し、ほかのファクトリが試行されない場合。- 関連項目:
DirectoryManager.getStateToBind(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)
-
-