Class ExecutorAsyncOperations

java.lang.Object
io.micronaut.data.runtime.operations.ExecutorAsyncOperations
All Implemented Interfaces:
io.micronaut.data.operations.async.AsyncRepositoryOperations

public class ExecutorAsyncOperations extends Object implements io.micronaut.data.operations.async.AsyncRepositoryOperations
An implementation of AsyncRepositoryOperations that delegates to a blocking operations and specified Executor. This can be used in absence of true asynchronous support at the driver level.

If a backing implementation provides a async API then the backing implementation should not use this class and instead directly implement the AsyncRepositoryOperations interface.

Since:
1.0.0
  • Constructor Details

    • ExecutorAsyncOperations

      public ExecutorAsyncOperations(@NonNull @NonNull io.micronaut.data.operations.RepositoryOperations operations, @NonNull @NonNull Executor executor)
      Default constructor.
      Parameters:
      operations - The target operations
      executor - The executor to use.
  • Method Details

    • getExecutor

      public Executor getExecutor()
      Specified by:
      getExecutor in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • findOne

      @NonNull public <T> @NonNull CompletableFuture<T> findOne(@NonNull @NonNull Class<T> type, @NonNull @NonNull Object id)
      Specified by:
      findOne in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • exists

      public <T> CompletableFuture<Boolean> exists(@NonNull @NonNull io.micronaut.data.model.runtime.PreparedQuery<T,Boolean> preparedQuery)
      Specified by:
      exists in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • findOne

      @NonNull public <T, R> @NonNull CompletableFuture<R> findOne(@NonNull @NonNull io.micronaut.data.model.runtime.PreparedQuery<T,R> preparedQuery)
      Specified by:
      findOne in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • findOptional

      @NonNull public <T> @NonNull CompletableFuture<T> findOptional(@NonNull @NonNull Class<T> type, @NonNull @NonNull Object id)
      Specified by:
      findOptional in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • findOptional

      @NonNull public <T, R> @NonNull CompletableFuture<R> findOptional(@NonNull @NonNull io.micronaut.data.model.runtime.PreparedQuery<T,R> preparedQuery)
      Specified by:
      findOptional in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • findAll

      @NonNull public <T> @NonNull CompletableFuture<Iterable<T>> findAll(@NonNull @NonNull io.micronaut.data.model.runtime.PagedQuery<T> pagedQuery)
      Specified by:
      findAll in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • count

      public <T> CompletableFuture<Long> count(@NonNull @NonNull io.micronaut.data.model.runtime.PagedQuery<T> pagedQuery)
      Specified by:
      count in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • findAll

      @NonNull public <T, R> @NonNull CompletableFuture<Iterable<R>> findAll(@NonNull @NonNull io.micronaut.data.model.runtime.PreparedQuery<T,R> preparedQuery)
      Specified by:
      findAll in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • persist

      @NonNull public <T> @NonNull CompletableFuture<T> persist(@NonNull @NonNull io.micronaut.data.model.runtime.InsertOperation<T> entity)
      Specified by:
      persist in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • update

      @NonNull public <T> @NonNull CompletableFuture<T> update(@NonNull @NonNull io.micronaut.data.model.runtime.UpdateOperation<T> operation)
      Specified by:
      update in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • updateAll

      @NonNull public <T> @NonNull CompletableFuture<Iterable<T>> updateAll(@NonNull @NonNull io.micronaut.data.model.runtime.UpdateBatchOperation<T> operation)
      Specified by:
      updateAll in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • delete

      @NonNull public <T> @NonNull CompletableFuture<Number> delete(@NonNull @NonNull io.micronaut.data.model.runtime.DeleteOperation<T> operation)
      Specified by:
      delete in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • persistAll

      @NonNull public <T> @NonNull CompletableFuture<Iterable<T>> persistAll(@NonNull @NonNull io.micronaut.data.model.runtime.InsertBatchOperation<T> operation)
      Specified by:
      persistAll in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • executeUpdate

      @NonNull public @NonNull CompletableFuture<Number> executeUpdate(@NonNull @NonNull io.micronaut.data.model.runtime.PreparedQuery<?,Number> preparedQuery)
      Specified by:
      executeUpdate in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • executeDelete

      public CompletionStage<Number> executeDelete(io.micronaut.data.model.runtime.PreparedQuery<?,Number> preparedQuery)
      Specified by:
      executeDelete in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • deleteAll

      @NonNull public <T> @NonNull CompletableFuture<Number> deleteAll(@NonNull @NonNull io.micronaut.data.model.runtime.DeleteBatchOperation<T> operation)
      Specified by:
      deleteAll in interface io.micronaut.data.operations.async.AsyncRepositoryOperations
    • findPage

      public <R> CompletableFuture<io.micronaut.data.model.Page<R>> findPage(@NonNull @NonNull io.micronaut.data.model.runtime.PagedQuery<R> pagedQuery)
      Specified by:
      findPage in interface io.micronaut.data.operations.async.AsyncRepositoryOperations