Interface BasicAuditUtility
- All Known Implementing Classes:
DefaultBasicAuditUtility
public interface BasicAuditUtility
Developer utility for working with basic audit information for entities.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoidsetCreateInformation(String author, BasicAuditable auditable) Given an entity instance, set the create portion ofBasicAuditable.voidsetUpdateInformation(String author, BasicAuditable auditable) Given an entity instance, set the update portion ofBasicAuditable.voidsetUpdateInformation(String author, BasicAuditable auditable, BasicAuditable example) Given an entity instance, set the update portion ofBasicAuditable.<D extends Trackable>
Dtouch(ContextInfo contextInfo, String contextId, Class<D> repositoryEntityType, Trackable example) Set the update portion of aBasicAuditableidentified by the type and contextId, and then persist that change.
-
Method Details
-
setUpdateInformation
Given an entity instance, set the update portion ofBasicAuditable. Usually leveraged as part of another flow that is mutating and persisting an entity.- Parameters:
author- The creator of the update based on the authentication principalauditable- The entity instance that exposes basic audit fields
-
setUpdateInformation
void setUpdateInformation(@Nullable String author, BasicAuditable auditable, @Nullable BasicAuditable example) Given an entity instance, set the update portion ofBasicAuditable. Usually leveraged as part of another flow that is mutating and persisting an entity.- Parameters:
author- The creator of the update based on the authentication principalauditable- The entity instance that exposes basic audit fieldsexample- aBasicAuditableinstance 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
Given an entity instance, set the create portion ofBasicAuditable. Usually leveraged as part of another flow that is mutating and persisting an entity.- Parameters:
author- The creator of the update based on the authentication principalauditable- The entity instance that exposes basic audit fields
-
touch
<D extends Trackable> D touch(@Nullable ContextInfo contextInfo, String contextId, Class<D> repositoryEntityType, @Nullable Trackable example) Set the update portion of aBasicAuditableidentified 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 theInternalPersistenceEvent.- Type Parameters:
D- The entity type- Parameters:
contextInfo- Represents context information regarding the current API requestcontextId- TheTrackableid associated with the entity.repositoryEntityType- The class type for the entityexample- aTrackableinstance 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
- Throws:
EntityMissingException- Thrown if unable to find the requested entity
-