org.apache.directory.api.ldap.codec.api
Class ExtendedResponseDecorator<R extends ExtendedResponse>

java.lang.Object
  extended by org.apache.directory.api.ldap.codec.api.MessageDecorator<M>
      extended by org.apache.directory.api.ldap.codec.decorators.ResponseDecorator<R>
          extended by org.apache.directory.api.ldap.codec.api.ExtendedResponseDecorator<R>
All Implemented Interfaces:
Decorator<R>, ExtendedResponse, Message, Response, ResultResponse
Direct Known Subclasses:
CancelResponseDecorator, CertGenerationResponseDecorator, GracefulDisconnectResponseDecorator, GracefulShutdownResponseDecorator, StoredProcedureResponseDecorator

public class ExtendedResponseDecorator<R extends ExtendedResponse>
extends ResponseDecorator<R>
implements ExtendedResponse

A decorator for the ExtendedResponse message

Author:
Apache Directory Project

Field Summary
protected  byte[] responseValue
           
 
Fields inherited from class org.apache.directory.api.ldap.codec.api.MessageDecorator
messageLength
 
Fields inherited from interface org.apache.directory.api.ldap.model.message.ExtendedResponse
TYPE
 
Constructor Summary
ExtendedResponseDecorator(LdapApiService codec, R decoratedMessage)
          Makes a ExtendedResponse encodable.
 
Method Summary
 int computeLength()
          Compute the ExtendedResponse length ExtendedResponse : 0x78 L1 | +--> LdapResult [+--> 0x8A L2 name [+--> 0x8B L3 response]] L1 = Length(LdapResult) [ + Length(0x8A) + Length(L2) + L2 [ + Length(0x8B) + Length(L3) + L3]] Length(ExtendedResponse) = Length(0x78) + Length(L1) + L1
 ByteBuffer encode(ByteBuffer buffer)
          Encode the ExtendedResponse message to a PDU.
 int getExtendedResponseLength()
           
 String getResponseName()
          Gets the OID uniquely identifying this extended response (a.k.a.
 byte[] getResponseNameBytes()
          Gets the responseName bytes.
 byte[] getResponseValue()
          
 void setExtendedResponseLength(int extendedResponseLength)
          Stores the encoded length for the ExtendedResponse
 void setResponseName(String oid)
          Sets the OID uniquely identifying this extended response (a.k.a.
 void setResponseNameBytes(byte[] responseNameBytes)
          Sets the OID bytes.
 void setResponseValue(byte[] responseValue)
          
 
Methods inherited from class org.apache.directory.api.ldap.codec.decorators.ResponseDecorator
getLdapResult, setLdapResult
 
Methods inherited from class org.apache.directory.api.ldap.codec.api.MessageDecorator
addAllControls, addControl, get, getCodecService, getControl, getControls, getControlsLength, getCurrentControl, getDecorated, getDecorator, getMessageId, getMessageLength, getType, hasControl, put, removeControl, setControlsLength, setMessageId, setMessageLength, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.directory.api.ldap.model.message.ResultResponse
getLdapResult
 
Methods inherited from interface org.apache.directory.api.ldap.model.message.Message
addAllControls, addControl, get, getControl, getControls, getMessageId, getType, hasControl, put, removeControl, setMessageId
 

Field Detail

responseValue

protected byte[] responseValue
Constructor Detail

ExtendedResponseDecorator

public ExtendedResponseDecorator(LdapApiService codec,
                                 R decoratedMessage)
Makes a ExtendedResponse encodable.

Parameters:
decoratedMessage - the decorated ExtendedResponse
Method Detail

getResponseNameBytes

public byte[] getResponseNameBytes()
Gets the responseName bytes.

Returns:
the responseName bytes of the extended response type.

setResponseNameBytes

public void setResponseNameBytes(byte[] responseNameBytes)
Sets the OID bytes.

Parameters:
responseNameBytes - the OID bytes of the extended response type.

setExtendedResponseLength

public void setExtendedResponseLength(int extendedResponseLength)
Stores the encoded length for the ExtendedResponse

Parameters:
extendedResponseLength - The encoded length

getExtendedResponseLength

public int getExtendedResponseLength()
Returns:
The encoded ExtendedResponse's length

getResponseName

public String getResponseName()
Gets the OID uniquely identifying this extended response (a.k.a. its name).

Specified by:
getResponseName in interface ExtendedResponse
Returns:
the OID of the extended response type.

setResponseName

public void setResponseName(String oid)
Sets the OID uniquely identifying this extended response (a.k.a. its name).

Specified by:
setResponseName in interface ExtendedResponse

getResponseValue

public byte[] getResponseValue()


setResponseValue

public void setResponseValue(byte[] responseValue)


computeLength

public int computeLength()
Compute the ExtendedResponse length ExtendedResponse : 0x78 L1 | +--> LdapResult [+--> 0x8A L2 name [+--> 0x8B L3 response]] L1 = Length(LdapResult) [ + Length(0x8A) + Length(L2) + L2 [ + Length(0x8B) + Length(L3) + L3]] Length(ExtendedResponse) = Length(0x78) + Length(L1) + L1

Specified by:
computeLength in interface Decorator<R extends ExtendedResponse>
Returns:
The ExtendedResponse length

encode

public ByteBuffer encode(ByteBuffer buffer)
                  throws EncoderException
Encode the ExtendedResponse message to a PDU. ExtendedResponse : LdapResult.encode() [0x8A LL response name] [0x8B LL response]

Specified by:
encode in interface Decorator<R extends ExtendedResponse>
Parameters:
buffer - The buffer where to put the PDU
Returns:
The PDU.
Throws:
EncoderException - if the buffer can't be encoded


Copyright © 2003-2013 The Apache Software Foundation. All Rights Reserved.