- すべてのスーパー・インタフェース:
ObjectFactory
JNDIフレームワークでは、オブジェクト・ファクトリを使用してオブジェクト実装を動的にロードできます。 詳細は、ObjectFactory
を参照してください。
DirObjectFactory
は、getObjectInstance()
メソッドにAttributes
インスタンスを指定できるようにすることで、ObjectFactory
を拡張します。 DirObjectFactory
実装は、DirContext
サービス・プロバイダによって使用されることを意図しています。 サービス・プロバイダは、ディレクトリからオブジェクトを読み込むだけでなく、オブジェクト・ファクトリがオブジェクトを処理する必要があるかどうかをそのファクトリが調べるのに役立つ属性をあらかじめ持っておくことができます。 たとえばLDAPスタイルのサービス・プロバイダは、オブジェクトの「objectclass」を読み込んでおくことができます。 CORBAオブジェクト・ファクトリは「objectclass=corbaObject」というLDAPエントリだけを対象としているとします。 LDAPサービス・プロバイダによって指定された属性を使って、CORBAオブジェクト・ファクトリは関係のないオブジェクトをすばやく排除でき、CORBA以外のオブジェクト・ファクトリはCORBA関連のLDAPエントリをすばやく排除できます。
- 導入されたバージョン:
- 1.3
- 関連項目:
-
メソッドのサマリー
修飾子と型メソッド説明getObjectInstance
(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment, Attributes attrs) 位置情報または参照情報、および指定された属性を使って、オブジェクトを生成します。インタフェースjavax.naming.spi.ObjectFactoryで宣言されたメソッド
getObjectInstance
-
メソッドの詳細
-
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
を拡張するため、実質的に2つのgetObjectInstance()
メソッドがあり、一方はattributes引数によって他方とは異なります。DirObjectFactory
を実装するファクトリの場合、DirectoryManager.getObjectInstance()
はattributes引数を受け入れるメソッドのみを使用し、NamingManager.getObjectInstance()
はattributes引数を受け入れないメソッドのみを使用します。DirObjectFactory
に等しく適用されるオブジェクト・ファクトリのURLコンテキスト・ファクトリおよびその他のプロパティの説明は、ObjectFactory
を参照してください。name
、attrs
およびenvironment
パラメータは、コール元が所有します。 実装はこれらのオブジェクトを変更せず、そのオブジェクトに対する参照も保持しませんが、複製またはコピーに対する参照を保持することがあります。- パラメータ:
obj
- オブジェクトの作成で使用できる位置または参照情報を含むnullの可能性があるオブジェクト。name
-nameCtx
を基準にしたこのオブジェクトの名前、または名前が指定されていない場合はnull。nameCtx
-name
パラメータが基準にして指定されているコンテキスト、またはname
がデフォルトの初期コンテキストを基準にしている場合はnull。environment
- オブジェクトの作成で使用されるnullの可能性がある環境。attrs
-obj
の属性の一部を含むNULL属性である可能性があります。attrs
には、必ずしもすべてのobj
属性が含まれているとはかぎりません。 オブジェクト・ファクトリでより多くの属性が必要な場合は、obj
またはname
とnameCtx
のいずれかを使用して取得する必要があります。 ファクトリはattrsを変更できない。- 戻り値:
- 生成されたオブジェクト。オブジェクトを生成できない場合はnull。
- 例外:
Exception
- オブジェクトの生成中にこのオブジェクト・ファクトリが例外を検出し、ほかのオブジェクト・ファクトリが試行されない場合。- 関連項目:
-