Class AuditDetailAccumulator

java.lang.Object
com.kingsrook.qqq.backend.core.model.actions.audits.AuditDetailAccumulator
All Implemented Interfaces:
Serializable

public class AuditDetailAccumulator extends Object implements 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 Details

    • AuditDetailAccumulator

      public AuditDetailAccumulator(String header)
      Constructor
  • Method Details