JavaTM 2 Platform
Std. Ed. v1.3

javax.naming.ldap
インタフェース ExtendedRequest

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

public interface ExtendedRequest
extends Serializable

このインタフェースは、「RFC 2251」で定義されている LDAPv3 拡張操作の要求を表示します。

     ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
              requestName      [0] LDAPOID,
              requestValue     [1] OCTET STRING OPTIONAL }
 
この要求は、オブジェクト拡張子の文字列と任意の ASN.1 BER で符号化された値で構成されます。

このクラスのメソッドはサービスプロバイダで使用され、LDAP サーバに送るビットを構築します。一般に、アプリケーションはクラスだけを処理しており、特定の拡張操作の要求に応えて必要な情報をクラスに提供します。次に LDAPv3 拡張操作を実行するために、クラスは引数として、LdapContext.extendedOperation() メソッドにパスされます。

「時間取得」の拡張操作をサポートしている LDAP サーバを例にとってみます。LDAP サーバは、GetTimeRequest および GetTimeResponse のクラスを次のように指定します。

 public class GetTimeRequest implements ExtendedRequest {
     public GetTimeRequest() {... };
     ExtendedResponse createExtendedResponse(String id, byte[] berValue, 
 					int offset, int length) 
	    throws NamingException {
         return new GetTimeResponse(id, berValue, offset, length);
     }
     ...
 }
 public class GetTimeResponse implements ExtendedResponse {
     long time;
     GetTimeResponse(String id, byte[] berValue, int offset, int length) 
         throws NamingException {
         time =	... // decode berValue to get time
     }
     public java.util.Date getDate() { return new java.util.Date(time) };
     public long getTime() { return time };
     ...
 }
プログラムはこれらのクラスを次のように使用します。
 GetTimeResponse resp =
 	(GetTimeResponse) ectx.extendedOperation(new GetTimeRequest());
 long time = resp.getTime();

導入されたバージョン:
1.3
関連項目:
ExtendedResponse, LdapContext.extendedOperation(javax.naming.ldap.ExtendedRequest)

メソッドの概要
 ExtendedResponse createExtendedResponse(String id, byte[] berValue, int offset, int length)
          この要求に対応する応答オブジェクトを作成します。
 byte[] getEncodedValue()
          LDAP の拡張操作要求によって ASN.1 BER で符号化された値を検出します。
 String getID()
          この要求のオブジェクトの識別子を検出します。
 

メソッドの詳細

getID

public String getID()
この要求のオブジェクトの識別子を検出します。
戻り値:
LDAP の ExtendedRequest.requestName コンポーネントを示す null 以外のオブジェクト識別子の文字列

getEncodedValue

public byte[] getEncodedValue()
LDAP の拡張操作要求によって ASN.1 BER で符号化された値を検出します。値が空の場合、null が返されます。 この結果は、要求値のタグおよび長さを含むそのまま (raw) の BER バイトで表示されます。ただし、要求の OID は表示されません。このメソッドは、LDAP サーバに送られる拡張操作にビットを格納するため、サービスプロバイダによって呼び出されます。
戻り値:
LDAP の ExtendedRequest.requestValue コンポーネントの ASN.1 BER で符号化された内容を示す null の可能性があるバイト配列
例外:
IllegalStateException - 要求が不十分で無効なデータおよび状態を含んでいるため、符号化された値が検出されなかった場合

createExtendedResponse

public ExtendedResponse createExtendedResponse(String id,
                                               byte[] berValue,
                                               int offset,
                                               int length)
                                        throws NamingException
この要求に対応する応答オブジェクトを作成します。

サービスプロバイダが拡張操作の要求を LDAP サーバに送った後、このサーバから応答を受け取ります。操作の要求が失敗すると、プロバイダは NamingException をスローします。操作が正常に終了すると、プロバイダはこのメソッドを応答に戻ったデータを使って呼び出します。拡張操作の要求に任意の ExtendedResponse インタフェースを実装するクラスを返すのが、このメソッドのジョブになります。

たとえば、Start TLS 拡張要求のクラスがこの要求の処理方法を知る必要がある場合には、ExtendedResponse を実装するクラスを作成してください。

パラメータ:
id - 応答コントロールの null の可能性があるオブジェクト識別子
berValue - null の可能性のある応答コントロールの ASN.1 BER で符号化された値。この値は、応答値のタグおよび長さを含む raw BER バイトで表示される。ただし、応答の OID は表示されない
offset - 使用バイトの berValue の開始位置
length - berValue の使用バイト数
戻り値:
null 以外のオブジェクト
例外:
NamingException - エラーのため拡張応答が作成できない場合
関連項目:
ExtendedResponse

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.