JavaTM 2
Platform
Std.  Ed.  v1. 4.0

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 }
 
이 요구는 오브젝트 확장자(extension)의 캐릭터 라인과 임의의 ASN. 1 BER 로 encode 된 값으로 구성됩니다.

이 클래스의 메소드는 서비스 프로바이더로 사용되어 LDAP 서버에 보내는 비트를 구축합니다. 일반적으로, 어플리케이션은 이 인터페이스를 구현하는 클래스만을 처리하고 있어, 특정의 확장 조작의 요구에 응해 필요한 정보를 클래스에 제공합니다. 다음에 LDAPv3 확장 조작을 실행하기 위해서, 클래스는 인수로서LdapContext.extendedOperation() 메소드에 패스됩니다.

「시간 취득」의 확장 조작을 서포트하고 있는 LDAP 서버를 예를 들어 보겠습니다. 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
관련 항목:
ExtendedResponse , LdapContext.extendedOperation(javax.naming.ldap.ExtendedRequest)

메소드의 개요
 ExtendedResponse createExtendedResponse (String  id, byte[] berValue, int offset, int length)
          이 요구에 대응하는 응답 오브젝트를 작성합니다.
 byte[] getEncodedValue ()
          LDAP 의 확장 조작 요구의 ASN. 1 BER 로 encode 된 값을 검출합니다.
 String getID ()
          이 요구의 오브젝트의 식별자를 검출합니다.
 

메소드의 상세

getID

public String  getID()
이 요구의 오브젝트의 식별자를 검출합니다.

반환값:
LDAP 의 ExtendedRequest.requestName 컴퍼넌트를 나타내는 null 이외의 오브젝트 식별자의 캐릭터 라인

getEncodedValue

public byte[] getEncodedValue()
LDAP 의 확장 조작 요구의 ASN. 1 BER 로 encode 된 값을 검출합니다. 값이 비었을 경우, null 가 돌려주어집니다. 이 결과는 요구치의 태그 및 길이를 포함한 그대로 (raw)의 BER 바이트로 표시됩니다. 다만, 요구의 OID 는 표시되지 않습니다. 이 메소드는 LDAP 서버에 보내지는 확장 조작에 비트를 저장하기 위해(때문에), 서비스 프로바이더에 의해 불려 갑니다.

반환값:
LDAP 의 ExtendedRequest.requestValue 컴퍼넌트의 ASN. 1 BER 로 encode 된 내용을 나타내는 null 의 가능성이 있는 바이트 배열
예외:
IllegalStateException - 요구가 불충분해 무효인 데이터 및 상태를 포함하고 있기 (위해)때문에, encode 된 값이 검출되지 않았던 경우

createExtendedResponse

public ExtendedResponse  createExtendedResponse(String  id,
                                               byte[] berValue,
                                               int offset,
                                               int length)
                                        throws NamingException 
이 요구에 대응하는 응답 오브젝트를 작성합니다.

서비스 프로바이더가 확장 조작의 요구를 LDAP 서버에 보낸 후, 이 서버로부터 응답을 받아들입니다. 조작의 요구가 실패하면(자), 프로바이더는 NamingException 를 슬로우 합니다. 조작이 정상적으로 종료하면(자), 프로바이더는 이 메소드를 응답하러 돌아온 데이터를 사용해 호출합니다. 확장 조작의 요구에 임의의 ExtendedResponse 인터페이스를 구현하는 클래스를 돌려주는 것이, 이 메소드의 작업이 됩니다.

예를 들어, Start TLS 확장 요구 클래스는 Start TLS 확장 응답의 처리 방법을 인식하기 위해서, ExtendedResponse 를 구현하는 클래스를 작성합니다.

파라미터:
id - 응답 컨트롤의 null 의 가능성이 있는 오브젝트 식별자
berValue - null 의 가능성이 있는 응답 컨트롤의 ASN. 1 BER 로 encode 된 값. 이 값은 응답치의 태그 및 길이를 포함한 raw BER 바이트로 표시된다. 다만, 응답의 OID 는 표시되지 않는
offset - 사용 바이트의 berValue 의 개시 위치
length - berValue 의 사용 바이트수
반환값:
null 이외의 오브젝트
예외:
NamingException - 에러이기 때문에 확장 응답을 작성할 수 없는 경우
관련 항목:
ExtendedResponse

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

버그의 보고와 기능의 리퀘스트
이외의 API 레퍼런스 및 개발자용 문서에 대해서는 Java 2 SDK SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Java, Java 2 D, 및 JDBC 는 미국 및 그 외의 나라에 있어서의 미국 Sun Microsystems, Inc. 의 상표 혹은 등록상표입니다.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.