Class AdNotificationRequestControl

java.lang.Object
org.forgerock.opendj.ldap.controls.AdNotificationRequestControl
All Implemented Interfaces:
Control

public final class AdNotificationRequestControl extends Object implements Control
The persistent search request control for Active Directory as defined by Microsoft. This control allows a client to receive notification of changes that occur in an Active Directory server.
 
 Connection connection = ...;

 SearchRequest request =
         Requests.newSearchRequest("dc=example,dc=com",
                 SearchScope.WHOLE_SUBTREE, "(objectclass=*)", "cn",
                 "isDeleted", "whenChanged", "whenCreated").addControl(
                 ADNotificationRequestControl.newControl(true));

 ConnectionEntryReader reader = connection.search(request);

 while (reader.hasNext()) {
     if (!reader.isReference()) {
         SearchResultEntry entry = reader.readEntry(); // Entry that changed

         Boolean isDeleted = entry.parseAttribute("isDeleted").asBoolean();
         if (isDeleted != null && isDeleted) {
             // Handle entry deletion
         }
         String whenCreated = entry.parseAttribute("whenCreated").asString();
         String whenChanged = entry.parseAttribute("whenChanged").asString();
         if (whenCreated != null && whenChanged != null) {
             if (whenCreated.equals(whenChanged)) {
                 //Handle entry addition
             } else {
                 //Handle entry modification
             }
         }
     } else {
         reader.readReference(); //read and ignore reference
     }
 }
 
 
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final List<String>
    The user-friendly aliases for the active directory notification request control.
    static final String
    The name of the isDeleted attribute as defined in the Active Directory schema.
    static final String
    The name of the objectGUID attribute as defined in the Active Directory schema.
    static final String
    The OID for the Microsoft Active Directory persistent search request control.
    static final String
    The name of the uSNChanged attribute as defined in the Active Directory schema.
    static final String
    The name of the whenChanged attribute as defined in the Active Directory schema.
    static final String
    The name of the whenCreated attribute as defined in the Active Directory schema.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the control "friendly name" alias for the control.
    Returns the numeric OID associated with this control.
    Returns the value, if any, associated with this control.
    boolean
    Returns true if this control has a value.
    boolean
    Returns true if it is unacceptable to perform the operation without applying the semantics of this control.
    newControl(boolean isCritical)
    Creates a new Active Directory change notification request control.
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • OID

      public static final String OID
      The OID for the Microsoft Active Directory persistent search request control. The control itself is empty and the changes are returned as attributes, such as "isDeleted", "whenChanged", "whenCreated".
      See Also:
    • ALIASES

      public static final List<String> ALIASES
      The user-friendly aliases for the active directory notification request control.
    • IS_DELETED_ATTR

      public static final String IS_DELETED_ATTR
      The name of the isDeleted attribute as defined in the Active Directory schema. If the value of the attribute is TRUE, the object has been marked for deletion.
      See Also:
    • WHEN_CREATED_ATTR

      public static final String WHEN_CREATED_ATTR
      The name of the whenCreated attribute as defined in the Active Directory schema. Holds the date of the creation of the object in GeneralizedTime format.
      See Also:
    • WHEN_CHANGED_ATTR

      public static final String WHEN_CHANGED_ATTR
      The name of the whenChanged attribute as defined in the Active Directory schema. Holds the date of the last modification of the object in GeneralizedTime format.
      See Also:
    • OBJECT_GUID_ATTR

      public static final String OBJECT_GUID_ATTR
      The name of the objectGUID attribute as defined in the Active Directory schema. This is the unique identifier of an object stored in binary format.
      See Also:
    • USN_CHANGED_ATTR

      public static final String USN_CHANGED_ATTR
      The name of the uSNChanged attribute as defined in the Active Directory schema. This attribute can be used to determine whether the current state of the object on the server reflects the latest changes that the client has received.
      See Also:
  • Method Details

    • newControl

      public static AdNotificationRequestControl newControl(boolean isCritical)
      Creates a new Active Directory change notification request control.
      Parameters:
      isCritical - true if it is unacceptable to perform the operation without applying the semantics of this control, or false if it can be ignored
      Returns:
      The new control.
    • getOid

      public String getOid()
      Description copied from interface: Control
      Returns the numeric OID associated with this control.
      Specified by:
      getOid in interface Control
      Returns:
      The numeric OID associated with this control.
    • getValue

      public ByteString getValue()
      Description copied from interface: Control
      Returns the value, if any, associated with this control. Its format is defined by the specification of this control.
      Specified by:
      getValue in interface Control
      Returns:
      The value associated with this control, or null if there is no value.
    • hasValue

      public boolean hasValue()
      Description copied from interface: Control
      Returns true if this control has a value. In some circumstances it may be useful to determine if a control has a value, without actually calculating the value and incurring any performance costs.
      Specified by:
      hasValue in interface Control
      Returns:
      true if this control has a value, or false if there is no value.
    • isCritical

      public boolean isCritical()
      Description copied from interface: Control
      Returns true if it is unacceptable to perform the operation without applying the semantics of this control.

      The criticality field only has meaning in controls attached to request messages (except UnbindRequest). For controls attached to response messages and the UnbindRequest, the criticality field SHOULD be false, and MUST be ignored by the receiving protocol peer. A value of true indicates that it is unacceptable to perform the operation without applying the semantics of the control.

      Specified by:
      isCritical in interface Control
      Returns:
      true if this control must be processed by the Directory Server, or false if it can be ignored.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getAlias

      public String getAlias()
      Description copied from interface: Control
      Returns the control "friendly name" alias for the control.
      Specified by:
      getAlias in interface Control
      Returns:
      "Friendly name" alias for the control.