JavaTM 2 Platform
Standard Ed. 5.0

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

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
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。