Class DefaultBasicAuditUtility

    • Constructor Detail

      • DefaultBasicAuditUtility

        public DefaultBasicAuditUtility​(RepositoryUtility repositoryUtility,
                                        com.broadleafcommerce.common.extension.TypeFactory typeFactory)
    • Method Detail

      • setUpdateInformation

        public void setUpdateInformation​(@Nullable
                                         String author,
                                         BasicAuditable auditable)
        Description copied from interface: BasicAuditUtility
        Given an entity instance, set the update portion of BasicAuditable. Usually leveraged as part of another flow that is mutating and persisting an entity.
        Specified by:
        setUpdateInformation in interface BasicAuditUtility
        Parameters:
        author - The creator of the update based on the authentication principal
        auditable - The entity instance that exposes basic audit fields
      • setUpdateInformation

        public void setUpdateInformation​(@Nullable
                                         String author,
                                         BasicAuditable auditable,
                                         @Nullable
                                         BasicAuditable example)
        Description copied from interface: BasicAuditUtility
        Given an entity instance, set the update portion of BasicAuditable. Usually leveraged as part of another flow that is mutating and persisting an entity.
        Specified by:
        setUpdateInformation in interface BasicAuditUtility
        Parameters:
        author - The creator of the update based on the authentication principal
        auditable - The entity instance that exposes basic audit fields
        example - a BasicAuditable instance from which to derive the update date for the touch. The operation will only complete if the example update or creation date is newer than the update date already on the target.
      • setCreateInformation

        public void setCreateInformation​(@Nullable
                                         String author,
                                         BasicAuditable auditable)
        Description copied from interface: BasicAuditUtility
        Given an entity instance, set the create portion of BasicAuditable. Usually leveraged as part of another flow that is mutating and persisting an entity.
        Specified by:
        setCreateInformation in interface BasicAuditUtility
        Parameters:
        author - The creator of the update based on the authentication principal
        auditable - The entity instance that exposes basic audit fields
      • touch

        public <D extends Trackable> D touch​(@Nullable
                                             ContextInfo contextInfo,
                                             String contextId,
                                             Class<D> repositoryEntityType,
                                             @Nullable
                                             Trackable example)
        Description copied from interface: BasicAuditUtility
        Set the update portion of a BasicAuditable identified by the type and contextId, and then persist that change. This update also does not create sandbox state as a normal service operation might. The update here merely alters the persisted state of the entity found without further direct catalog propagation or sandbox support.

        This method is generally used to arbitrarily mark entity instances as updated - usually in response to another entity update by the system. Most commonly, it is a response to an update of a subordinate entity, when the desire is to also mark a parent entity as updated (even though it was not itself directly impacted). For example, it may be desirable to touch a Customer entity when a related CustomerAddress instance is updated. Actions such as this are normally taken by listeners for the InternalPersistenceEvent.
        Specified by:
        touch in interface BasicAuditUtility
        Type Parameters:
        D - The entity type
        Parameters:
        contextInfo - Represents context information regarding the current API request
        contextId - The Trackable id associated with the entity.
        repositoryEntityType - The class type for the entity
        example - a Trackable instance from which to derive the update date for the touch. The operation will only complete if the example update or creation date is newer than the update date already on the target.
        Returns:
        The updated and persisted entity instance