Class DefaultBucketManager

    • Method Detail

      • info

        public BucketInfo info()
        Description copied from interface: BucketManager
        Returns information about the connected bucket with the default management timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be decoded.
        Specified by:
        info in interface BucketManager
        Returns:
        bucket information wrapped in a BucketInfo.
      • flush

        public Boolean flush()
        Description copied from interface: BucketManager
        Flushes the bucket (removes all data) with the default management timeout. Note that flushing takes some time on the server to be performed properly, so do not set a too low timeout. Also, flush needs to be enabled on the bucket, otherwise an exception will be raised. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.FlushDisabledException: If flush is disabled. - com.couchbase.client.core.CouchbaseException: If the server response could not be parsed.
        Specified by:
        flush in interface BucketManager
        Returns:
        true if the bucket was flushed, an exception thrown if otherwise.
      • getDesignDocuments

        public List<DesignDocument> getDesignDocuments()
        Description copied from interface: BucketManager
        Loads all published DesignDocuments with the default management timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed.
        Specified by:
        getDesignDocuments in interface BucketManager
        Returns:
        a potentially empty list containing published DesignDocuments.
      • getDesignDocuments

        public List<DesignDocument> getDesignDocuments​(boolean development)
        Description copied from interface: BucketManager
        Loads all DesignDocuments from either development or production with the default management timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed.
        Specified by:
        getDesignDocuments in interface BucketManager
        Parameters:
        development - if DesignDocuments should be loaded from development or from production.
        Returns:
        a potentially empty list containing published DesignDocuments.
      • getDesignDocument

        public DesignDocument getDesignDocument​(String name)
        Description copied from interface: BucketManager
        Loads a published DesignDocument by its name with the default management timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed. - com.couchbase.client.java.error.DesignDocumentDoesNotExistException: If DesignDocument is not found.
        Specified by:
        getDesignDocument in interface BucketManager
        Parameters:
        name - the name of the DesignDocument.
        Returns:
        a DesignDocument if found.
      • getDesignDocument

        public DesignDocument getDesignDocument​(String name,
                                                boolean development)
        Description copied from interface: BucketManager
        Loads a DesignDocument by its name from either development or production with the default management timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed. - com.couchbase.client.java.error.DesignDocumentDoesNotExistException: If DesignDocument is not found.
        Specified by:
        getDesignDocument in interface BucketManager
        Parameters:
        name - the name of the DesignDocument.
        development - if DesignDocument should be loaded from development or from production.
        Returns:
        a DesignDocument if found.
      • insertDesignDocument

        public DesignDocument insertDesignDocument​(DesignDocument designDocument)
        Description copied from interface: BucketManager
        Inserts a DesignDocument into production if it does not exist with the default management timeout. Note that inserting a DesignDocument is not an atomic operation, but instead internally performs a BucketManager.getDesignDocument(String) operation first. While expected to be very uncommon, a race condition may happen if two users at the same time perform this operation with the same DesignDocument. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed. - com.couchbase.client.java.error.DesignDocumentAlreadyExistsException: If the DesignDocument exists.
        Specified by:
        insertDesignDocument in interface BucketManager
        Parameters:
        designDocument - the DesignDocument to insert.
        Returns:
        the inserted DesignDocument on success.
      • insertDesignDocument

        public DesignDocument insertDesignDocument​(DesignDocument designDocument,
                                                   boolean development)
        Description copied from interface: BucketManager
        Inserts a DesignDocument into development or production if it does not exist with the default management timeout. Note that inserting a DesignDocument is not an atomic operation, but instead internally performs a BucketManager.getDesignDocument(String) operation first. While expected to be very uncommon, a race condition may happen if two users at the same time perform this operation with the same DesignDocument. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed. - com.couchbase.client.java.error.DesignDocumentAlreadyExistsException: If the DesignDocument exists.
        Specified by:
        insertDesignDocument in interface BucketManager
        Parameters:
        designDocument - the DesignDocument to insert.
        development - if it should be inserted into development or production (published).
        Returns:
        the inserted DesignDocument on success.
      • upsertDesignDocument

        public DesignDocument upsertDesignDocument​(DesignDocument designDocument)
        Description copied from interface: BucketManager
        Upserts (inserts or replaces) a DesignDocument into production with the default management timeout. If you want to add or update view definitions to an existing design document, you need to make sure you have all the views (including old ones) in the DesignDocument. Use BucketManager.getDesignDocument(String) to get the old list and add your new view to it before calling this method. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed.
        Specified by:
        upsertDesignDocument in interface BucketManager
        Parameters:
        designDocument - the DesignDocument to upsert.
        Returns:
        the upserted DesignDocument on success.
      • upsertDesignDocument

        public DesignDocument upsertDesignDocument​(DesignDocument designDocument,
                                                   boolean development)
        Description copied from interface: BucketManager
        Upserts (inserts or replaces) a DesignDocument into production or development with the default management timeout. If you want to add or update view definitions to an existing design document, you need to make sure you have all the views (including old ones) in the DesignDocument. Use BucketManager.getDesignDocument(String) to get the old list and add your new view to it before calling this method. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed.
        Specified by:
        upsertDesignDocument in interface BucketManager
        Parameters:
        designDocument - the DesignDocument to upsert.
        development - if the DesignDocument should be upserted into development or production.
        Returns:
        the upserted DesignDocument on success.
      • removeDesignDocument

        public Boolean removeDesignDocument​(String name)
        Description copied from interface: BucketManager
        Removes a DesignDocument from production by its name with the default management timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.DesignDocumentDoesNotExistException: If DesignDocument is not found.
        Specified by:
        removeDesignDocument in interface BucketManager
        Parameters:
        name - the name of the DesignDocument.
        Returns:
        true if succeeded, false otherwise.
      • removeDesignDocument

        public Boolean removeDesignDocument​(String name,
                                            boolean development)
        Description copied from interface: BucketManager
        Removes a DesignDocument from production or development by its name with the default management timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.DesignDocumentDoesNotExistException: If DesignDocument is not found.
        Specified by:
        removeDesignDocument in interface BucketManager
        Parameters:
        name - the name of the DesignDocument.
        development - if the DesignDocument should be removed from development or production.
        Returns:
        true if succeeded, false otherwise.
      • publishDesignDocument

        public DesignDocument publishDesignDocument​(String name,
                                                    boolean overwrite)
        Description copied from interface: BucketManager
        Publishes a DesignDocument from development into production with the default management timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.DesignDocumentAlreadyExistsException: If the DesignDocument already exists and override is set to false. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed. - com.couchbase.client.java.error.DesignDocumentDoesNotExistException: If DesignDocument is not found in development.
        Specified by:
        publishDesignDocument in interface BucketManager
        Parameters:
        name - the name of the DesignDocument to publish.
        overwrite - if an existing DesignDocument should be overridden.
        Returns:
        the published DesignDocument on success.
      • info

        public BucketInfo info​(long timeout,
                               TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Returns information about the connected bucket with a custom timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed.
        Specified by:
        info in interface BucketManager
        Parameters:
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        bucket information wrapped in a BucketInfo.
      • flush

        public Boolean flush​(long timeout,
                             TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Flushes the bucket (removes all data) with a custom timeout. Note that flushing takes some time on the server to be performed properly, so do not set a too low timeout. Also, flush needs to be enabled on the bucket, otherwise an exception will be raised. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.FlushDisabledException: If flush is disabled. - com.couchbase.client.core.CouchbaseException: If the server response could not be parsed.
        Specified by:
        flush in interface BucketManager
        Parameters:
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        true if the bucket was flushed, an exception thrown if otherwise.
      • getDesignDocuments

        public List<DesignDocument> getDesignDocuments​(long timeout,
                                                       TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Loads all published DesignDocuments with a custom timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed.
        Specified by:
        getDesignDocuments in interface BucketManager
        Parameters:
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        a potentially empty list containing published DesignDocuments.
      • getDesignDocuments

        public List<DesignDocument> getDesignDocuments​(boolean development,
                                                       long timeout,
                                                       TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Loads all DesignDocuments from either development or production with a custom timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed.
        Specified by:
        getDesignDocuments in interface BucketManager
        Parameters:
        development - if DesignDocuments should be loaded from development or from production.
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        a potentially empty list containing published DesignDocuments.
      • getDesignDocument

        public DesignDocument getDesignDocument​(String name,
                                                long timeout,
                                                TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Loads a published DesignDocument by its name with the a custom timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed. - com.couchbase.client.java.error.DesignDocumentDoesNotExistException: If DesignDocument is not found.
        Specified by:
        getDesignDocument in interface BucketManager
        Parameters:
        name - the name of the DesignDocument.
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        a DesignDocument if found.
      • getDesignDocument

        public DesignDocument getDesignDocument​(String name,
                                                boolean development,
                                                long timeout,
                                                TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Loads a DesignDocuments by its name from either development or production with a custom timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed. - com.couchbase.client.java.error.DesignDocumentDoesNotExistException: If DesignDocument is not found.
        Specified by:
        getDesignDocument in interface BucketManager
        Parameters:
        name - the name of the DesignDocument.
        development - if DesignDocument should be loaded from development or from production.
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        a DesignDocument if found.
      • insertDesignDocument

        public DesignDocument insertDesignDocument​(DesignDocument designDocument,
                                                   long timeout,
                                                   TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Inserts a DesignDocument into production if it does not exist with a custom timeout. Note that inserting a DesignDocument is not an atomic operation, but instead internally performs a BucketManager.getDesignDocument(String) operation first. While expected to be very uncommon, a race condition may happen if two users at the same time perform this operation with the same DesignDocument. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed. - com.couchbase.client.java.error.DesignDocumentAlreadyExistsException: If the DesignDocument exists.
        Specified by:
        insertDesignDocument in interface BucketManager
        Parameters:
        designDocument - the DesignDocument to insert.
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        the inserted DesignDocument on success.
      • insertDesignDocument

        public DesignDocument insertDesignDocument​(DesignDocument designDocument,
                                                   boolean development,
                                                   long timeout,
                                                   TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Inserts a DesignDocument into development or production if it does not exist with a custom timeout. Note that inserting a DesignDocument is not an atomic operation, but instead internally performs a BucketManager.getDesignDocument(String) operation first. While expected to be very uncommon, a race condition may happen if two users at the same time perform this operation with the same DesignDocument. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed. - com.couchbase.client.java.error.DesignDocumentAlreadyExistsException: If the DesignDocument exists.
        Specified by:
        insertDesignDocument in interface BucketManager
        Parameters:
        designDocument - the DesignDocument to insert.
        development - if it should be inserted into development or production (published).
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        the inserted DesignDocument on success.
      • upsertDesignDocument

        public DesignDocument upsertDesignDocument​(DesignDocument designDocument,
                                                   long timeout,
                                                   TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Upserts (inserts or replaces) a DesignDocument into production with a custom timeout. If you want to add or update view definitions to an existing design document, you need to make sure you have all the views (including old ones) in the DesignDocument. Use BucketManager.getDesignDocument(String) to get the old list and add your new view to it before calling this method. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed.
        Specified by:
        upsertDesignDocument in interface BucketManager
        Parameters:
        designDocument - the DesignDocument to upsert.
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        the upserted DesignDocument on success.
      • upsertDesignDocument

        public DesignDocument upsertDesignDocument​(DesignDocument designDocument,
                                                   boolean development,
                                                   long timeout,
                                                   TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Upserts (inserts or replaces) a DesignDocument into production or development with a custom timeout. If you want to add or update view definitions to an existing design document, you need to make sure you have all the views (including old ones) in the DesignDocument. Use BucketManager.getDesignDocument(String) to get the old list and add your new view to it before calling this method. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed.
        Specified by:
        upsertDesignDocument in interface BucketManager
        Parameters:
        designDocument - the DesignDocument to upsert.
        development - if the DesignDocument should be upserted into development or production.
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        the upserted DesignDocument on success.
      • removeDesignDocument

        public Boolean removeDesignDocument​(String name,
                                            long timeout,
                                            TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Removes a DesignDocument from production by its name with a custom timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.DesignDocumentDoesNotExistException: If DesignDocument is not found.
        Specified by:
        removeDesignDocument in interface BucketManager
        Parameters:
        name - the name of the DesignDocument.
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        true if succeeded, false otherwise.
      • removeDesignDocument

        public Boolean removeDesignDocument​(String name,
                                            boolean development,
                                            long timeout,
                                            TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Removes a DesignDocument from production or development by its name with a custom timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.DesignDocumentDoesNotExistException: If DesignDocument is not found.
        Specified by:
        removeDesignDocument in interface BucketManager
        Parameters:
        name - the name of the DesignDocument.
        development - if the DesignDocument should be removed from development or production.
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        true if succeeded, false otherwise.
      • publishDesignDocument

        public DesignDocument publishDesignDocument​(String name,
                                                    long timeout,
                                                    TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Publishes a DesignDocument from development into production with a custom timeout. Note that this method does not override a already existing DesignDocument (see BucketManager.publishDesignDocument(String, boolean)) as an alternative. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.DesignDocumentAlreadyExistsException: If the DesignDocument already exists. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed. - com.couchbase.client.java.error.DesignDocumentDoesNotExistException: If DesignDocument is not found in development.
        Specified by:
        publishDesignDocument in interface BucketManager
        Parameters:
        name - the name of the DesignDocument to publish.
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        the published DesignDocument on success.
      • publishDesignDocument

        public DesignDocument publishDesignDocument​(String name,
                                                    boolean overwrite,
                                                    long timeout,
                                                    TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Publishes a DesignDocument from development into production with a custom timeout. This method throws: - java.util.concurrent.TimeoutException: If the timeout is exceeded. - com.couchbase.client.java.error.DesignDocumentAlreadyExistsException: If the DesignDocument already exists and override is set to false. - com.couchbase.client.java.error.TranscodingException: If the server response could not be parsed. - com.couchbase.client.java.error.DesignDocumentDoesNotExistException: If DesignDocument is not found in development.
        Specified by:
        publishDesignDocument in interface BucketManager
        Parameters:
        name - the name of the DesignDocument to publish.
        overwrite - if an existing DesignDocument should be overridden.
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        the published DesignDocument on success.
      • listN1qlIndexes

        public List<IndexInfo> listN1qlIndexes()
        Description copied from interface: BucketManager
        List all N1QL GSI indexes that are registered for the current bucket, with the default management timeout. The index management API only deals with GSI type of indexes, which allows it to uniquely identify indexes by name.
        Specified by:
        listN1qlIndexes in interface BucketManager
        Returns:
        a List containing each relevant IndexInfo (can be empty if no index is defined for this bucket).
      • listN1qlIndexes

        public List<IndexInfo> listN1qlIndexes​(long timeout,
                                               TimeUnit timeUnit)
        Description copied from interface: BucketManager
        List all N1QL GSI indexes that are registered for the current bucket, with a custom timeout. The index management API only deals with GSI type of indexes, which allows it to uniquely identify indexes by name.
        Specified by:
        listN1qlIndexes in interface BucketManager
        Parameters:
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        a List containing each relevant IndexInfo (can be empty if no index is defined for this bucket).
      • createN1qlPrimaryIndex

        public boolean createN1qlPrimaryIndex​(boolean ignoreIfExist,
                                              boolean defer)
        Description copied from interface: BucketManager
        Create a primary index for the current bucket, within the default management timeout. The index management API only deals with GSI type of indexes, which allows it to uniquely identify indexes by name.
        Specified by:
        createN1qlPrimaryIndex in interface BucketManager
        Parameters:
        ignoreIfExist - if a primary index already exists, an exception will be thrown unless this is set to true.
        defer - true to defer building of the index until BucketManager.buildN1qlDeferredIndexes() is called (or a direct call to the corresponding query service API).
        Returns:
        true if the index was effectively created, (even in deferred mode) or false if the index existed and ignoreIfExist is true.
      • createN1qlPrimaryIndex

        public boolean createN1qlPrimaryIndex​(boolean ignoreIfExist,
                                              boolean defer,
                                              long timeout,
                                              TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Create a primary index for the current bucket, within a custom timeout. The index management API only deals with GSI type of indexes, which allows it to uniquely identify indexes by name.
        Specified by:
        createN1qlPrimaryIndex in interface BucketManager
        Parameters:
        ignoreIfExist - if a primary index already exists, an exception will be thrown unless this is set to true.
        defer - true to defer building of the index until BucketManager.buildN1qlDeferredIndexes() is called (or a direct call to the corresponding query service API).
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        true if the index was effectively created, (even in deferred mode) or false if the index existed and ignoreIfExist is true.
      • createN1qlPrimaryIndex

        public boolean createN1qlPrimaryIndex​(String customName,
                                              boolean ignoreIfExist,
                                              boolean defer)
        Description copied from interface: BucketManager
        Create a custom-named primary index for the current bucket, within the default management timeout. The index management API only deals with GSI type of indexes, which allows it to uniquely identify indexes by name.
        Specified by:
        createN1qlPrimaryIndex in interface BucketManager
        Parameters:
        customName - the custom name for the primary index.
        ignoreIfExist - if a primary index already exists, an exception will be thrown unless this is set to true.
        defer - true to defer building of the index until BucketManager.buildN1qlDeferredIndexes() is called (or a direct call to the corresponding query service API).
        Returns:
        true if the index was effectively created, (even in deferred mode) or false if the index existed and ignoreIfExist is true.
      • createN1qlPrimaryIndex

        public boolean createN1qlPrimaryIndex​(String customName,
                                              boolean ignoreIfExist,
                                              boolean defer,
                                              long timeout,
                                              TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Create a custom-named primary index for the current bucket, within a custom timeout. The index management API only deals with GSI type of indexes, which allows it to uniquely identify indexes by name.
        Specified by:
        createN1qlPrimaryIndex in interface BucketManager
        Parameters:
        customName - the custom name for the primary index.
        ignoreIfExist - if a primary index already exists, an exception will be thrown unless this is set to true.
        defer - true to defer building of the index until BucketManager.buildN1qlDeferredIndexes() is called (or a direct call to the corresponding query service API).
        timeout - the custom timeout.
        timeUnit - the time unit for the custom timeout.
        Returns:
        true if the index was effectively created, (even in deferred mode) or false if the index existed and ignoreIfExist is true.
      • createN1qlIndex

        public boolean createN1qlIndex​(String indexName,
                                       boolean ignoreIfExist,
                                       boolean defer,
                                       Object... fields)
        Description copied from interface: BucketManager
        Create a secondary index for the current bucket, with the default management timeout. The index management API only deals with GSI type of indexes, which allows it to uniquely identify indexes by name. This method allows to define fields of the index as a vararg, for convenience (actually accepting Expression or String), but has the limitation that a WHERE clause cannot be set.
        Specified by:
        createN1qlIndex in interface BucketManager
        Parameters:
        indexName - the name of the index.
        ignoreIfExist - if a secondary index already exists with that name, an exception will be thrown unless this is set to true.
        defer - true to defer building of the index until BucketManager.buildN1qlDeferredIndexes() is called (or a direct call to the corresponding query service API).
        fields - the JSON fields to index, in either Expression or String form.
        Returns:
        true if the index was effectively created (even in deferred mode) or false if the index existed and ignoreIfExist is true.
        See Also:
        BucketManager.createN1qlIndex(String, List, Expression, boolean, boolean)
      • createN1qlIndex

        public boolean createN1qlIndex​(String indexName,
                                       List<Object> fields,
                                       Expression whereClause,
                                       boolean ignoreIfExist,
                                       boolean defer)
        Description copied from interface: BucketManager
        Create a secondary index for the current bucket, with the default management timeout. The index management API only deals with GSI type of indexes, which allows it to uniquely identify indexes by name. This method allows to define fields of the index as a List, as well as an additional Expression for the WHERE clause of the index (which can be null).
        Specified by:
        createN1qlIndex in interface BucketManager
        Parameters:
        indexName - the name of the index.
        fields - the List of JSON fields to index, in either Expression or String form.
        whereClause - the Expression to use in the WHERE clause of the index.
        ignoreIfExist - if a secondary index already exists with that name, an exception will be thrown unless this is set to true.
        defer - true to defer building of the index until BucketManager.buildN1qlDeferredIndexes() is called (or a direct call to the corresponding query service API).
        Returns:
        true if the index was effectively created (even in deferred mode) or false if the index existed and ignoreIfExist is true.
      • createN1qlIndex

        public boolean createN1qlIndex​(String indexName,
                                       List<Object> fields,
                                       Expression whereClause,
                                       boolean ignoreIfExist,
                                       boolean defer,
                                       long timeout,
                                       TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Create a secondary index for the current bucket, with a custom timeout. The index management API only deals with GSI type of indexes, which allows it to uniquely identify indexes by name. This method allows to define fields of the index as a List, as well as an additional Expression for the WHERE clause of the index (which can be null).
        Specified by:
        createN1qlIndex in interface BucketManager
        Parameters:
        indexName - the name of the index.
        fields - the List of JSON fields to index, in either Expression or String form.
        whereClause - the Expression to use in the WHERE clause of the index.
        ignoreIfExist - if a secondary index already exists with that name, an exception will be thrown unless this is set to true.
        defer - true to defer building of the index until BucketManager.buildN1qlDeferredIndexes() is called (or a direct call to the corresponding query service API).
        timeout - the custom timeout.
        timeUnit - the unit for the custom timeout.
        Returns:
        true if the index was effectively created (even in deferred mode) or false if the index existed and ignoreIfExist is true.
      • dropN1qlPrimaryIndex

        public boolean dropN1qlPrimaryIndex​(boolean ignoreIfNotExist)
        Description copied from interface: BucketManager
        Drop the default primary index (Index.PRIMARY_NAME) associated with the current bucket, within the default management timeout. The index management API only deals with GSI type of indexes, which allows it to uniquely identify indexes by name.
        Specified by:
        dropN1qlPrimaryIndex in interface BucketManager
        Parameters:
        ignoreIfNotExist - if true, attempting to drop on a bucket without any primary index won't cause an exception to be propagated.
        Returns:
        true if the index was effectively dropped, false if it didn't exist and ignoreIfNotExist is set to true.
      • dropN1qlPrimaryIndex

        public boolean dropN1qlPrimaryIndex​(boolean ignoreIfNotExist,
                                            long timeout,
                                            TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Drop the default primary index (Index.PRIMARY_NAME) associated with the current bucket, within a custom timeout. The index management API only deals with GSI type of indexes, which allows it to uniquely identify indexes by name.
        Specified by:
        dropN1qlPrimaryIndex in interface BucketManager
        Parameters:
        ignoreIfNotExist - if true, attempting to drop on a bucket without any primary index won't cause an exception to be propagated.
        timeout - the custom timeout.
        timeUnit - the unit for the custom timeout.
        Returns:
        true if the index was effectively dropped, false if it didn't exist and ignoreIfNotExist is set to true.
      • dropN1qlPrimaryIndex

        public boolean dropN1qlPrimaryIndex​(String customName,
                                            boolean ignoreIfNotExist)
        Description copied from interface: BucketManager
        Drop the given custom-named primary index associated with the current bucket, within the default management timeout. The index management API only deals with GSI type of indexes, which allows it to uniquely identify indexes by name.
        Specified by:
        dropN1qlPrimaryIndex in interface BucketManager
        Parameters:
        customName - the custom name for the primary index.
        ignoreIfNotExist - if true, attempting to drop on a bucket without any primary index won't cause an exception to be propagated.
        Returns:
        true if the index was effectively dropped, false if it didn't exist and ignoreIfNotExist is set to true.
      • dropN1qlPrimaryIndex

        public boolean dropN1qlPrimaryIndex​(String customName,
                                            boolean ignoreIfNotExist,
                                            long timeout,
                                            TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Drop the given custom-named primary index associated with the current bucket, within a custom timeout. The index management API only deals with GSI type of indexes, which allows it to uniquely identify indexes by name.
        Specified by:
        dropN1qlPrimaryIndex in interface BucketManager
        Parameters:
        customName - the custom name for the primary index.
        ignoreIfNotExist - if true, attempting to drop on a bucket without any primary index won't cause an exception to be propagated.
        timeout - the custom timeout.
        timeUnit - the unit for the custom timeout.
        Returns:
        true if the index was effectively dropped, false if it didn't exist and ignoreIfNotExist is set to true.
      • dropN1qlIndex

        public boolean dropN1qlIndex​(String name,
                                     boolean ignoreIfNotExist)
        Description copied from interface: BucketManager
        Drop the given secondary index associated with the current bucket, within the default management timeout. The index management API only deals with GSI type of indexes, which allows it to uniquely identify indexes by name.
        Specified by:
        dropN1qlIndex in interface BucketManager
        ignoreIfNotExist - if true, attempting to drop on a bucket without the specified index won't cause an exception to be propagated.
        Returns:
        true if the index was effectively dropped, false if it didn't exist and ignoreIfNotExist is set to true.
      • dropN1qlIndex

        public boolean dropN1qlIndex​(String name,
                                     boolean ignoreIfNotExist,
                                     long timeout,
                                     TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Drop the given secondary index associated with the current bucket, within a custom timeout. The index management API only deals with GSI type of indexes, which allows it to uniquely identify indexes by name.
        Specified by:
        dropN1qlIndex in interface BucketManager
        ignoreIfNotExist - if true, attempting to drop on a bucket without the specified index won't cause an exception to be propagated.
        timeout - the custom timeout.
        timeUnit - the unit for the custom timeout.
        Returns:
        true if the index was effectively dropped, false if it didn't exist and ignoreIfNotExist is set to true.
      • buildN1qlDeferredIndexes

        public List<String> buildN1qlDeferredIndexes()
        Description copied from interface: BucketManager
        Instruct the query engine to trigger the build of indexes that have been deferred, within the default management timeout. This only considers GSI indexes, as the index management API only deals with this type of indexes. This process itself is asynchronous, meaning that the call will immediately return despite indexes still being in a "pending" or "building" state. This method will return a List of the names of indexes whose build has been triggered.
        Specified by:
        buildN1qlDeferredIndexes in interface BucketManager
        Returns:
        a List of index names, the names of the indexes that have been triggered.
        See Also:
        to poll for a list of indexes to become online.
      • buildN1qlDeferredIndexes

        public List<String> buildN1qlDeferredIndexes​(long timeout,
                                                     TimeUnit timeUnit)
        Description copied from interface: BucketManager
        Instruct the query engine to trigger the build of indexes that have been deferred, within a custom timeout. This only considers GSI indexes, as the index management API only deals with this type of indexes. This process itself is asynchronous, meaning that the call will immediately return despite indexes still being in a "pending" or "building" state. This method will return a List of the names of indexes whose build has been triggered.
        Specified by:
        buildN1qlDeferredIndexes in interface BucketManager
        Parameters:
        timeout - the custom timeout.
        timeUnit - the unit for the custom timeout.
        Returns:
        a List of index names, the names of the indexes that have been triggered.
        See Also:
        to poll for a list of indexes to become online.
      • watchN1qlIndexes

        public List<IndexInfo> watchN1qlIndexes​(List<String> watchList,
                                                long watchTimeout,
                                                TimeUnit watchTimeUnit)
        Description copied from interface: BucketManager
        Watches all given indexes (possibly including the primary one), polling the query service until they become "online" or the watchTimeout has expired. This only considers GSI indexes, as the index management API only deals with this type of indexes. Note: You can activate DEBUG level logs on the "DefaultAsyncBucketManager.INDEX_WATCH_LOG_NAME" logger to see various stages of the polling. You can also watch a primary index by using the Index.PRIMARY_NAME constant.
        Specified by:
        watchN1qlIndexes in interface BucketManager
        Parameters:
        watchList - the names of the SECONDARY indexes to watch (can be empty).
        watchTimeout - the maximum duration for which to poll for the index to become online.
        watchTimeUnit - the time unit for the watchTimeout.
        Returns:
        a List of the IndexInfo for the indexes that went online during the watch period. Can be empty if all indexes where online, no index to watch or no index became online within the watchTimeout timeframe.