org.apache.directory.shared.ldap.codec.search.controls
Class EntryChangeControlCodec

java.lang.Object
  extended by org.apache.directory.shared.asn1.AbstractAsn1Object
      extended by org.apache.directory.shared.ldap.codec.search.controls.EntryChangeControlCodec
All Implemented Interfaces:
Asn1Object

public class EntryChangeControlCodec
extends AbstractAsn1Object

A response control that may be returned by Persistent Search entry responses. It contains addition change information to describe the exact change that occurred to an entry. The exact details of this control are covered in section 5 of this (yes) expired draft: Persistent Search Draft v03 which is printed out below for convenience:

    5.  Entry Change Notification Control
    
    This control provides additional information about the change the caused
    a particular entry to be returned as the result of a persistent search.
    The controlType is "2.16.840.1.113730.3.4.7".  If the client set the
    returnECs boolean to TRUE in the PersistentSearch control, servers MUST
    include an EntryChangeNotification control in the Controls portion of
    each SearchResultEntry that is returned due to an entry being added,
    deleted, or modified.
    
               EntryChangeNotification ::= SEQUENCE 
               {
                         changeType ENUMERATED 
                         {
                                 add             (1),
                                 delete          (2),
                                 modify          (4),
                                 modDN           (8)
                         },
                         previousDN   LDAPDN OPTIONAL,     -- modifyDN ops. only
                         changeNumber INTEGER OPTIONAL     -- if supported
               }
    
    changeType indicates what LDAP operation caused the entry to be
    returned.
    
    previousDN is present only for modifyDN operations and gives the DN of
    the entry before it was renamed and/or moved.  Servers MUST include this
    optional field only when returning change notifications as a result of
    modifyDN operations.
 
    changeNumber is the change number [CHANGELOG] assigned by a server for
    the change.  If a server supports an LDAP Change Log it SHOULD include
    this field.
 

Version:
$Rev: 679468 $, $Date: 2008-07-24 19:29:00 +0200 (Do, 24 Jul 2008) $,
Author:
Apache Directory Project

Field Summary
static int UNDEFINED_CHANGE_NUMBER
           
 
Fields inherited from class org.apache.directory.shared.asn1.AbstractAsn1Object
parent
 
Constructor Summary
EntryChangeControlCodec()
           
 
Method Summary
 int computeLength()
          Compute the EntryChangeControl length 0x30 L1 | +--> 0x0A 0x0(1-4) [1|2|4|8] (changeType) [+--> 0x04 L2 previousDN] [+--> 0x02 0x0(1-4) [0..2^63-1] (changeNumber)]
 java.nio.ByteBuffer encode(java.nio.ByteBuffer buffer)
          Encodes the entry change control.
 long getChangeNumber()
           
 ChangeType getChangeType()
           
 LdapDN getPreviousDn()
           
 void setChangeNumber(long changeNumber)
           
 void setChangeType(ChangeType changeType)
           
 void setPreviousDn(LdapDN previousDn)
           
 java.lang.String toString()
          Return a String representing this EntryChangeControl.
 
Methods inherited from class org.apache.directory.shared.asn1.AbstractAsn1Object
addLength, getCurrentLength, getExpectedLength, getParent, getTlvId, setCurrentLength, setExpectedLength, setParent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

UNDEFINED_CHANGE_NUMBER

public static final int UNDEFINED_CHANGE_NUMBER
See Also:
Constant Field Values
Constructor Detail

EntryChangeControlCodec

public EntryChangeControlCodec()
See Also:
Asn1Object#Asn1Object
Method Detail

computeLength

public int computeLength()
Compute the EntryChangeControl length 0x30 L1 | +--> 0x0A 0x0(1-4) [1|2|4|8] (changeType) [+--> 0x04 L2 previousDN] [+--> 0x02 0x0(1-4) [0..2^63-1] (changeNumber)]

Specified by:
computeLength in interface Asn1Object
Specified by:
computeLength in class AbstractAsn1Object
Returns:
The object's computed length

encode

public java.nio.ByteBuffer encode(java.nio.ByteBuffer buffer)
                           throws EncoderException
Encodes the entry change control.

Specified by:
encode in interface Asn1Object
Overrides:
encode in class AbstractAsn1Object
Parameters:
buffer - The encoded sink
Returns:
A ByteBuffer that contains the encoded PDU
Throws:
EncoderException - If anything goes wrong.

toString

public java.lang.String toString()
Return a String representing this EntryChangeControl.

Overrides:
toString in class java.lang.Object

getChangeType

public ChangeType getChangeType()

setChangeType

public void setChangeType(ChangeType changeType)

getPreviousDn

public LdapDN getPreviousDn()

setPreviousDn

public void setPreviousDn(LdapDN previousDn)

getChangeNumber

public long getChangeNumber()

setChangeNumber

public void setChangeNumber(long changeNumber)


Copyright © 2003-2011 Apache Software Foundation. All Rights Reserved.