- すべてのスーパー・インタフェース:
ObjectFactory
public interface DirObjectFactory extends ObjectFactory
JNDIフレームワークでは、オブジェクト・ファクトリを使用してオブジェクト実装を動的にロードできます。 詳細については、ObjectFactory
を参照してください。
DirObjectFactory
はObjectFactory
を拡張して、getObjectInstance()
メソッドにAttributes
インスタンスを指定できるようにします。 DirObjectFactory
実装はDirContext
サービス・プロバイダが使用するものです。 サービス・プロバイダは、ディレクトリからオブジェクトを読み込むだけでなく、オブジェクト・ファクトリがオブジェクトを処理する必要があるかどうかをそのファクトリが調べるのに役立つ属性をあらかじめ持っておくことができます。 たとえばLDAPスタイルのサービス・プロバイダは、オブジェクトの「objectclass」を読み込んでおくことができます。 CORBAオブジェクト・ファクトリは「objectclass=corbaObject」というLDAPエントリだけを対象としているとします。 LDAPサービス・プロバイダによって指定された属性を使って、CORBAオブジェクト・ファクトリは関係のないオブジェクトをすばやく排除でき、CORBA以外のオブジェクト・ファクトリはCORBA関連のLDAPエントリをすばやく排除できます。
- 導入されたバージョン:
- 1.3
- 関連項目:
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)
位置情報または参照情報、および指定された属性を使って、オブジェクトを生成します。インタフェース 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
を拡張するので、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を変更できない。- 戻り値:
- 生成されたオブジェクト。オブジェクトを生成できない場合はnull。
- 例外:
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<?, ?>)
-