Class AbstractSyncEntityOperations<Ctx extends OperationContext,T,Exc extends java.lang.Exception>
- java.lang.Object
-
- io.micronaut.data.runtime.operations.internal.EntityOperations<T,Exc>
-
- io.micronaut.data.runtime.operations.internal.SyncEntityOperations<T,Exc>
-
- io.micronaut.data.runtime.operations.internal.AbstractSyncEntityOperations<Ctx,T,Exc>
-
- Type Parameters:
Ctx- The operation contextT- The entity typeExc- The exception
@Internal public abstract class AbstractSyncEntityOperations<Ctx extends OperationContext,T,Exc extends java.lang.Exception> extends SyncEntityOperations<T,Exc>
Abstract synchronous entity operations.- Since:
- 3.3
- Author:
- Denis Stepanov
-
-
Field Summary
Fields Modifier and Type Field Description protected SyncCascadeOperations<Ctx>cascadeOperationsprotected io.micronaut.core.convert.ConversionService<?>conversionServiceprotected Ctxctxprotected Tentityprotected EntityEventListener<java.lang.Object>entityEventListenerprotected booleanhasGeneratedIdprotected booleaninsertprotected RuntimePersistentEntity<T>persistentEntity
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractSyncEntityOperations(Ctx ctx, SyncCascadeOperations<Ctx> cascadeOperations, EntityEventListener<java.lang.Object> entityEventListener, RuntimePersistentEntity<T> persistentEntity, io.micronaut.core.convert.ConversionService<?> conversionService, T entity, boolean insert)Default constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidcascadePost(Relation.Cascade cascadeType)Cascade post operation.protected voidcascadePre(Relation.Cascade cascadeType)Cascade pre operation.protected voidcheckOptimisticLocking(long expected, long received)Compare the expected modifications and the received rows count.protected voidcollectAutoPopulatedPreviousValues()Collect auto-populated values before pre-triggers modifies them.voiddelete()Delete one operation.protected abstract voidexecute()Execute update.protected voidfailed(java.lang.Exception e, java.lang.String operation)TgetEntity()voidpersist()Persist one operation.protected voidtriggerPost(java.util.function.Consumer<EntityEventContext<java.lang.Object>> fn)Trigger post-actions onEntityEventContext.protected voidtriggerPostPersist()Trigger the post persist event.protected voidtriggerPostRemove()Trigger the post remove event.protected voidtriggerPostUpdate()Trigger the post update event.protected booleantriggerPre(java.util.function.Function<EntityEventContext<java.lang.Object>,java.lang.Boolean> fn)Trigger pre-actions onEntityEventContext.protected booleantriggerPrePersist()Trigger the pre persist event.protected booleantriggerPreRemove()Trigger the pre remove event.protected booleantriggerPreUpdate()Trigger the pre update event.voidupdate()Update one operation.protected TupdateEntityId(io.micronaut.core.beans.BeanProperty<T,java.lang.Object> identity, T entity, java.lang.Object id)Update entity id.voidveto(java.util.function.Predicate<T> predicate)Veto an entity.
-
-
-
Field Detail
-
cascadeOperations
protected SyncCascadeOperations<Ctx extends OperationContext> cascadeOperations
-
ctx
protected final Ctx extends OperationContext ctx
-
insert
protected final boolean insert
-
hasGeneratedId
protected final boolean hasGeneratedId
-
entity
protected T entity
-
entityEventListener
protected final EntityEventListener<java.lang.Object> entityEventListener
-
persistentEntity
protected final RuntimePersistentEntity<T> persistentEntity
-
conversionService
protected final io.micronaut.core.convert.ConversionService<?> conversionService
-
-
Constructor Detail
-
AbstractSyncEntityOperations
protected AbstractSyncEntityOperations(Ctx ctx, SyncCascadeOperations<Ctx> cascadeOperations, EntityEventListener<java.lang.Object> entityEventListener, RuntimePersistentEntity<T> persistentEntity, io.micronaut.core.convert.ConversionService<?> conversionService, T entity, boolean insert)
Default constructor.- Parameters:
ctx- The contextcascadeOperations- The cascade operationsconversionService- The conversion serviceentityEventListener- The entity event listenerpersistentEntity- The persistent entityentity- The entityinsert- The insert
-
-
Method Detail
-
cascadePre
protected void cascadePre(Relation.Cascade cascadeType)
Cascade pre operation.- Parameters:
cascadeType- The cascade type
-
cascadePost
protected void cascadePost(Relation.Cascade cascadeType)
Cascade post operation.- Parameters:
cascadeType- The cascade type
-
collectAutoPopulatedPreviousValues
protected void collectAutoPopulatedPreviousValues()
Collect auto-populated values before pre-triggers modifies them.
-
triggerPre
protected boolean triggerPre(java.util.function.Function<EntityEventContext<java.lang.Object>,java.lang.Boolean> fn)
Trigger pre-actions onEntityEventContext.- Parameters:
fn- The entity context function- Returns:
- true if operation was vetoed
-
triggerPost
protected void triggerPost(java.util.function.Consumer<EntityEventContext<java.lang.Object>> fn)
Trigger post-actions onEntityEventContext.- Parameters:
fn- The entity context function
-
veto
public void veto(java.util.function.Predicate<T> predicate)
Veto an entity.- Parameters:
predicate- The veto predicate
-
getEntity
public T getEntity()
- Specified by:
getEntityin classSyncEntityOperations<T,Exc extends java.lang.Exception>
-
checkOptimisticLocking
protected void checkOptimisticLocking(long expected, long received)Compare the expected modifications and the received rows count. If not equals throwOptimisticLockException.- Parameters:
expected- The expected valuereceived- THe received value
-
persist
public void persist()
Persist one operation.
-
delete
public void delete()
Delete one operation.
-
update
public void update()
Update one operation.
-
failed
protected void failed(java.lang.Exception e, java.lang.String operation) throws DataAccessException- Throws:
DataAccessException
-
execute
protected abstract void execute() throws Exc extends java.lang.ExceptionExecute update.- Throws:
Exc- The exceptionExc extends java.lang.Exception
-
updateEntityId
protected T updateEntityId(io.micronaut.core.beans.BeanProperty<T,java.lang.Object> identity, T entity, java.lang.Object id)Update entity id.- Parameters:
identity- The identity property.entity- The entity instanceid- The id instance- Returns:
- The entity instance
-
triggerPrePersist
protected boolean triggerPrePersist()
Trigger the pre persist event.- Returns:
- true if operation was vetoed
-
triggerPreUpdate
protected boolean triggerPreUpdate()
Trigger the pre update event.- Returns:
- true if operation was vetoed
-
triggerPreRemove
protected boolean triggerPreRemove()
Trigger the pre remove event.- Returns:
- true if operation was vetoed
-
triggerPostUpdate
protected void triggerPostUpdate()
Trigger the post update event.
-
triggerPostRemove
protected void triggerPostRemove()
Trigger the post remove event.
-
triggerPostPersist
protected void triggerPostPersist()
Trigger the post persist event.
-
-