Package io.jmix.audit.snapshot
Interface EntitySnapshotManager
- All Known Implementing Classes:
EntitySnapshotManagerImpl
public interface EntitySnapshotManager
Creates and analyzes entity snapshots.
-
Method Summary
Modifier and TypeMethodDescriptioncreateSnapshot
(Object entity, FetchPlan fetchPlan) Create snapshot for Entity and store it to databasecreateSnapshot
(Object entity, FetchPlan fetchPlan, Date snapshotDate) Create snapshot for Entity with specific date and store it to databasecreateSnapshot
(Object entity, FetchPlan fetchPlan, Date snapshotDate, String authorUsername) Create snapshot for Entity with specific date and author and store it to databasecreateTempSnapshot
(Object entity, FetchPlan fetchPlan) Creates non-persistent snapshot for entity.createTempSnapshot
(Object entity, FetchPlan fetchPlan, Date snapshotDate) Creates non-persistent snapshot for entity with a specific date.createTempSnapshot
(Object entity, FetchPlan fetchPlan, Date snapshotDate, String authorUsername) Creates non-persistent snapshot for entity with a specific date and author.extractEntity
(EntitySnapshotModel snapshot) Restore entity by snapshotextractFetchPlan
(EntitySnapshotModel snapshot) Restore fetch plan from snapshotgetLastEntitySnapshot
(MetaClass metaClass, Object referenceId) Get the last snapshot for the given entity by id.getLastEntitySnapshot
(Object entity) Get the last snapshot for the given entity.getSnapshots
(MetaClass metaClass, Object id) Load snapshots for entitygetSnapshots
(Object entity) Get snapshots for entityvoid
Translate snapshots for archival classes
-
Method Details
-
getSnapshots
Load snapshots for entity- Parameters:
metaClass
- Entity metaclassid
- Entity Id- Returns:
- Snapshot list sorted by snapshotDate desc
-
getSnapshots
Get snapshots for entity- Parameters:
entity
- Entity object- Returns:
- Snapshot list
-
migrateSnapshots
Translate snapshots for archival classes- Parameters:
metaClass
- Metaclassid
- Entity IdclassMapping
- Map of [OldClass -> NewClass] for migration
-
createSnapshot
Create snapshot for Entity and store it to database- Parameters:
entity
- EntityfetchPlan
- FetchPlan- Returns:
- Snapshot
-
createSnapshot
Create snapshot for Entity with specific date and store it to database- Parameters:
entity
- EntityfetchPlan
- FetchPlansnapshotDate
- Date- Returns:
- Snapshot
-
createSnapshot
EntitySnapshotModel createSnapshot(Object entity, FetchPlan fetchPlan, Date snapshotDate, String authorUsername) Create snapshot for Entity with specific date and author and store it to database- Parameters:
entity
- EntityfetchPlan
- FetchPlansnapshotDate
- DateauthorUsername
- Author- Returns:
- Snapshot
-
extractEntity
Restore entity by snapshot- Parameters:
snapshot
- Snapshot- Returns:
- Entity instance
-
extractFetchPlan
Restore fetch plan from snapshot- Parameters:
snapshot
- Snapshot- Returns:
- FetchPlan instance
-
getLastEntitySnapshot
Get the last snapshot for the given entity. This method always starts a new transaction. It can be used for entities with composite key if they have UUID.- Parameters:
entity
- entity- Returns:
- snapshot or null if there is no snapshots in database for the given entity
-
getLastEntitySnapshot
Get the last snapshot for the given entity by id. This method always starts a new transaction.- Parameters:
metaClass
- entity meta classreferenceId
- reference id for which snapshot refers- Returns:
- snapshot or null if there is no snapshots in database for the given entity
-
createTempSnapshot
Creates non-persistent snapshot for entity. It can be used for entities with composite key if they have UUID.- Parameters:
entity
- entityfetchPlan
- fetchPlan- Returns:
- not persistence snapshot
-
createTempSnapshot
Creates non-persistent snapshot for entity with a specific date. It can be used for entities with composite key if they have UUID.- Parameters:
entity
- entityfetchPlan
- entity fetch plansnapshotDate
- date- Returns:
- not persistence snapshot
-
createTempSnapshot
EntitySnapshotModel createTempSnapshot(Object entity, FetchPlan fetchPlan, Date snapshotDate, String authorUsername) Creates non-persistent snapshot for entity with a specific date and author. It can be used for entities with composite key if they have UUID.- Parameters:
entity
- entityfetchPlan
- entity fetch plansnapshotDate
- dateauthorUsername
- author- Returns:
- not persistence snapshot
-