Class AuditDetailAccumulator
java.lang.Object
com.kingsrook.qqq.backend.core.model.actions.audits.AuditDetailAccumulator
- All Implemented Interfaces:
Serializable
Object to accumulate multiple audit-details to be recorded under a single
audit per-record, within a process step. Especially useful if/when the
process step spreads its work out through multiple classes.
Pattern of usage looks like:
// declare as a field (or local) w/ message for the audit headers
private AuditDetailAccumulator auditDetailAccumulator = new AuditDetailAccumulator("Audit header message");
// put into thread context
AuditDetailAccumulator.setInContext(auditDetailAccumulator);
// add a detail message for a record
auditDetailAccumulator.addAuditDetail(tableName, record, "Detail message");
// in another class, get the accumulator from context and safely add a detail message
AuditDetailAccumulator.getFromContext().ifPresent(ada -> ada.addAuditDetail(tableName, record, "More Details"));
// at the end of a step run/runOnePage method, add the accumulated audit details to step output
auditDetailAccumulator.getAccumulatedAuditSingleInputs().forEach(runBackendStepOutput::addAuditSingleInput);
auditDetailAccumulator.clear();
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAuditDetail(String tableName, QRecordEntity entity, String message) voidaddAuditDetail(String tableName, QRecord record, String message) voidclear()static Optional<AuditDetailAccumulator> void
-
Constructor Details
-
AuditDetailAccumulator
Constructor
-
-
Method Details
-
setInContext
public void setInContext() -
getFromContext
-
addAuditDetail
-
addAuditDetail
-
getAccumulatedAuditSingleInputs
-
clear
public void clear()
-