JavaTM 2 Platform
Std. Ed. v1.3

javax.naming.spi
インタフェース DirObjectFactory

すべてのスーパーインタフェース:
ObjectFactory

public interface DirObjectFactory
extends ObjectFactory

このインタフェースは、そのオブジェクトに関するオブジェクトと属性を指定されたオブジェクトを生成するファクトリを表します。

JNDI フレームワークでは、オブジェクトファクトリを使ってオブジェクト実装を動的にロードできます。詳細は ObjectFactory を参照してください。

DirObjectFactoryObjectFactory を拡張して、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

public Object getObjectInstance(Object obj,
                                Name name,
                                Context nameCtx,
                                Hashtable environment,
                                Attributes attrs)
                         throws Exception
位置情報または参照情報、および指定された属性を使って、オブジェクトを生成します。

このオブジェクトの特殊要件は、environment を使って指定されます。こうした環境プロパティの一例としては、ユーザ識別情報があります。

DirectoryManager.getObjectInstance() はオブジェクトファクトリに連続的にロードします。DirObjectFactory を検出すると、DirectoryManager.getObjectInstance()DirObjectFactory.getObjectInstance() を呼び出します。そうでない場合は ObjectFactory.getObjectInstance() を呼び出します。ファクトリが null 以外の答を生成するまで、DirectoryManager.getObjectInstance() はこれを続けます。

オブジェクトファクトリが例外をスローすると、その例外は DirectoryManager.getObjectInstance() の呼び出し側に渡されます。null 以外の答を生成する可能性のある他のファクトリの検索は停止します。オブジェクトファクトリは、それが目的の唯一のファクトリであり他のオブジェクトファクトリを検索する必要がないことが確実な場合に限り、例外をスローするようにします。このファクトリが指定された引数でオブジェクトを生成できない場合は、null を返すようにします。

DirObjectFactoryObjectFactory を拡張するので、ObjectFactory は結果的に 2 つの getObjectInstance() メソッドを持ちます。この 2 つのメソッドは属性引数が異なります。DirObjectFactory を実装するファクトリを指定すると、DirectoryManager.getObjectInstance() は属性引数を受け入れるメソッドだけを使用し、NamingManager.getObjectInstance() は属性引数を受け入れないメソッドだけを使用します。

DirObjectFactory に同じように適用される URL コンテキストファクトリおよびオブジェクトファクトリの他のプロパティの説明については、ObjectFactory を参照してください。

nameattrs、および environment の各パラメータは、呼び出し側が所有します。実装はこれらのオブジェクトを変更せず、そのオブジェクトに対する参照も保持しませんが、複製またはコピーに対する参照を保持することがあります。

パラメータ:
obj - オブジェクトの生成に使える位置情報または参照情報を格納する、null の可能性があるオブジェクト
name - nameCtx に関連するこのオブジェクトの名前、または名前を指定しない場合は null
nameCtx - name パラメータの指定に関連するコンテキスト、または name がデフォルトの初期コンテキストに関連する場合は null
environment - null の可能性がある、オブジェクトの生成に使用される環境
attrs - null の可能性がある、obj の属性をいくらか含む属性。attrs は必ずしも obj の属性をすべて持つ必要はない。オブジェクトファクトリがさらに属性を必要とする場合、ファクトリは obj か、あるいは namenameCtx を使って属性を取得する必要がある。ファクトリは 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)

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.