public interface DirObjectFactory extends ObjectFactory
JNDIフレームワークでは、オブジェクト・ファクトリを使用してオブジェクト実装を動的にロードできます。詳細はObjectFactoryを参照してください。
DirObjectFactoryはObjectFactoryを拡張して、getObjectInstance()メソッドにAttributesインスタンスを指定できるようにします。DirObjectFactory実装はDirContextサービス・プロバイダが使用するものです。サービス・プロバイダは、ディレクトリからオブジェクトを読み込むだけでなく、オブジェクト・ファクトリがオブジェクトを処理する必要があるかどうかをそのファクトリが調べるのに役立つ属性をあらかじめ持っておくことができます。たとえばLDAPスタイルのサービス・プロバイダは、オブジェクトの「objectclass」を読み込んでおくことができます。CORBAオブジェクト・ファクトリは「objectclass=corbaObject」というLDAPエントリだけを対象としているとします。LDAPサービス・プロバイダによって指定された属性を使って、CORBAオブジェクト・ファクトリは関係のないオブジェクトをすばやく排除でき、CORBA以外のオブジェクト・ファクトリはCORBA関連のLDAPエントリをすばやく排除できます。
NamingManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)
, DirectoryManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)
, ObjectFactory
修飾子と型 | メソッドと説明 |
---|---|
Object |
getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs)
位置情報または参照情報、および指定された属性を使って、オブジェクトを生成します。
|
getObjectInstance
Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment, Attributes attrs) throws Exception
このオブジェクトの特殊要件は、environment
を使用して指定されます。こうした環境プロパティの一例としては、ユーザー識別情報があります。
DirectoryManager.getObjectInstance()はオブジェクト・ファクトリに連続的にロードします。DirObjectFactoryを検出するとDirObjectFactory.getObjectInstance()を呼び出します。そうでない場合はObjectFactory.getObjectInstance()を呼び出します。これは、ファクトリがnull以外の答えを生成するまで行われます。
オブジェクト・ファクトリが例外をスローすると、その例外はDirectoryManager.getObjectInstance()の呼出し側に渡されます。null以外の答えを生成する可能性のあるほかのファクトリの検索は停止します。オブジェクト・ファクトリは、それが目的の唯一のファクトリであり、ほかのオブジェクト・ファクトリを検索する必要がないことが確実な場合に限り、例外をスローするようにします。このファクトリが指定された引数でオブジェクトを生成できない場合は、nullを返します。
DirObjectFactoryはObjectFactoryを拡張するので、ObjectFactoryは結果的に2つのgetObjectInstance()メソッドを持ちます。この2つのメソッドは属性引数が異なります。DirObjectFactoryを実装するファクトリを指定すると、DirectoryManager.getObjectInstance()は属性引数を受け入れるメソッドのみを使用し、NamingManager.getObjectInstance()は属性引数を受け入れないメソッドのみを使用します。
DirObjectFactoryに同じように適用されるURLコンテキスト・ファクトリおよびオブジェクト・ファクトリのほかのプロパティの説明については、ObjectFactoryを参照してください。
name、attrs、およびenvironmentの各パラメータは、呼出し側が所有します。実装はこれらのオブジェクトを変更せず、そのオブジェクトに対する参照も保持しませんが、複製またはコピーに対する参照を保持することがあります。
obj
- オブジェクトの作成で使用できる位置または参照情報を含むnullの可能性があるオブジェクト。name
- nameCtx
を基準にしたこのオブジェクトの名前、または名前が指定されていない場合はnull。nameCtx
- name
パラメータが基準にして指定されているコンテキスト、またはname
がデフォルトの初期コンテキストを基準にしている場合はnull。environment
- オブジェクトの作成で使用されるnullの可能性がある環境。attrs
- nullの可能性がある、objの属性をいくらか含む属性。attrsは必ずしもobjの属性をすべて持つ必要はない。オブジェクト・ファクトリがさらに属性を必要とする場合、ファクトリはobjか、あるいはnameとnameCtxを使用して属性を取得する必要がある。ファクトリはattrsを変更できない。Exception
- オブジェクトの生成中にこのオブジェクト・ファクトリが例外を検出し、ほかのオブジェクト・ファクトリが試行されない場合。DirectoryManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)
, NamingManager.getURLContext(java.lang.String, java.util.Hashtable<?, ?>)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.