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

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<ModifyRequest,ModifyResponse>
                  extended by org.apache.directory.api.ldap.codec.decorators.ModifyRequestDecorator
All Implemented Interfaces:
Decorator<ModifyRequest>, AbandonableRequest, Message, ModifyRequest, Request, ResultResponseRequest<ModifyResponse>, SingleReplyRequest<ModifyResponse>

public class ModifyRequestDecorator
extends SingleReplyRequestDecorator<ModifyRequest,ModifyResponse>
implements ModifyRequest

A decorator for the ModifyRequest 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.ModifyRequest
RESP_TYPE, TYPE
 
Constructor Summary
ModifyRequestDecorator(LdapApiService codec, ModifyRequest decoratedMessage)
          Makes a ModifyRequest encodable.
 
Method Summary
 ModifyRequest add(Attribute attr)
          marks a given attribute for addition in the target entry.
 ModifyRequest add(String attributeName, byte[]... attributeValue)
          
 ModifyRequest add(String attributeName, String... attributeValue)
          marks a given attribute for addition in the target entry with the given values.
 ModifyRequest addAllControls(Control[] controls)
          Adds an array of controls to this Message.
 void addAttributeTypeAndValues(String type)
          Add a new attributeTypeAndValue
 void addAttributeValue(byte[] value)
          Add a new value to the current attribute
 void addAttributeValue(String value)
          Add a new value to the current attribute
 ModifyRequest addControl(Control control)
          Adds a control to this Message.
 ModifyRequest addModification(Attribute attr, ModificationOperation modOp)
          Add a modification
 ModifyRequest addModification(Modification mod)
          Adds a ModificationItem to the set of modifications composing this modify request.
 int computeLength()
          Compute the ModifyRequest length ModifyRequest : 0x66 L1 | +--> 0x04 L2 object +--> 0x30 L3 modifications | +--> 0x30 L4-1 modification sequence | | | +--> 0x0A 0x01 (0..2) operation | +--> 0x30 L5-1 modification | | | +--> 0x04 L6-1 type | +--> 0x31 L7-1 vals | | | +--> 0x04 L8-1-1 attributeValue | +--> 0x04 L8-1-2 attributeValue | +--> ...
 ByteBuffer encode(ByteBuffer buffer)
          Encode the ModifyRequest message to a PDU.
 List<Integer> getChangeLength()
           
 int getChangesLength()
           
 String getCurrentAttributeType()
          Return the current attribute's type
 List<Integer> getModificationLength()
           
 Collection<Modification> getModifications()
          Gets an immutable Collection of modification items representing the atomic changes to perform on the candidate entry to modify.
 int getModifyRequestLength()
           
 Dn getName()
          Gets the distinguished name of the entry to be modified by this request.
 List<Integer> getValuesLength()
           
 ModifyRequest remove(Attribute attr)
          marks a given attribute for removal from the target entry.
 ModifyRequest remove(String attributeName, byte[]... attributeValue)
          
 ModifyRequest remove(String attributeName, String... attributeValue)
          marks a given attribute for removal with the given values from the target entry.
 ModifyRequest removeControl(Control control)
          Deletes a control removing it from this Message.
 ModifyRequest removeModification(Modification mod)
          Removes a ModificationItem to the set of modifications composing this modify request.
 ModifyRequest replace(Attribute attr)
          marks a given attribute for replacement in the target entry.
 ModifyRequest replace(String attributeName)
          
 ModifyRequest replace(String attributeName, byte[]... attributeValue)
          
 ModifyRequest replace(String attributeName, String... attributeValue)
          marks a given attribute for replacement with the given values in the target entry.
 void setChangeLength(List<Integer> changeLength)
           
 void setChangesLength(int changesLength)
           
 void setCurrentOperation(int currentOperation)
          Store the current operation
 ModifyRequest setMessageId(int messageId)
          Sets the Message ID for this request
 void setModificationLength(List<Integer> modificationLength)
           
 void setModifyRequestLength(int modifyRequestLength)
           
 ModifyRequest setName(Dn name)
          Sets the distinguished name of the entry to be modified by this request.
 void setValuesLength(List<Integer> valuesLength)
           
 
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

ModifyRequestDecorator

public ModifyRequestDecorator(LdapApiService codec,
                              ModifyRequest decoratedMessage)
Makes a ModifyRequest encodable.

Parameters:
decoratedMessage - the decorated ModifyRequest
Method Detail

setModifyRequestLength

public void setModifyRequestLength(int modifyRequestLength)
Parameters:
modifyRequestLength - The encoded ModifyRequest's length

getModifyRequestLength

public int getModifyRequestLength()
Returns:
The encoded length

setChangesLength

public void setChangesLength(int changesLength)
Parameters:
changesLength - The encoded Changes length

getChangesLength

public int getChangesLength()
Returns:
The encoded length

setChangeLength

public void setChangeLength(List<Integer> changeLength)

getChangeLength

public List<Integer> getChangeLength()
Returns:
The list of encoded Change length

setModificationLength

public void setModificationLength(List<Integer> modificationLength)
Parameters:
modificationLength - The list of encoded Modification length

getModificationLength

public List<Integer> getModificationLength()
Returns:
The list of encoded Modification length

setValuesLength

public void setValuesLength(List<Integer> valuesLength)
Parameters:
valuesLength - The list of encoded Values length

getValuesLength

public List<Integer> getValuesLength()
Returns:
The list of encoded Values length

setCurrentOperation

public void setCurrentOperation(int currentOperation)
Store the current operation

Parameters:
currentOperation - The currentOperation to set.

addAttributeTypeAndValues

public void addAttributeTypeAndValues(String type)
Add a new attributeTypeAndValue

Parameters:
type - The attribute's name

getCurrentAttributeType

public String getCurrentAttributeType()
Return the current attribute's type


addAttributeValue

public void addAttributeValue(byte[] value)
                       throws LdapException
Add a new value to the current attribute

Parameters:
value - The value to add
Throws:
LdapException

addAttributeValue

public void addAttributeValue(String value)
                       throws LdapException
Add a new value to the current attribute

Parameters:
value - The value to add
Throws:
LdapException

getName

public Dn getName()
Gets the distinguished name of the entry to be modified by this request. This property represents the PDU's object field.

Specified by:
getName in interface ModifyRequest
Returns:
the Dn of the modified entry.

setName

public ModifyRequest setName(Dn name)
Sets the distinguished name of the entry to be modified by this request. This property represents the PDU's object field.

Specified by:
setName in interface ModifyRequest
Parameters:
name - the Dn of the modified entry.
Returns:
The ModifyRequest instance

getModifications

public Collection<Modification> getModifications()
Gets an immutable Collection of modification items representing the atomic changes to perform on the candidate entry to modify.

Specified by:
getModifications in interface ModifyRequest
Returns:
an immutable Collection of Modification instances.

addModification

public ModifyRequest addModification(Modification mod)
Adds a ModificationItem to the set of modifications composing this modify request.

Specified by:
addModification in interface ModifyRequest
Parameters:
mod - a Modification to add.
Returns:
The ModifyRequest instance

removeModification

public ModifyRequest removeModification(Modification mod)
Removes a ModificationItem to the set of modifications composing this modify request.

Specified by:
removeModification in interface ModifyRequest
Parameters:
mod - a Modification to remove.
Returns:
The ModifyRequest instance

remove

public ModifyRequest remove(String attributeName,
                            String... attributeValue)
marks a given attribute for removal with the given values from the target entry.

Specified by:
remove in interface ModifyRequest
Parameters:
attributeName - name of the attribute to be added
attributeValue - values of the attribute
Returns:
The ModifyRequest instance

remove

public ModifyRequest remove(String attributeName,
                            byte[]... attributeValue)

Specified by:
remove in interface ModifyRequest
See Also:
ModifyRequest.remove(String, String...)

remove

public ModifyRequest remove(Attribute attr)
marks a given attribute for removal from the target entry.

Specified by:
remove in interface ModifyRequest
Parameters:
attr - the attribute to be added
Returns:
The ModifyRequest instance

addModification

public ModifyRequest addModification(Attribute attr,
                                     ModificationOperation modOp)
Add a modification

Specified by:
addModification in interface ModifyRequest
Parameters:
attr - The attribute to be modified
modOp - The operation
Returns:
The ModifyRequest instance

add

public ModifyRequest add(String attributeName,
                         String... attributeValue)
marks a given attribute for addition in the target entry with the given values.

Specified by:
add in interface ModifyRequest
Parameters:
attributeName - name of the attribute to be added
attributeValue - values of the attribute
Returns:
The ModifyRequest instance

add

public ModifyRequest add(String attributeName,
                         byte[]... attributeValue)

Specified by:
add in interface ModifyRequest
See Also:
ModifyRequest.add(String, String...)

add

public ModifyRequest add(Attribute attr)
marks a given attribute for addition in the target entry.

Specified by:
add in interface ModifyRequest
Parameters:
attr - the attribute to be added
Returns:
The ModifyRequest instance

replace

public ModifyRequest replace(String attributeName)

Specified by:
replace in interface ModifyRequest
See Also:
ModifyRequest.replace(String, String...)

replace

public ModifyRequest replace(String attributeName,
                             String... attributeValue)
marks a given attribute for replacement with the given values in the target entry.

Specified by:
replace in interface ModifyRequest
Parameters:
attributeName - name of the attribute to be added
attributeValue - values of the attribute
Returns:
The ModifyRequest instance

replace

public ModifyRequest replace(String attributeName,
                             byte[]... attributeValue)

Specified by:
replace in interface ModifyRequest
See Also:
ModifyRequest.replace(String, String...)

replace

public ModifyRequest replace(Attribute attr)
marks a given attribute for replacement in the target entry.

Specified by:
replace in interface ModifyRequest
Parameters:
attr - the attribute to be added
Returns:
The ModifyRequest instance

setMessageId

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

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

addControl

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

Specified by:
addControl in interface Message
Specified by:
addControl in interface ModifyRequest
Overrides:
addControl in class MessageDecorator<ModifyRequest>
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 ModifyRequest addAllControls(Control[] controls)
                             throws MessageException
Adds an array of controls to this Message.

Specified by:
addAllControls in interface Message
Specified by:
addAllControls in interface ModifyRequest
Overrides:
addAllControls in class MessageDecorator<ModifyRequest>
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 ModifyRequest removeControl(Control control)
                            throws MessageException
Deletes a control removing it from this Message.

Specified by:
removeControl in interface Message
Specified by:
removeControl in interface ModifyRequest
Overrides:
removeControl in class MessageDecorator<ModifyRequest>
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 ModifyRequest length ModifyRequest : 0x66 L1 | +--> 0x04 L2 object +--> 0x30 L3 modifications | +--> 0x30 L4-1 modification sequence | | | +--> 0x0A 0x01 (0..2) operation | +--> 0x30 L5-1 modification | | | +--> 0x04 L6-1 type | +--> 0x31 L7-1 vals | | | +--> 0x04 L8-1-1 attributeValue | +--> 0x04 L8-1-2 attributeValue | +--> ... | +--> 0x04 L8-1-i attributeValue | +--> ... | +--> 0x04 L8-1-n attributeValue | +--> 0x30 L4-2 modification sequence . | . +--> 0x0A 0x01 (0..2) operation . +--> 0x30 L5-2 modification | +--> 0x04 L6-2 type +--> 0x31 L7-2 vals | +--> 0x04 L8-2-1 attributeValue +--> 0x04 L8-2-2 attributeValue +--> ... +--> 0x04 L8-2-i attributeValue +--> ... +--> 0x04 L8-2-n attributeValue

Specified by:
computeLength in interface Decorator<ModifyRequest>
Returns:
The object's computed length

encode

public ByteBuffer encode(ByteBuffer buffer)
                  throws EncoderException
Encode the ModifyRequest message to a PDU. ModifyRequest :
 0x66 LL
   0x04 LL object
   0x30 LL modifiations
     0x30 LL modification sequence
       0x0A 0x01 operation
       0x30 LL modification
         0x04 LL type
         0x31 LL vals
           0x04 LL attributeValue
           ... 
           0x04 LL attributeValue
     ... 
     0x30 LL modification sequence
       0x0A 0x01 operation
       0x30 LL modification
         0x04 LL type
         0x31 LL vals
           0x04 LL attributeValue
           ... 
           0x04 LL attributeValue
 

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