Class ChangeLogEntry

All Implemented Interfaces:
LDIFRecord, Serializable
Direct Known Subclasses:
UnboundIDChangeLogEntry

This class provides a data structure for representing a changelog entry as described in draft-good-ldap-changelog. Changelog entries provide information about a change (add, delete, modify, or modify DN) operation that was processed in the directory server. Changelog entries may be parsed from entries, and they may be converted to LDIF change records or processed as LDAP operations.
See Also:
  • Field Details

  • Constructor Details

    • ChangeLogEntry

      Creates a new changelog entry from the provided entry.
      Parameters:
      entry - The entry from which to create this changelog entry.
      Throws:
      LDAPException - If the provided entry cannot be parsed as a changelog entry.
  • Method Details

    • constructChangeLogEntry

      @NotNull public static ChangeLogEntry constructChangeLogEntry(long changeNumber, @NotNull LDIFChangeRecord changeRecord) throws LDAPException
      Constructs a changelog entry from information contained in the provided LDIF change record.
      Parameters:
      changeNumber - The change number to use for the constructed changelog entry.
      changeRecord - The LDIF change record with the information to include in the generated changelog entry.
      Returns:
      The changelog entry constructed from the provided change record.
      Throws:
      LDAPException - If a problem is encountered while constructing the changelog entry.
    • parseAddAttributeList

      @NotNull protected static List<Attribute> parseAddAttributeList(@NotNull Entry entry, @NotNull String attrName, @NotNull String targetDN) throws LDAPException
      Parses the attribute list from the specified attribute in a changelog entry.
      Parameters:
      entry - The entry containing the data to parse.
      attrName - The name of the attribute from which to parse the attribute list.
      targetDN - The DN of the target entry.
      Returns:
      The parsed attribute list.
      Throws:
      LDAPException - If an error occurs while parsing the attribute list.
    • getChangeNumber

      public final long getChangeNumber()
      Retrieves the change number for this changelog entry.
      Returns:
      The change number for this changelog entry.
    • getTargetDN

      @NotNull public final String getTargetDN()
      Retrieves the target DN for this changelog entry.
      Returns:
      The target DN for this changelog entry.
    • getChangeType

      Retrieves the change type for this changelog entry.
      Returns:
      The change type for this changelog entry.
    • getAddAttributes

      Retrieves the attribute list for an add changelog entry.
      Returns:
      The attribute list for an add changelog entry, or null if this changelog entry does not represent an add operation.
    • getDeletedEntryAttributes

      Retrieves the list of deleted entry attributes for a delete changelog entry. Note that this is a non-standard extension implemented by some types of servers and is not defined in draft-good-ldap-changelog and may not be provided by some servers.
      Returns:
      The delete entry attribute list for a delete changelog entry, or null if this changelog entry does not represent a delete operation or no deleted entry attributes were included in the changelog entry.
    • getModifications

      Retrieves the list of modifications for a modify changelog entry. Note some directory servers may also include changes for modify DN change records if there were updates to operational attributes (e.g., modifiersName and modifyTimestamp).
      Returns:
      The list of modifications for a modify (or possibly modify DN) changelog entry, or null if this changelog entry does not represent a modify operation or a modify DN operation with additional changes.
    • getNewRDN

      @Nullable public final String getNewRDN()
      Retrieves the new RDN for a modify DN changelog entry.
      Returns:
      The new RDN for a modify DN changelog entry, or null if this changelog entry does not represent a modify DN operation.
    • deleteOldRDN

      public final boolean deleteOldRDN()
      Indicates whether the old RDN value(s) should be removed from the entry targeted by this modify DN changelog entry.
      Returns:
      true if the old RDN value(s) should be removed from the entry, or false if not or if this changelog entry does not represent a modify DN operation.
    • getNewSuperior

      Retrieves the new superior DN for a modify DN changelog entry.
      Returns:
      The new superior DN for a modify DN changelog entry, or null if there is no new superior DN, or if this changelog entry does not represent a modify DN operation.
    • getNewDN

      @Nullable public final String getNewDN()
      Retrieves the DN of the entry after the change has been processed. For an add or modify operation, the new DN will be the same as the target DN. For a modify DN operation, the new DN will be constructed from the original DN, the new RDN, and the new superior DN. For a delete operation, it will be null because the entry will no longer exist.
      Returns:
      The DN of the entry after the change has been processed, or null if the entry no longer exists.
    • toLDIFChangeRecord

      Retrieves an LDIF change record that is analogous to the operation represented by this changelog entry.
      Returns:
      An LDIF change record that is analogous to the operation represented by this changelog entry.
    • processChange

      Processes the operation represented by this changelog entry using the provided LDAP connection.
      Parameters:
      connection - The connection (or connection pool) to use to process the operation.
      Returns:
      The result of processing the operation.
      Throws:
      LDAPException - If the operation could not be processed successfully.