Interface SingleCellExperimentDesignAuditService

All Known Implementing Classes:
SingleCellExperimentDesignAuditServiceImpl

public interface SingleCellExperimentDesignAuditService
Co-bean carrying the ExperimentalDesignUpdatedEvent emissions for the cell-type-factor create / remove flows in SingleCellExpressionExperimentServiceImpl.

Hoisted out of SingleCellExpressionExperimentServiceImpl so the emission methods are invoked through a Spring proxy and the @Audited aspect can intercept them — the previous private createCellTypeFactor / removeCellTypeFactor helpers were self-invoked via this. from multiple call sites (5+ for create, 2 for remove) and were therefore invisible to AOP, blocking declarative migration.

Each method here is a thin pass-through: the caller still does all the domain work (constructing the factor, calling experimentalFactorService.create / remove, updating the experimental design) and then asks this co-bean to write the audit row. The audit emission is decoupled from the domain side-effects so the proxy boundary only covers the audit write.

See Also:
  • Method Details

    • recordCellTypeFactorCreated

      void recordCellTypeFactorCreated(ExpressionExperiment ee, ExperimentalFactor cellTypeFactor, String ctlDescription)
      Record an ExperimentalDesignUpdatedEvent against the EE noting the creation of a cell-type factor from a preferred cell-type assignment.
      Parameters:
      ee - experiment to audit
      cellTypeFactor - the freshly created cell-type factor
      ctlDescription - the preferred CTA's toString (passed by caller so the message matches the historical imperative form verbatim)
    • recordCellTypeFactorRemoved

      void recordCellTypeFactorRemoved(ExpressionExperiment ee, ExperimentalFactor removedCellTypeFactor)
      Record an ExperimentalDesignUpdatedEvent against the EE noting the removal of an existing cell-type factor.
      Parameters:
      ee - experiment to audit
      removedCellTypeFactor - the cell-type factor that was removed