org.apache.directory.api.ldap.codec.decorators
Class ModifyDnRequestDecorator

java.lang.Object
  extended by org.apache.directory.api.ldap.codec.api.MessageDecorator<M>
      extended by org.apache.directory.api.ldap.codec.decorators.RequestDecorator<M>
          extended by org.apache.directory.api.ldap.codec.decorators.ResultResponseRequestDecorator<M,R>
              extended by org.apache.directory.api.ldap.codec.decorators.SingleReplyRequestDecorator<ModifyDnRequest,ModifyDnResponse>
                  extended by org.apache.directory.api.ldap.codec.decorators.ModifyDnRequestDecorator
All Implemented Interfaces:
Decorator<ModifyDnRequest>, AbandonableRequest, Message, ModifyDnRequest, Request, ResultResponseRequest<ModifyDnResponse>, SingleReplyRequest<ModifyDnResponse>

public class ModifyDnRequestDecorator
extends SingleReplyRequestDecorator<ModifyDnRequest,ModifyDnResponse>
implements ModifyDnRequest

A decorator for the ModifyDnRequest message

Author:
Apache Directory Project

Field Summary
 
Fields inherited from class org.apache.directory.api.ldap.codec.api.MessageDecorator
messageLength
 
Fields inherited from interface org.apache.directory.api.ldap.model.message.ModifyDnRequest
RESP_TYPE, TYPE
 
Constructor Summary
ModifyDnRequestDecorator(LdapApiService codec, ModifyDnRequest decoratedMessage)
          Makes a ModifyDnRequest encodable.
 
Method Summary
 ModifyDnRequest addAllControls(Control[] controls)
          Adds an array of controls to this Message.
 ModifyDnRequest addControl(Control control)
          Adds a control to this Message.
 int computeLength()
          Compute the ModifyDNRequest length ModifyDNRequest :
 ByteBuffer encode(ByteBuffer buffer)
          Encode the ModifyDNRequest message to a PDU.
 boolean getDeleteOldRdn()
          Gets the flag which determines if the old Rdn attribute is to be removed from the entry when the new Rdn is used in its stead.
 int getModifyDnResponseLength()
          Stores the encoded length for the ModifyDnRequest
 Dn getName()
          Gets the entry's distinguished name representing the entry PDU field.
 Rdn getNewRdn()
          Gets the new relative distinguished name for the entry which represents the PDU's newrdn field.
 Dn getNewSuperior()
          Gets the optional distinguished name of the new superior entry where the candidate entry is to be moved.
 boolean isMove()
          Gets whether or not this request is a Dn change resulting in a move operation.
 ModifyDnRequest removeControl(Control control)
          Deletes a control removing it from this Message.
 ModifyDnRequest setDeleteOldRdn(boolean deleteOldRdn)
          Sets the flag which determines if the old Rdn attribute is to be removed from the entry when the new Rdn is used in its stead.
 ModifyDnRequest setMessageId(int messageId)
          Sets the Message ID for this request
 void setModifyDnRequestLength(int modifyDnRequestLength)
           
 ModifyDnRequest setName(Dn name)
          Sets the entry's distinguished name representing the entry PDU field.
 ModifyDnRequest setNewRdn(Rdn newRdn)
          Sets the new relative distinguished name for the entry which represents the PDU's newrdn field.
 ModifyDnRequest setNewSuperior(Dn newSuperior)
          Sets the optional distinguished name of the new superior entry where the candidate entry is to be moved.
 
Methods inherited from class org.apache.directory.api.ldap.codec.decorators.SingleReplyRequestDecorator
abandon, addAbandonListener, getResponseType, isAbandoned
 
Methods inherited from class org.apache.directory.api.ldap.codec.decorators.ResultResponseRequestDecorator
getResultResponse, hasResponse
 
Methods inherited from class org.apache.directory.api.ldap.codec.api.MessageDecorator
get, getCodecService, getControl, getControls, getControlsLength, getCurrentControl, getDecorated, getDecorator, getMessageId, getMessageLength, getType, hasControl, put, setControlsLength, 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.SingleReplyRequest
getResponseType
 
Methods inherited from interface org.apache.directory.api.ldap.model.message.ResultResponseRequest
getResultResponse
 
Methods inherited from interface org.apache.directory.api.ldap.model.message.Request
hasResponse
 
Methods inherited from interface org.apache.directory.api.ldap.model.message.Message
get, getControl, getControls, getMessageId, getType, hasControl, put
 
Methods inherited from interface org.apache.directory.api.ldap.model.message.AbandonableRequest
abandon, addAbandonListener, isAbandoned
 

Constructor Detail

ModifyDnRequestDecorator

public ModifyDnRequestDecorator(LdapApiService codec,
                                ModifyDnRequest decoratedMessage)
Makes a ModifyDnRequest encodable.

Parameters:
decoratedMessage - the decorated ModifyDnRequest
Method Detail

setModifyDnRequestLength

public void setModifyDnRequestLength(int modifyDnRequestLength)
Parameters:
modifyDnRequestLength - The encoded ModifyDnRequest's length

getModifyDnResponseLength

public int getModifyDnResponseLength()
Stores the encoded length for the ModifyDnRequest

Returns:
the encoded length

getName

public Dn getName()
Gets the entry's distinguished name representing the entry PDU field.

Specified by:
getName in interface ModifyDnRequest
Returns:
the distinguished name of the entry.

setName

public ModifyDnRequest setName(Dn name)
Sets the entry's distinguished name representing the entry PDU field.

Specified by:
setName in interface ModifyDnRequest
Parameters:
name - the distinguished name of the entry.
Returns:
The ModifyDnRequest instance

getNewRdn

public Rdn getNewRdn()
Gets the new relative distinguished name for the entry which represents the PDU's newrdn field.

Specified by:
getNewRdn in interface ModifyDnRequest
Returns:
the relative dn with one component

setNewRdn

public ModifyDnRequest setNewRdn(Rdn newRdn)
Sets the new relative distinguished name for the entry which represents the PDU's newrdn field.

Specified by:
setNewRdn in interface ModifyDnRequest
Parameters:
newRdn - the relative dn with one component
Returns:
The ModifyDnRequest instance

getDeleteOldRdn

public boolean getDeleteOldRdn()
Gets the flag which determines if the old Rdn attribute is to be removed from the entry when the new Rdn is used in its stead. This property corresponds to the deleteoldrdn.

Specified by:
getDeleteOldRdn in interface ModifyDnRequest
Returns:
true if the old rdn is to be deleted, false if it is not

setDeleteOldRdn

public ModifyDnRequest setDeleteOldRdn(boolean deleteOldRdn)
Sets the flag which determines if the old Rdn attribute is to be removed from the entry when the new Rdn is used in its stead. This property corresponds to the deleteoldrdn.

Specified by:
setDeleteOldRdn in interface ModifyDnRequest
Parameters:
deleteOldRdn - true if the old rdn is to be deleted, false if it is not
Returns:
The ModifyDnRequest instance

getNewSuperior

public Dn getNewSuperior()
Gets the optional distinguished name of the new superior entry where the candidate entry is to be moved. This property corresponds to the PDU's newSuperior field. May be null representing a simple Rdn change rather than a move operation.

Specified by:
getNewSuperior in interface ModifyDnRequest
Returns:
the dn of the superior entry the candidate entry is moved under.

setNewSuperior

public ModifyDnRequest setNewSuperior(Dn newSuperior)
Sets the optional distinguished name of the new superior entry where the candidate entry is to be moved. This property corresponds to the PDU's newSuperior field. May be null representing a simple Rdn change rather than a move operation. Setting this property to a non-null value toggles the move flag obtained via the isMove method.

Specified by:
setNewSuperior in interface ModifyDnRequest
Parameters:
newSuperior - the dn of the superior entry the candidate entry for Dn modification is moved under.
Returns:
The ModifyDnRequest instance

isMove

public boolean isMove()
Gets whether or not this request is a Dn change resulting in a move operation. Setting the newSuperior property to a non-null name, toggles this flag.

Specified by:
isMove in interface ModifyDnRequest
Returns:
true if the newSuperior property is NOT null, false otherwise.

setMessageId

public ModifyDnRequest setMessageId(int messageId)
Sets the Message ID for this request

Specified by:
setMessageId in interface Message
Specified by:
setMessageId in interface ModifyDnRequest
Overrides:
setMessageId in class MessageDecorator<ModifyDnRequest>
Parameters:
messageId - The message Id
Returns:
A Message reference

addControl

public ModifyDnRequest addControl(Control control)
                           throws MessageException
Adds a control to this Message.

Specified by:
addControl in interface Message
Specified by:
addControl in interface ModifyDnRequest
Overrides:
addControl in class MessageDecorator<ModifyDnRequest>
Parameters:
control - the control to add.
Returns:
A Message reference
Throws:
MessageException - if controls cannot be added to this Message or the control is not known etc.

addAllControls

public ModifyDnRequest addAllControls(Control[] controls)
                               throws MessageException
Adds an array of controls to this Message.

Specified by:
addAllControls in interface Message
Specified by:
addAllControls in interface ModifyDnRequest
Overrides:
addAllControls in class MessageDecorator<ModifyDnRequest>
Parameters:
controls - the controls to add.
Returns:
A Message reference
Throws:
MessageException - if controls cannot be added to this Message or they are not known etc.

removeControl

public ModifyDnRequest removeControl(Control control)
                              throws MessageException
Deletes a control removing it from this Message.

Specified by:
removeControl in interface Message
Specified by:
removeControl in interface ModifyDnRequest
Overrides:
removeControl in class MessageDecorator<ModifyDnRequest>
Parameters:
control - the control to remove.
Returns:
A Message reference
Throws:
MessageException - if controls cannot be added to this Message or the control is not known etc.

computeLength

public int computeLength()
Compute the ModifyDNRequest length ModifyDNRequest :
 0x6C L1
  |
  +--> 0x04 L2 entry
  +--> 0x04 L3 newRDN
  +--> 0x01 0x01 (true/false) deleteOldRDN (3 bytes)
 [+--> 0x80 L4 newSuperior ] 
 
 L2 = Length(0x04) + Length(Length(entry)) + Length(entry) 
 L3 = Length(0x04) + Length(Length(newRDN)) + Length(newRDN) 
 L4 = Length(0x80) + Length(Length(newSuperior)) + Length(newSuperior)
 L1 = L2 + L3 + 3 [+ L4] 
 
 Length(ModifyDNRequest) = Length(0x6C) + Length(L1) + L1
 

Specified by:
computeLength in interface Decorator<ModifyDnRequest>
Returns:
The PDU's length of a ModifyDN Request

encode

public ByteBuffer encode(ByteBuffer buffer)
                  throws EncoderException
Encode the ModifyDNRequest message to a PDU. ModifyDNRequest :
 0x6C LL
   0x04 LL entry
   0x04 LL newRDN
   0x01 0x01 deleteOldRDN
   [0x80 LL newSuperior]
 

Specified by:
encode in interface Decorator<ModifyDnRequest>
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.