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, 2013, Oracle and/or its affiliates. All rights reserved.