モジュール java.naming
パッケージ javax.naming.ldap

インタフェースExtendedRequest

すべてのスーパー・インタフェース:
Serializable
既知のすべての実装クラス:
StartTlsRequest

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サーバーが「時間取得」の拡張操作をサポートしたとします。 それは、GetTimeRequestおよびGetTimeResponseのクラスを次のように指定します。

 public class GetTimeRequest implements ExtendedRequest {
     public GetTimeRequest() {... };
     public 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;
     public 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
関連項目: