Package com.unboundid.ldap.sdk
Class ChangeLogEntry
- java.lang.Object
-
- com.unboundid.ldap.sdk.Entry
-
- com.unboundid.ldap.sdk.ReadOnlyEntry
-
- com.unboundid.ldap.sdk.ChangeLogEntry
-
- All Implemented Interfaces:
LDIFRecord
,java.io.Serializable
- Direct Known Subclasses:
UnboundIDChangeLogEntry
@NotExtensible @NotMutable @ThreadSafety(level=COMPLETELY_THREADSAFE) public class ChangeLogEntry extends ReadOnlyEntry
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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ATTR_CHANGE_NUMBER
The name of the attribute that contains the change number that identifies the change and the order it was processed in the server.static java.lang.String
ATTR_CHANGE_TYPE
The name of the attribute that contains the type of change made to the target entry.static java.lang.String
ATTR_CHANGES
The name of the attribute used to hold a list of changes.static java.lang.String
ATTR_DELETE_OLD_RDN
The name of the attribute used to hold the flag indicating whether the old RDN value(s) should be removed from the target entry for a modify DN operation.static java.lang.String
ATTR_DELETED_ENTRY_ATTRS
The name of the attribute used to hold information about attributes from a deleted entry, if available.static java.lang.String
ATTR_NEW_RDN
The name of the attribute used to hold the new RDN for a modify DN operation.static java.lang.String
ATTR_NEW_SUPERIOR
The name of the attribute used to hold the new superior DN for a modify DN operation.static java.lang.String
ATTR_TARGET_DN
The name of the attribute that contains the DN of the entry targeted by the change.
-
Constructor Summary
Constructors Constructor Description ChangeLogEntry(Entry entry)
Creates a new changelog entry from the provided entry.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ChangeLogEntry
constructChangeLogEntry(long changeNumber, LDIFChangeRecord changeRecord)
Constructs a changelog entry from information contained in the provided LDIF change record.boolean
deleteOldRDN()
Indicates whether the old RDN value(s) should be removed from the entry targeted by this modify DN changelog entry.java.util.List<Attribute>
getAddAttributes()
Retrieves the attribute list for an add changelog entry.long
getChangeNumber()
Retrieves the change number for this changelog entry.ChangeType
getChangeType()
Retrieves the change type for this changelog entry.java.util.List<Attribute>
getDeletedEntryAttributes()
Retrieves the list of deleted entry attributes for a delete changelog entry.java.util.List<Modification>
getModifications()
Retrieves the list of modifications for a modify changelog entry.java.lang.String
getNewDN()
Retrieves the DN of the entry after the change has been processed.java.lang.String
getNewRDN()
Retrieves the new RDN for a modify DN changelog entry.java.lang.String
getNewSuperior()
Retrieves the new superior DN for a modify DN changelog entry.java.lang.String
getTargetDN()
Retrieves the target DN for this changelog entry.protected static java.util.List<Attribute>
parseAddAttributeList(Entry entry, java.lang.String attrName, java.lang.String targetDN)
Parses the attribute list from the specified attribute in a changelog entry.LDAPResult
processChange(LDAPInterface connection)
Processes the operation represented by this changelog entry using the provided LDAP connection.LDIFChangeRecord
toLDIFChangeRecord()
Retrieves an LDIF change record that is analogous to the operation represented by this changelog entry.-
Methods inherited from class com.unboundid.ldap.sdk.ReadOnlyEntry
addAttribute, addAttribute, addAttribute, addAttribute, addAttribute, removeAttribute, removeAttributeValue, removeAttributeValue, removeAttributeValues, removeAttributeValues, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setDN, setDN
-
Methods inherited from class com.unboundid.ldap.sdk.Entry
addAttribute, applyModifications, applyModifications, applyModifyDN, applyModifyDN, diff, diff, diff, duplicate, equals, getAttribute, getAttribute, getAttributes, getAttributesWithOptions, getAttributeValue, getAttributeValueAsBoolean, getAttributeValueAsDate, getAttributeValueAsDN, getAttributeValueAsInteger, getAttributeValueAsLong, getAttributeValueByteArrays, getAttributeValueBytes, getAttributeValues, getDN, getObjectClassAttribute, getObjectClassValues, getParentDN, getParentDNString, getParsedDN, getRDN, getSchema, hasAttribute, hasAttribute, hasAttribute, hasAttributeValue, hasAttributeValue, hasAttributeValue, hasAttributeValue, hashCode, hasObjectClass, intersectEntries, matchesBaseAndScope, matchesBaseAndScope, mergeEntries, removeAttributeValue, removeAttributeValue, setAttribute, toLDIF, toLDIF, toLDIF, toLDIF, toLDIFString, toLDIFString, toLDIFString, toLDIFString, toString, toString
-
-
-
-
Field Detail
-
ATTR_CHANGE_NUMBER
public static final java.lang.String ATTR_CHANGE_NUMBER
The name of the attribute that contains the change number that identifies the change and the order it was processed in the server.- See Also:
- Constant Field Values
-
ATTR_TARGET_DN
public static final java.lang.String ATTR_TARGET_DN
The name of the attribute that contains the DN of the entry targeted by the change.- See Also:
- Constant Field Values
-
ATTR_CHANGE_TYPE
public static final java.lang.String ATTR_CHANGE_TYPE
The name of the attribute that contains the type of change made to the target entry.- See Also:
- Constant Field Values
-
ATTR_CHANGES
public static final java.lang.String ATTR_CHANGES
The name of the attribute used to hold a list of changes. For an add operation, this will be an LDIF representation of the attributes that make up the entry. For a modify operation, this will be an LDIF representation of the changes to the target entry.- See Also:
- Constant Field Values
-
ATTR_NEW_RDN
public static final java.lang.String ATTR_NEW_RDN
The name of the attribute used to hold the new RDN for a modify DN operation.- See Also:
- Constant Field Values
-
ATTR_DELETE_OLD_RDN
public static final java.lang.String ATTR_DELETE_OLD_RDN
The name of the attribute used to hold the flag indicating whether the old RDN value(s) should be removed from the target entry for a modify DN operation.- See Also:
- Constant Field Values
-
ATTR_NEW_SUPERIOR
public static final java.lang.String ATTR_NEW_SUPERIOR
The name of the attribute used to hold the new superior DN for a modify DN operation.- See Also:
- Constant Field Values
-
ATTR_DELETED_ENTRY_ATTRS
public static final java.lang.String ATTR_DELETED_ENTRY_ATTRS
The name of the attribute used to hold information about attributes from a deleted entry, if available.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ChangeLogEntry
public ChangeLogEntry(Entry entry) throws LDAPException
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 Detail
-
constructChangeLogEntry
public static ChangeLogEntry constructChangeLogEntry(long changeNumber, 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
protected static java.util.List<Attribute> parseAddAttributeList(Entry entry, java.lang.String attrName, java.lang.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
public final java.lang.String getTargetDN()
Retrieves the target DN for this changelog entry.- Returns:
- The target DN for this changelog entry.
-
getChangeType
public final ChangeType getChangeType()
Retrieves the change type for this changelog entry.- Returns:
- The change type for this changelog entry.
-
getAddAttributes
public final java.util.List<Attribute> 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
public final java.util.List<Attribute> 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
public final java.util.List<Modification> 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
public final java.lang.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, orfalse
if not or if this changelog entry does not represent a modify DN operation.
-
getNewSuperior
public final java.lang.String 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
public final java.lang.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 benull
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
public final LDIFChangeRecord 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
public final LDAPResult processChange(LDAPInterface connection) throws LDAPException
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.
-
-