Class UnboundIDChangeLogEntry

  • All Implemented Interfaces:
    LDIFRecord, java.io.Serializable

    @NotMutable
    @ThreadSafety(level=COMPLETELY_THREADSAFE)
    public final class UnboundIDChangeLogEntry
    extends ChangeLogEntry
    This class provides an implementation of a changelog entry which provides support for all standard changelog entry attributes as well as those unique to the Ping Identity, UnboundID, and Nokia/Alcatel-Lucent 8661 Directory Server.
    NOTE: This class, and other classes within the com.unboundid.ldap.sdk.unboundidds package structure, are only supported for use against Ping Identity, UnboundID, and Nokia/Alcatel-Lucent 8661 server products. These classes provide support for proprietary functionality or for external specifications that are not considered stable or mature enough to be guaranteed to work in an interoperable way with other types of LDAP servers.
    See Also:
    Serialized Form
    • Constructor Detail

      • UnboundIDChangeLogEntry

        public UnboundIDChangeLogEntry​(@NotNull
                                       Entry entry)
                                throws LDAPException
        Creates a new UnboundID changelog entry object 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

      • getTargetUniqueID

        @Nullable
        public java.lang.String getTargetUniqueID()
        Retrieves the entryUUID value of the entry targeted by the change, if available.
        Returns:
        The entryUUID value of the entry targeted by the change, or null if it was not included in the changelog entry.
      • getLocalCSN

        @Nullable
        public java.lang.String getLocalCSN()
        Retrieves the local change sequence number (CSN) for the change, if available.
        Returns:
        The local CSN for the change, or null if it was not included in the changelog entry.
      • getChangeTime

        @Nullable
        public java.util.Date getChangeTime()
        Retrieves the time that the change was processed, if available.
        Returns:
        The time that the change was processed, or null if it was not included in the changelog entry.
      • getAddAttributes

        @Nullable
        public java.util.List<AttributegetAddAttributes​(boolean includeVirtual)
        Retrieves the attribute list for an add changelog entry, optionally including information about virtual attributes.
        Parameters:
        includeVirtual - Indicates whether to include both real and virtual values (if true, or only real values (if false), for the attributes to be returned.
        Returns:
        The attribute list for an add changelog entry, optionally including virtual attributes, or null if this changelog entry does not represent an add operation.
      • getAddVirtualAttributes

        @Nullable
        public java.util.List<AttributegetAddVirtualAttributes()
        Retrieves the virtual attribute list for an add changelog entry, if available.
        Returns:
        The virtual attribute list for an add changelog entry, or null if the changelog entry does not represent an add operation, or an empty list if it does represent an add operation but no virtual attribute information is available in the changelog entry.
      • getDeletedEntryAttributes

        @Nullable
        public java.util.List<AttributegetDeletedEntryAttributes​(boolean includeVirtual)
        Retrieves the list of attributes contained in the target entry at the time that it was deleted, optionally including information about virtual attributes.
        Parameters:
        includeVirtual - Indicates whether to include both real and virtual values (if true, or only real values (if false), for the attributes to be returned.
        Returns:
        The list of attributes contained in the target entry at the time that it was deleted, optionally including virtual attributes, or null if this changelog entry does not represent a delete operation or no deleted attribute information is available.
      • getDeletedEntryVirtualAttributes

        @Nullable
        public java.util.List<AttributegetDeletedEntryVirtualAttributes()
        Retrieves the virtual attribute list for a delete changelog entry, if available.
        Returns:
        The virtual attribute list for a delete changelog entry, or null if the changelog entry does not represent a delete operation, or an empty list if it does represent a delete operation but no virtual attribute information is available in the changelog entry.
      • getUpdatedAttributesBeforeChange

        @NotNull
        public java.util.List<AttributegetUpdatedAttributesBeforeChange()
        Retrieves a list containing the set of attributes that were updated in the associated modify or modify DN operation as they appeared before the change was processed. Virtual attribute information will not be included.
        Returns:
        A list containing the set of updated attributes as they appeared in the entry before the associated modify or modify DN was processed, or an empty list if the change was not a modify or modify DN operation, none of the updated attributes previously existed in the target entry, the previous versions of the updated attributes had too many values to include, or the server is not configured to provide (or does not support providing) previous versions of updated attributes.
      • getUpdatedAttributesBeforeChange

        @NotNull
        public java.util.List<AttributegetUpdatedAttributesBeforeChange​(boolean includeVirtual)
        Retrieves a list containing the set of attributes (optionally including both real and virtual values) that were updated in the associated modify or modify DN operation as they appeared before the change was processed.
        Parameters:
        includeVirtual - Indicates whether to include both real and virtual values (if true, or only real values (if false), for the attributes to be returned.
        Returns:
        A list containing the set of updated attributes as they appeared in the entry before the associated modify or modify DN was processed, or an empty list if the change was not a modify or modify DN operation, none of the updated attributes previously existed in the target entry, the previous versions of the updated attributes had too many values to include, or the server is not configured to provide (or does not support providing) previous versions of updated attributes.
      • getUpdatedVirtualAttributesBeforeChange

        @NotNull
        public java.util.List<AttributegetUpdatedVirtualAttributesBeforeChange()
        Retrieves a list containing information about virtual values for attributes that were updated in the associated modify or modify DN operation, as they appeared in the entry before the change was processed.
        Returns:
        A list containing information about virtual values for attributes that were updated in the associated modify or modify DN operation, as they appeared in the entry before the change was processed. It may be empty if the change was not a modify or modify DN operation, or if the changelog entry did not include any information about virtual attributes as they appeared before the change.
      • getUpdatedAttributesAfterChange

        @NotNull
        public java.util.List<AttributegetUpdatedAttributesAfterChange()
        Retrieves a list containing the set of attributes that were updated in the associated modify or modify DN operation as they appeared after the change was processed. Virtual attribute information will not be included.
        Returns:
        A list containing the set of updated attributes as they appeared in the entry after the associated modify or modify DN was processed, or an empty list if the change was not a modify or modify DN operation, none of the updated attributes existed in the entry after the change was processed, the resulting versions of the updated attributes had too many values to include, or the server is not configured to provide (or does not support providing) resulting versions of updated attributes.
      • getUpdatedAttributesAfterChange

        @NotNull
        public java.util.List<AttributegetUpdatedAttributesAfterChange​(boolean includeVirtual)
        Retrieves a list containing the set of attributes (optionally including both real and virtual values) that were updated in the associated modify or modify DN operation as they appeared after the change was processed.
        Parameters:
        includeVirtual - Indicates whether to include both real and virtual values (if true, or only real values (if false), for the attributes to be returned.
        Returns:
        A list containing the set of updated attributes as they appeared in the entry after the associated modify or modify DN was processed, or an empty list if the change was not a modify or modify DN operation, none of the updated attributes previously existed in the target entry, the previous versions of the updated attributes had too many values to include, or the server is not configured to provide (or does not support providing) previous versions of updated attributes.
      • getUpdatedVirtualAttributesAfterChange

        @NotNull
        public java.util.List<AttributegetUpdatedVirtualAttributesAfterChange()
        Retrieves a list containing information about virtual values for attributes that were updated in the associated modify or modify DN operation, as they appeared in the entry after the change was processed.
        Returns:
        A list containing information about virtual values for attributes that were updated in the associated modify or modify DN operation, as they appeared in the entry after the change was processed. It may be empty if the change was not a modify or modify DN operation, or if the changelog entry did not include any information about virtual attributes as they appeared after the change.
      • getAttributesThatExceededMaxValuesCount

        @NotNull
        public java.util.List<ChangeLogEntryAttributeExceededMaxValuesCountgetAttributesThatExceededMaxValuesCount()
        Retrieves information about any attributes updated in the associated modify or modify DN operation that had too many values to include in the changelog entry's set of before and/or after values.
        Returns:
        Information about attributes updated in the associated modify or modify DN operation that had too many values to include in the changelog entry's set of before and/or after values, or an empty list if none of the updated attributes had too many values, the server is not configured to provide (or does not support providing) previous and resulting versions of updated attributes, or the change was not the result of a modify or modify DN operation.
      • getVirtualAttributesThatExceededMaxValuesCount

        @NotNull
        public java.util.List<ChangeLogEntryAttributeExceededMaxValuesCountgetVirtualAttributesThatExceededMaxValuesCount()
        Retrieves information about any attributes updated in the associated modify or modify DN operation that had too many virtual values to include in the changelog entry's set of before and/or after virtual values.
        Returns:
        Information about attributes updated in the associated modify or modify DN operation that had too many virtual values to include in the changelog entry's set of before and/or after virtual values, or an empty list if none of the updated attributes had too many virtual values, the server is not configured to provide (or does not support providing) previous and resulting versions of updated attributes, or the change was not the result of a modify or modify DN operation.
      • getKeyEntryAttributes

        @NotNull
        public java.util.List<AttributegetKeyEntryAttributes()
        Retrieves a list containing key attributes from the target entry, as defined in the server configuration. For add, modify, and modify DN operations, this will include the key attributes as they appeared in the entry after the change had been processed. For delete operations, this will include the key attributes as they appeared in the entry just before it was removed.
        Returns:
        A list containing key attributes from the target entry, or an empty list if the associated entry did not have any key attributes or there are no key attribute types defined in the server configuration.
      • getKeyEntryAttributes

        @NotNull
        public java.util.List<AttributegetKeyEntryAttributes​(boolean includeVirtual)
        Retrieves a list containing key attributes from the target entry, as defined in the server configuration. For add, modify, and modify DN operations, this will include the key attributes as they appeared in the entry after the change had been processed. For delete operations, this will include the key attributes as they appeared in the entry just before it was removed.
        Parameters:
        includeVirtual - Indicates whether to include both real and virtual values (if true, or only real values (if false), for the attributes to be returned.
        Returns:
        A list containing key attributes from the target entry, or an empty list if the associated entry did not have any key attributes or there are no key attribute types defined in the server configuration.
      • getKeyEntryVirtualAttributes

        @NotNull
        public java.util.List<AttributegetKeyEntryVirtualAttributes()
        Retrieves a list containing virtual values for key attributes from the target entry, as defined in the server configuration. For add, modify, and modify DN operations, this will include the virtual values for key attributes as they appeared in the entry after the change had been processed. For delete operations, this will include the virtual values for key attributes as they appeared in the entry just before it was removed.
        Returns:
        A list containing virtual values for key attributes from the target entry, or an empty list if the associated entry did not have any virtual values for key attributes or there are no key attribute types defined in the server configuration.
      • getNumExcludedUserAttributes

        public int getNumExcludedUserAttributes()
        Retrieves the number of user attributes for which information was excluded from the changelog entry by access control and/or sensitive attribute processing, if available.
        Returns:
        The number of user attributes for which information was excluded from the changelog entry by access control and/or sensitive attribute processing, or -1 if that information was not included in the changelog entry.
      • getNumExcludedOperationalAttributes

        public int getNumExcludedOperationalAttributes()
        Retrieves the number of operational attributes for which information was excluded from the changelog entry by access control and/or sensitive attribute processing, if available.
        Returns:
        The number of operational attributes for which information was excluded from the changelog entry by access control and/or sensitive attribute processing, or -1 if that information was not included in the changelog entry.
      • getExcludedUserAttributeNames

        @NotNull
        public java.util.List<java.lang.String> getExcludedUserAttributeNames()
        Retrieves the names of any user attributes for which information was excluded from the changelog entry by access control and/or sensitive attribute processing, if available.
        Returns:
        The names of any user attributes for which information was excluded from the changelog entry by access control and/or sensitive attribute processing, or an empty list if that information was not included in the changelog entry.
      • getExcludedOperationalAttributeNames

        @NotNull
        public java.util.List<java.lang.String> getExcludedOperationalAttributeNames()
        Retrieves the names of any operational attributes for which information was excluded from the changelog entry by access control and/or sensitive attribute processing, if available.
        Returns:
        The names of any operational attributes for which information was excluded from the changelog entry by access control and/or sensitive processing, or an empty list if that information was not included in the changelog entry.
      • getChangeToSoftDeletedEntry

        @Nullable
        public java.lang.Boolean getChangeToSoftDeletedEntry()
        Indicates whether the associated modify or delete operation targeted a soft-deleted entry.
        Returns:
        true if the modify or delete operation targeted a soft-deleted entry, false if not, or null if that information was not included in the changelog entry (which likely indicates that the operation did not target a soft-deleted entry).
      • getSoftDeleteToDN

        @Nullable
        public java.lang.String getSoftDeleteToDN()
        Retrieves the DN of the soft-deleted entry that resulted from the associated soft delete operation.
        Returns:
        The DN of the soft-deleted entry that resulted from the associated soft delete operation, or null if that information was not included in the changelog entry (e.g., because it does not represent a soft delete operation).
      • getUndeleteFromDN

        @Nullable
        public java.lang.String getUndeleteFromDN()
        Retrieves the DN of the soft-deleted entry from which the content of an add operation was obtained, if that operation represents an undelete rather than a normal add.
        Returns:
        The DN of the soft-deleted entry from which the content of an add operation was obtained, or null if that information was not included in the changelog entry (e.g., because it does not represent an undelete operation).
      • getTargetAttributeNames

        @NotNull
        public java.util.List<java.lang.String> getTargetAttributeNames()
        Retrieves the names of any attributes targeted by the change, if available. For an add operation, this may include the attributes in the entry that was added. For a delete operation, this may include the attributes in the entry that was deleted. For a modify operation, this may include the attributes targeted by modifications. For a modify DN operation, this may include attributes used in the new RDN and potentially any other attributes altered during the change.

        Note that this information may not be available in all changelog entries or Directory Server versions, and complete information about some changes may only be available in some changelog configurations (e.g., information about attributes included in delete operations may only be available if changelog-deleted-entry-include-attribute is configured, and information about changes to non-RDN attributes for modify DN operations may only be available if changelog-max-before-after-values is configured).
        Returns:
        The names of any attributes targeted by the change, or an empty list if that information was not included in the changelog entry.
      • getNotificationDestinationEntryUUIDs

        @NotNull
        public java.util.List<java.lang.String> getNotificationDestinationEntryUUIDs()
        Retrieves a list of the entryUUID values for any notification destinations for which the change matches one or more subscriptions.
        Returns:
        A list of the entryUUID values for any notification destinations for which the change matches one or more subscriptions, or an empty list if that information was not included in the changelog entry.
      • getNotificationProperties

        @NotNull
        public java.util.List<java.lang.String> getNotificationProperties()
        Retrieves a list of any notification properties included in the changelog entry.
        Returns:
        A list of any notification properties included in the changelog entry, or an empty list if that information was not included in the changelog entry.
      • getAttributeBeforeChange

        @Nullable
        public Attribute getAttributeBeforeChange​(@NotNull
                                                  java.lang.String name)
                                           throws ChangeLogEntryAttributeExceededMaxValuesException
        Retrieves the specified attribute as it appeared in the target entry before the change was processed, if available. It will not include any virtual values.
        Parameters:
        name - The name of the attribute to retrieve as it appeared before the change.
        Returns:
        The requested attribute as it appeared in the target entry before the change was processed, or null if it was not available in the changelog entry.
        Throws:
        ChangeLogEntryAttributeExceededMaxValuesException - If the specified attribute had more values before the change than may be included in a changelog entry.
      • getAttributeBeforeChange

        @Nullable
        public Attribute getAttributeBeforeChange​(@NotNull
                                                  java.lang.String name,
                                                  boolean includeVirtual)
                                           throws ChangeLogEntryAttributeExceededMaxValuesException
        Retrieves the specified attribute as it appeared in the target entry before the change was processed, if available. It may optionally include virtual values.
        Parameters:
        name - The name of the attribute to retrieve as it appeared before the change.
        includeVirtual - Indicates whether to include both real and virtual values (if true, or only real values (if false), for the attribute to be returned.
        Returns:
        The requested attribute as it appeared in the target entry before the change was processed, or null if it was not available in the changelog entry.
        Throws:
        ChangeLogEntryAttributeExceededMaxValuesException - If the specified attribute had more values before the change than may be included in a changelog entry.
      • getAttributeAfterChange

        @Nullable
        public Attribute getAttributeAfterChange​(@NotNull
                                                 java.lang.String name)
                                          throws ChangeLogEntryAttributeExceededMaxValuesException
        Retrieves the specified attribute as it appeared in the target entry after the change was processed, if available. It will not include any virtual values.
        Parameters:
        name - The name of the attribute to retrieve as it appeared after the change.
        Returns:
        The requested attribute as it appeared in the target entry after the change was processed, or null if it was not available in the changelog entry.
        Throws:
        ChangeLogEntryAttributeExceededMaxValuesException - If the specified attribute had more values before the change than may be included in a changelog entry.
      • getAttributeAfterChange

        @Nullable
        public Attribute getAttributeAfterChange​(@NotNull
                                                 java.lang.String name,
                                                 boolean includeVirtual)
                                          throws ChangeLogEntryAttributeExceededMaxValuesException
        Retrieves the specified attribute as it appeared in the target entry after the change was processed, if available. It may optionally include virtual values.
        Parameters:
        name - The name of the attribute to retrieve as it appeared after the change.
        includeVirtual - Indicates whether to include both real and virtual values (if true, or only real values (if false), for the attributes to be returned.
        Returns:
        The requested attribute as it appeared in the target entry after the change was processed, or null if it was not available in the changelog entry.
        Throws:
        ChangeLogEntryAttributeExceededMaxValuesException - If the specified attribute had more values before the change than may be included in a changelog entry.
      • constructPartialEntryBeforeChange

        @Nullable
        public ReadOnlyEntry constructPartialEntryBeforeChange()
        Attempts to construct a partial representation of the target entry as it appeared before the change was processed. The information contained in the constructed entry will be based solely on information contained in the changelog entry, including information provided in the deletedEntryAttrs, ds-changelog-before-values, ds-changelog-after-values, ds-changelog-entry-key-attr-values, and ds-changelog-attr-exceeded-max-values-count attributes. It will not include any virtual attribute information.
        Returns:
        A partial representation of the target entry as it appeared before the change was processed, or null if the change was an add operation and therefore the entry did not exist before the change.
      • constructPartialEntryBeforeChange

        @Nullable
        public ReadOnlyEntry constructPartialEntryBeforeChange​(boolean includeVirtual)
        Attempts to construct a partial representation of the target entry as it appeared before the change was processed. The information contained in the constructed entry will be based solely on information contained in the changelog entry, including information provided in the deletedEntryAttrs, ds-changelog-before-values, ds-changelog-after-values, ds-changelog-entry-key-attr-values, and ds-changelog-attr-exceeded-max-values-count attributes, and optionally virtual versions of all of those elements.
        Parameters:
        includeVirtual - Indicates whether to include both real and virtual values (if true, or only real values (if false), for the attributes to be returned.
        Returns:
        A partial representation of the target entry as it appeared before the change was processed, or null if the change was an add operation and therefore the entry did not exist before the change.
      • constructPartialEntryAfterChange

        @Nullable
        public ReadOnlyEntry constructPartialEntryAfterChange()
        Attempts to construct a partial representation of the target entry as it appeared after the change was processed. The information contained in the constructed entry will be based solely on information contained in the changelog entry, including information provided in the changes, ds-changelog-after-values, and ds-changelog-entry-key-attr-values attributes. It will not include any virtual attribute information.
        Returns:
        A partial representation of the target entry as it appeared after the change was processed, or null if the change was a delete operation and therefore did not exist after the change.
      • constructPartialEntryAfterChange

        @Nullable
        public ReadOnlyEntry constructPartialEntryAfterChange​(boolean includeVirtual)
        Attempts to construct a partial representation of the target entry as it appeared after the change was processed. The information contained in the constructed entry will be based solely on information contained in the changelog entry, including information provided in the changes, ds-changelog-after-values, and ds-changelog-entry-key-attr-values attributes, and optionally virtual versions of all of those elements.
        Parameters:
        includeVirtual - Indicates whether to include both real and virtual values (if true, or only real values (if false), for the attributes to be returned.
        Returns:
        A partial representation of the target entry as it appeared after the change was processed, or null if the change was a delete operation and therefore did not exist after the change.