org.apache.directory.api.ldap.model.message
Interface ModifyRequest

All Superinterfaces:
AbandonableRequest, Message, Request, ResultResponseRequest<ModifyResponse>, SingleReplyRequest<ModifyResponse>
All Known Implementing Classes:
ModifyRequestImpl

public interface ModifyRequest
extends SingleReplyRequest<ModifyResponse>, AbandonableRequest

Modify request protocol message used to alter the attributes and values of an existing entry. Here's what RFC 2255 says about it:

  4.6. Modify Operation
 
   The Modify Operation allows a client to request that a modification
   of an entry be performed on its behalf by a server.  The Modify
   Request is defined as follows:
 
        ModifyRequest ::= [APPLICATION 6] SEQUENCE {
                object          LDAPDN,
                modification    SEQUENCE OF SEQUENCE {
 
                        operation       ENUMERATED {
                                                add     (0),
                                                delete  (1),
                                                replace (2) },
                        modification    AttributeTypeAndValues } }
 
        AttributeTypeAndValues ::= SEQUENCE {
                type    AttributeDescription,
                vals    SET OF AttributeValue }
 
   Parameters of the Modify Request are:
 
   - object: The object to be modified. The value of this field contains
     the Dn of the entry to be modified.  The server will not perform
     any alias dereferencing in determining the object to be modified.
 
   - modification: A list of modifications to be performed on the entry.
     The entire list of entry modifications MUST be performed
     in the order they are listed, as a single atomic operation.  While
     individual modifications may violate the directory schema, the
     resulting entry after the entire list of modifications is performed
     MUST conform to the requirements of the directory schema. The
     values that may be taken on by the 'operation' field in each
     modification construct have the following semantics respectively:
  
 
             add: add values listed to the given attribute, creating
             the attribute if necessary;
 
             delete: delete values listed from the given attribute,
             removing the entire attribute if no values are listed, or
             if all current values of the attribute are listed for
             deletion;
 
             replace: replace all existing values of the given attribute
             with the new values listed, creating the attribute if it
             did not already exist.  A replace with no value will delete
             the entire attribute if it exists, and is ignored if the
             attribute does not exist.
  
Notice that we tried to leverage as much as we already can from the JNDI. Both the Names and ModificationItems are used here to make the API as easy as possible to understand. We do not attempt here to write a JNDI provider which losses the explicit request type usage that we are looking for. Also note that this library is both for the client side as well as the server side unlike the JNDI which is strictly for the client side. From the JNDI we borrow good ideas and familiar signatures, interfaces and classes where we can.

Author:
Apache Directory Project

Field Summary
static MessageTypeEnum RESP_TYPE
          Modify response message type enumeration value
static MessageTypeEnum TYPE
          Modify request message type enumeration value
 
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.
 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.
 Collection<Modification> getModifications()
          Gets an immutable Collection of modification items representing the atomic changes to perform on the candidate entry to modify.
 Dn getName()
          Gets the distinguished name of the entry to be modified by this request.
 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.
 ModifyRequest setMessageId(int messageId)
          Sets the Message ID for this request
 ModifyRequest setName(Dn name)
          Sets the distinguished name of the entry to be modified by this request.
 
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
 

Field Detail

TYPE

static final MessageTypeEnum TYPE
Modify request message type enumeration value


RESP_TYPE

static final MessageTypeEnum RESP_TYPE
Modify response message type enumeration value

Method Detail

getName

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

Returns:
the Dn of the modified entry.

setName

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.

Parameters:
name - the Dn of the modified entry.
Returns:
The ModifyRequest instance

getModifications

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

Returns:
an immutable Collection of Modification instances.

addModification

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

Parameters:
mod - a Modification to add.
Returns:
The ModifyRequest instance

removeModification

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

Parameters:
mod - a Modification to remove.
Returns:
The ModifyRequest instance

remove

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

Parameters:
attributeName - name of the attribute to be added
attributeValue - values of the attribute
Returns:
The ModifyRequest instance

remove

ModifyRequest remove(String attributeName,
                     byte[]... attributeValue)
See Also:
remove(String, String...)

remove

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

Parameters:
attr - the attribute to be added
Returns:
The ModifyRequest instance

addModification

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

Parameters:
attr - The attribute to be modified
modOp - The operation
Returns:
The ModifyRequest instance

add

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

Parameters:
attributeName - name of the attribute to be added
attributeValue - values of the attribute
Returns:
The ModifyRequest instance

add

ModifyRequest add(String attributeName,
                  byte[]... attributeValue)
See Also:
add(String, String...)

add

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

Parameters:
attr - the attribute to be added
Returns:
The ModifyRequest instance

replace

ModifyRequest replace(String attributeName)
See Also:
replace(String, String...)

replace

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

Parameters:
attributeName - name of the attribute to be added
attributeValue - values of the attribute
Returns:
The ModifyRequest instance

replace

ModifyRequest replace(String attributeName,
                      byte[]... attributeValue)
See Also:
replace(String, String...)

replace

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

Parameters:
attr - the attribute to be added
Returns:
The ModifyRequest instance

setMessageId

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

Specified by:
setMessageId in interface Message
Parameters:
messageId - The message Id
Returns:
A Message reference

addControl

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

Specified by:
addControl in interface Message
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

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

Specified by:
addAllControls in interface Message
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

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

Specified by:
removeControl in interface Message
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.


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