Class AbstractSyncEntityOperations<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 AbstractSyncEntityOperations<Ctx extends OperationContext,​T,​Exc extends java.lang.Exception>
    extends SyncEntityOperations<T,​Exc>
    Abstract synchronous entity operations.
    Since:
    3.3
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected AbstractSyncEntityOperations​(Ctx ctx, SyncCascadeOperations<Ctx> cascadeOperations, io.micronaut.data.event.EntityEventListener<java.lang.Object> entityEventListener, io.micronaut.data.model.runtime.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 void cascadePost​(io.micronaut.data.annotation.Relation.Cascade cascadeType)
      Cascade post operation.
      protected void cascadePre​(io.micronaut.data.annotation.Relation.Cascade cascadeType)
      Cascade pre operation.
      protected void checkOptimisticLocking​(long expected, long received)
      Compare the expected modifications and the received rows count.
      protected void collectAutoPopulatedPreviousValues()
      Collect auto-populated values before pre-triggers modifies them.
      void delete()
      Delete one operation.
      protected abstract void execute()
      Execute update.
      protected void failed​(java.lang.Exception e, java.lang.String operation)  
      T getEntity()  
      void persist()
      Persist one operation.
      protected void triggerPost​(java.util.function.Consumer<io.micronaut.data.event.EntityEventContext<java.lang.Object>> fn)
      Trigger post-actions on EntityEventContext.
      protected void triggerPostPersist()
      Trigger the post persist event.
      protected void triggerPostRemove()
      Trigger the post remove event.
      protected void triggerPostUpdate()
      Trigger the post update event.
      protected boolean triggerPre​(java.util.function.Function<io.micronaut.data.event.EntityEventContext<java.lang.Object>,​java.lang.Boolean> fn)
      Trigger pre-actions on EntityEventContext.
      protected boolean triggerPrePersist()
      Trigger the pre persist event.
      protected boolean triggerPreRemove()
      Trigger the pre remove event.
      protected boolean triggerPreUpdate()
      Trigger the pre update event.
      void update()
      Update one operation.
      protected T updateEntityId​(io.micronaut.core.beans.BeanProperty<T,​java.lang.Object> identity, T entity, java.lang.Object id)
      Update entity id.
      void veto​(java.util.function.Predicate<T> predicate)
      Veto an entity.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • insert

        protected final boolean insert
      • hasGeneratedId

        protected final boolean hasGeneratedId
      • entity

        protected T entity
      • entityEventListener

        protected final io.micronaut.data.event.EntityEventListener<java.lang.Object> entityEventListener
      • persistentEntity

        protected final io.micronaut.data.model.runtime.RuntimePersistentEntity<T> persistentEntity
      • conversionService

        protected final io.micronaut.core.convert.ConversionService<?> conversionService
    • Constructor Detail

      • AbstractSyncEntityOperations

        protected AbstractSyncEntityOperations​(Ctx ctx,
                                               SyncCascadeOperations<Ctx> cascadeOperations,
                                               io.micronaut.data.event.EntityEventListener<java.lang.Object> entityEventListener,
                                               io.micronaut.data.model.runtime.RuntimePersistentEntity<T> persistentEntity,
                                               io.micronaut.core.convert.ConversionService<?> conversionService,
                                               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​(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
      • collectAutoPopulatedPreviousValues

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

        protected boolean triggerPre​(java.util.function.Function<io.micronaut.data.event.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<io.micronaut.data.event.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
      • 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.
      • failed

        protected void failed​(java.lang.Exception e,
                              java.lang.String operation)
                       throws io.micronaut.data.exceptions.DataAccessException
        Throws:
        io.micronaut.data.exceptions.DataAccessException
      • 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.