Class AsyncCollection


  • public class AsyncCollection
    extends Object
    The AsyncCollection provides basic asynchronous access to all collection APIs.

    This type of API provides asynchronous support through the concurrency mechanisms that ship with Java 8 and later, notably the async CompletableFuture. It is the async mechanism with the lowest overhead (best performance) but also comes with less bells and whistles as the ReactiveCollection for example.

    Most of the time we recommend using the ReactiveCollection unless you need the last drop of performance or if you are implementing higher level primitives on top of this one.

    Since:
    3.0.0
    • Method Detail

      • name

        public String name()
        The name of the collection in use.
        Returns:
        the name of the collection.
      • bucketName

        public String bucketName()
        Returns the name of the bucket associated with this collection.
      • scopeName

        public String scopeName()
        Returns the name of the scope associated with this collection.
      • get

        public CompletableFuture<GetResult> get​(String id)
        Fetches a full document (or a projection of it) from a collection with default options.
        Parameters:
        id - the document id which is used to uniquely identify it.
        Returns:
        a CompletableFuture indicating once loaded or failed.
      • get

        public CompletableFuture<GetResult> get​(String id,
                                                GetOptions options)
        Fetches a full document (or a projection of it) from a collection with custom options.
        Parameters:
        id - the document id which is used to uniquely identify it.
        options - custom options to change the default behavior.
        Returns:
        a CompletableFuture completing once loaded or failed.
      • getAndLock

        public CompletableFuture<GetResult> getAndLock​(String id,
                                                       Duration lockTime)
        Fetches a full document and write-locks it for the given duration with default options.
        Parameters:
        id - the document id which is used to uniquely identify it.
        lockTime - how long to lock the document for. Any values above 30 seconds will be treated as 30 seconds.
        Returns:
        a CompletableFuture completing once loaded or failed.
      • getAndLock

        public CompletableFuture<GetResult> getAndLock​(String id,
                                                       Duration lockTime,
                                                       GetAndLockOptions options)
        Fetches a full document and write-locks it for the given duration with custom options.
        Parameters:
        id - the document id which is used to uniquely identify it.
        lockTime - how long to lock the document for. Any values above 30 seconds will be treated as 30 seconds.
        options - custom options to change the default behavior.
        Returns:
        a CompletableFuture completing once loaded or failed.
      • getAndTouch

        public CompletableFuture<GetResult> getAndTouch​(String id,
                                                        Duration expiry)
        Fetches a full document and resets its expiration time to the value provided with default options.
        Parameters:
        id - the document id which is used to uniquely identify it.
        expiry - the new expiration time for the document.
        Returns:
        a CompletableFuture completing once loaded or failed.
      • getAndTouch

        public CompletableFuture<GetResult> getAndTouch​(String id,
                                                        Duration expiry,
                                                        GetAndTouchOptions options)
        Fetches a full document and resets its expiration time to the value provided with custom options.
        Parameters:
        id - the document id which is used to uniquely identify it.
        expiry - the new expiration time for the document.
        options - custom options to change the default behavior.
        Returns:
        a CompletableFuture completing once loaded or failed.
      • getAllReplicas

        public CompletableFuture<List<CompletableFuture<GetReplicaResult>>> getAllReplicas​(String id)
        Reads from all available replicas and the active node and returns the results as a list of futures that might complete or fail.
        Parameters:
        id - the document id.
        Returns:
        a list of results from the active and the replica.
      • getAnyReplica

        public CompletableFuture<GetReplicaResult> getAnyReplica​(String id)
        Reads all available replicas, and returns the first found.
        Parameters:
        id - the document id.
        Returns:
        a future containing the first available replica.
      • getAnyReplica

        public CompletableFuture<GetReplicaResult> getAnyReplica​(String id,
                                                                 GetAnyReplicaOptions options)
        Reads all available replicas, and returns the first found.
        Parameters:
        id - the document id.
        options - the custom options.
        Returns:
        a future containing the first available replica.
      • insert

        public CompletableFuture<MutationResult> insert​(String id,
                                                        Object content)
        Inserts a full document which does not exist yet with default options.
        Parameters:
        id - the document id to insert.
        content - the document content to insert.
        Returns:
        a CompletableFuture completing once inserted or failed.
      • insert

        public CompletableFuture<MutationResult> insert​(String id,
                                                        Object content,
                                                        InsertOptions options)
        Inserts a full document which does not exist yet with custom options.
        Parameters:
        id - the document id to insert.
        content - the document content to insert.
        options - custom options to customize the insert behavior.
        Returns:
        a CompletableFuture completing once inserted or failed.
      • upsert

        public CompletableFuture<MutationResult> upsert​(String id,
                                                        Object content)
        Upserts a full document which might or might not exist yet with default options.
        Parameters:
        id - the document id to upsert.
        content - the document content to upsert.
        Returns:
        a CompletableFuture completing once upserted or failed.
      • upsert

        public CompletableFuture<MutationResult> upsert​(String id,
                                                        Object content,
                                                        UpsertOptions options)
        Upserts a full document which might or might not exist yet with custom options.
        Parameters:
        id - the document id to upsert.
        content - the document content to upsert.
        options - custom options to customize the upsert behavior.
        Returns:
        a CompletableFuture completing once upserted or failed.
      • replace

        public CompletableFuture<MutationResult> replace​(String id,
                                                         Object content)
        Replaces a full document which already exists with default options.
        Parameters:
        id - the document id to replace.
        content - the document content to replace.
        Returns:
        a CompletableFuture completing once replaced or failed.
      • replace

        public CompletableFuture<MutationResult> replace​(String id,
                                                         Object content,
                                                         ReplaceOptions options)
        Replaces a full document which already exists with custom options.
        Parameters:
        id - the document id to replace.
        content - the document content to replace.
        options - custom options to customize the replace behavior.
        Returns:
        a CompletableFuture completing once replaced or failed.
      • touch

        public CompletableFuture<MutationResult> touch​(String id,
                                                       Duration expiry)
        Updates the expiry of the document with the given id with default options.
        Parameters:
        id - the id of the document to update.
        expiry - the new expiry for the document.
        Returns:
        a MutationResult once the operation completes.
      • touch

        public CompletableFuture<MutationResult> touch​(String id,
                                                       Duration expiry,
                                                       TouchOptions options)
        Updates the expiry of the document with the given id with custom options.
        Parameters:
        id - the id of the document to update.
        expiry - the new expiry for the document.
        options - the custom options.
        Returns:
        a MutationResult once the operation completes.
      • unlock

        public CompletableFuture<Void> unlock​(String id,
                                              long cas)
        Unlocks a document if it has been locked previously, with default options.
        Parameters:
        id - the id of the document.
        cas - the CAS value which is needed to unlock it.
        Returns:
        the future which completes once a response has been received.
      • unlock

        public CompletableFuture<Void> unlock​(String id,
                                              long cas,
                                              UnlockOptions options)
        Unlocks a document if it has been locked previously, with custom options.
        Parameters:
        id - the id of the document.
        cas - the CAS value which is needed to unlock it.
        options - the options to customize.
        Returns:
        the future which completes once a response has been received.
      • lookupIn

        public CompletableFuture<LookupInResult> lookupIn​(String id,
                                                          List<LookupInSpec> specs)
        Performs lookups to document fragments with default options.
        Parameters:
        id - the outer document ID.
        specs - the spec which specifies the type of lookups to perform.
        Returns:
        the LookupInResult once the lookup has been performed or failed.
      • lookupIn

        public CompletableFuture<LookupInResult> lookupIn​(String id,
                                                          List<LookupInSpec> specs,
                                                          LookupInOptions options)
        Performs lookups to document fragments with custom options.
        Parameters:
        id - the outer document ID.
        specs - the spec which specifies the type of lookups to perform.
        options - custom options to modify the lookup options.
        Returns:
        the LookupInResult once the lookup has been performed or failed.
      • mutateIn

        public CompletableFuture<MutateInResult> mutateIn​(String id,
                                                          List<MutateInSpec> specs)
        Performs mutations to document fragments with default options.
        Parameters:
        id - the outer document ID.
        specs - the spec which specifies the type of mutations to perform.
        Returns:
        the MutateInResult once the mutation has been performed or failed.
      • mutateIn

        public CompletableFuture<MutateInResult> mutateIn​(String id,
                                                          List<MutateInSpec> specs,
                                                          MutateInOptions options)
        Performs mutations to document fragments with custom options.
        Parameters:
        id - the outer document ID.
        specs - the spec which specifies the type of mutations to perform.
        options - custom options to modify the mutation options.
        Returns:
        the MutateInResult once the mutation has been performed or failed.