Class AbstractReactiveEntitiesOperations<Ctx extends OperationContext,T,Exc extends Exception>
java.lang.Object
io.micronaut.data.runtime.operations.internal.ReactiveEntitiesOperations<T,Exc>
io.micronaut.data.runtime.operations.internal.AbstractReactiveEntitiesOperations<Ctx,T,Exc>
- Type Parameters:
Ctx- The operation contextT- The entity typeExc- The exception
@Internal
public abstract class AbstractReactiveEntitiesOperations<Ctx extends OperationContext,T,Exc extends Exception>
extends ReactiveEntitiesOperations<T,Exc>
Abstract reactive entities operations.
- Since:
- 3.3
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected final classInternal entity data holder. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final ReactiveCascadeOperations<Ctx>protected final io.micronaut.core.convert.ConversionServiceprotected final Ctxprotected final io.micronaut.data.event.EntityEventListener<Object>protected final booleanprotected final booleanprotected final io.micronaut.data.model.runtime.RuntimePersistentEntity<T>protected reactor.core.publisher.Mono<Long> -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractReactiveEntitiesOperations(Ctx ctx, ReactiveCascadeOperations<Ctx> cascadeOperations, io.micronaut.core.convert.ConversionService conversionService, io.micronaut.data.event.EntityEventListener<Object> entityEventListener, io.micronaut.data.model.runtime.RuntimePersistentEntity<T> persistentEntity, Iterable<T> entities, boolean insert) Default constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcascadePost(io.micronaut.data.annotation.Relation.Cascade cascadeType) Cascade post operation.protected voidcascadePre(io.micronaut.data.annotation.Relation.Cascade cascadeType) Cascade pre operation.protected voidcheckOptimisticLocking(long expected, long received) Compare the expected modifications and the received rows count.protected abstract voidCollect auto-populated values before pre-triggers modifies them.voiddelete()Delete one operation.protected abstract voidexecute()Execute update.protected voidreactor.core.publisher.Flux<T>reactor.core.publisher.Mono<Number>protected booleanCheck if data not vetoed.voidpersist()Persist one operation.protected voidtriggerPost(Consumer<io.micronaut.data.event.EntityEventContext<Object>> fn) Trigger post-actions onEntityEventContext.protected voidTrigger the post persist event.protected voidTrigger the post remove event.protected voidTrigger the post update event.protected booleantriggerPre(Function<io.micronaut.data.event.EntityEventContext<Object>, Boolean> fn) Trigger pre-actions onEntityEventContext.protected booleanTrigger the pre persist event.protected booleanTrigger the pre remove event.protected booleanTrigger the pre update event.voidupdate()Update one operation.protected TupdateEntityId(io.micronaut.core.beans.BeanProperty<T, Object> identity, T entity, Object id) Update entity id.voidVeto an entity.
-
Field Details
-
ctx
-
cascadeOperations
-
insert
protected final boolean insert -
hasGeneratedId
protected final boolean hasGeneratedId -
entities
protected reactor.core.publisher.Mono<List<AbstractReactiveEntitiesOperations<Ctx extends OperationContext,T, entitiesExc extends Exception>.Data>> -
rowsUpdated
-
entityEventListener
-
persistentEntity
-
conversionService
protected final io.micronaut.core.convert.ConversionService conversionService
-
-
Constructor Details
-
AbstractReactiveEntitiesOperations
protected AbstractReactiveEntitiesOperations(Ctx ctx, ReactiveCascadeOperations<Ctx> cascadeOperations, io.micronaut.core.convert.ConversionService conversionService, io.micronaut.data.event.EntityEventListener<Object> entityEventListener, io.micronaut.data.model.runtime.RuntimePersistentEntity<T> persistentEntity, Iterable<T> entities, boolean insert) Default constructor.- Parameters:
ctx- The contextcascadeOperations- The cascade operationsconversionService- The conversion serviceentityEventListener- The entity event listenerpersistentEntity- The persistent entityentities- The entitiesinsert- The insert
-
-
Method Details
-
cascadePre
protected void cascadePre(io.micronaut.data.annotation.Relation.Cascade cascadeType) Cascade pre operation.- Parameters:
cascadeType- The cascade type
-
cascadePost
protected void cascadePost(io.micronaut.data.annotation.Relation.Cascade cascadeType) Cascade post operation.- Parameters:
cascadeType- The cascade type
-
veto
Veto an entity.- Parameters:
predicate- The veto predicate
-
triggerPre
protected boolean triggerPre(Function<io.micronaut.data.event.EntityEventContext<Object>, Boolean> fn) Trigger pre-actions onEntityEventContext.- Parameters:
fn- The entity context function- Returns:
- true if operation was vetoed
-
triggerPost
Trigger post-actions onEntityEventContext.- Parameters:
fn- The entity context function
-
notVetoed
Check if data not vetoed.- Parameters:
data- The data- Returns:
- true if data is not vetoed
-
getEntities
- Specified by:
getEntitiesin classReactiveEntitiesOperations<T,Exc extends Exception> - Returns:
- The entities
-
getRowsUpdated
- Returns:
- Rows updated.
-
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(Exception e, String operation) throws io.micronaut.data.exceptions.DataAccessException - Throws:
io.micronaut.data.exceptions.DataAccessException
-
collectAutoPopulatedPreviousValues
protected abstract void collectAutoPopulatedPreviousValues()Collect auto-populated values before pre-triggers modifies them. -
execute
Execute update. -
updateEntityId
protected T updateEntityId(io.micronaut.core.beans.BeanProperty<T, Object> identity, T entity, 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.
-