Class AbstractReactiveEntityOperations<Ctx extends OperationContext,​T,​Exc extends java.lang.Exception>

  • Type Parameters:
    Ctx - The operation context
    T - The entity type
    Exc - The exception

    @Internal
    public abstract class AbstractReactiveEntityOperations<Ctx extends OperationContext,​T,​Exc extends java.lang.Exception>
    extends ReactiveEntityOperations<T,​Exc>
    Abstract reactive entity operations.
    Since:
    3.3
    Author:
    Denis Stepanov
    • Constructor Detail

      • AbstractReactiveEntityOperations

        protected AbstractReactiveEntityOperations​(Ctx ctx,
                                                   ReactiveCascadeOperations<Ctx> cascadeOperations,
                                                   io.micronaut.core.convert.ConversionService<?> conversionService,
                                                   EntityEventListener<java.lang.Object> entityEventListener,
                                                   RuntimePersistentEntity<T> persistentEntity,
                                                   T entity,
                                                   boolean insert)
        Default constructor.
        Parameters:
        ctx - The context
        cascadeOperations - The cascade operations
        conversionService - The conversion service
        entityEventListener - The entity event listener
        persistentEntity - The persistent entity
        entity - The entity
        insert - 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
      • triggerPre

        protected boolean triggerPre​(java.util.function.Function<EntityEventContext<java.lang.Object>,​java.lang.Boolean> fn)
        Trigger pre-actions on EntityEventContext.
        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 on EntityEventContext.
        Parameters:
        fn - The entity context function
      • veto

        public void veto​(java.util.function.Predicate<T> predicate)
        Veto an entity.
        Parameters:
        predicate - The veto predicate
      • getRowsUpdated

        public reactor.core.publisher.Mono<java.lang.Number> getRowsUpdated()
        Returns:
        The rows updated
      • checkOptimisticLocking

        protected void checkOptimisticLocking​(long expected,
                                              long received)
        Compare the expected modifications and the received rows count. If not equals throw OptimisticLockException.
        Parameters:
        expected - The expected value
        received - THe received value
      • persist

        public void persist()
        Persist one operation.
      • delete

        public void delete()
        Delete one operation.
      • update

        public void update()
        Update one operation.
      • collectAutoPopulatedPreviousValues

        protected abstract void collectAutoPopulatedPreviousValues()
        Collect auto-populated values before pre-triggers modifies them.
      • execute

        protected abstract void execute()
                                 throws Exc extends java.lang.Exception
        Execute update.
        Throws:
        Exc - The exception
        Exc 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 instance
        id - 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.