From 242fa57aad963f3695cf8e92e023128eda99c8d3 Mon Sep 17 00:00:00 2001
From: Madhavan Sridharan The {@code DataAPIClient} is designed to simplify database interactions by providing:
+ * The {@code DataAPIClient} is designed to simplify database interactions by providing:
*
- * This design philosophy facilitates quick onboarding and ease of use while enabling advanced customizations when needed.
- *
Core Features: + *
This design philosophy facilitates quick onboarding and ease of use while enabling advanced customizations when needed.
+ * + *Example usage:
- *- * {@code + **/ public class DataAPIClient { @@ -214,14 +212,13 @@ public DataAPIClient(DataAPIClientOptions options) { * performing administrative tasks such as database creation, user management, and configuration adjustments. * It provides a programmatic interface for managing Astra resources securely and efficiently. * - *Example Usage:
+ *{@code * DataAPIClientOptions options = new DataAPIClientOptions() * .destination(DataAPIDestination.DSE) // Set the destination * .httpClientOptions(new HttpClientOptions() @@ -68,8 +67,7 @@ * .enableFeatureFlagTables() // Enable feature flag for tables * .addDatabaseAdditionalHeader(HEADER_FEATURE_FLAG_TABLES, "true"); // Add custom headers * DataAPIClient client = new DataAPIClient("token", options); - * } - *+ * }
This method has three variants, allowing for flexibility in token usage: + *
This method has three variants, allowing for flexibility in token usage:
*To perform administrative tasks, the token must belong to a user with sufficient privileges (e.g., Database * Administrator or Organization Administrator). If these conditions are not met, a {@code SecurityException} is thrown.
@@ -288,7 +285,7 @@ public AstraDBAdmin getAdmin(String superToken) { * with the specified Data API endpoint, supporting a wide range of data manipulation operations such as querying, * inserting, updating, and deleting data. * - *The {@code getDatabase} method has multiple variants to cater to different usage scenarios: + *
The {@code getDatabase} method has multiple variants to cater to different usage scenarios:
*By providing flexibility in how connections are established and configured, these methods simplify the process * of interacting with Cassandra databases through the Data API. They are suitable for various deployment scenarios, diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/admin/AdminOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/admin/AdminOptions.java index 69a50f99..ae314038 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/admin/AdminOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/admin/AdminOptions.java @@ -28,17 +28,52 @@ import lombok.Setter; import lombok.experimental.Accessors; +/** + * Represents the configuration options for administrative operations in the database API. + * This class extends {@link BaseOptions} to inherit common configuration options + * and provides additional functionality specific to administrative commands. + * + *
Example usage:
+ *+ * {@code + * AdminOptions options = new AdminOptions() + * .token("your-token-here") + * .options(new DataAPIClientOptions()) + * .serializer(new CustomSerializer()); + * } + *+ * + *
Key Features:
+ *Key Features:
*Key behaviors: + *
Key behaviors:
*Example usage:
** {@code * Database database = new DataAPIClient("token").getDatabase("endpoint); @@ -413,7 +408,7 @@ public DatabaseAdmin getDatabaseAdmin(String superUserToken) { ** * @return A {@link List} containing the names of all collections in this database. - * @throws com.datastax.astra.client.exception.DataAPIException if an error occurs while retrieving the collection names. + * @throws com.datastax.astra.client.exceptions.DataAPIException if an error occurs while retrieving the collection names. */ public List
Parameters:
*Example usage:
** {@code * // Create list collection options @@ -468,7 +463,7 @@ public ListlistCollectionNames(ListCollectionOptions listCollectionOpti * convenient entry point for obtaining all collection definitions without any filtering or additional options. * * - * Example usage:
+ *Example usage:
** {@code * Database database = new DataAPIClient("token").getDatabase("endpoint); @@ -492,13 +487,13 @@ public ListlistCollections() { * for each collection that matches the provided options. * * - * Parameters:
+ *Parameters:
**
* - *- {@code listCollectionOptions} - The {@link ListCollectionOptions} to customize the listing behavior, * such as filtering criteria or additional query parameters. If {@code null}, all collections are returned.
*Example usage:
+ *Example usage:
** {@code * // Create options for listing collections with a specific prefix @@ -530,7 +525,7 @@ public ListlistCollections(ListCollectionOptions listColl * as querying, inserting, or updating data. * * - * Example usage:
+ *Example usage:
** {@code * Database database = new DataAPIClient("token").getDatabase("endpoint"); @@ -564,12 +559,12 @@ public boolean collectionExists(String collectionName) { * such as querying, inserting, or updating documents. * * - *Parameters:
+ *Parameters:
**
* - *- {@code collectionName} - The name of the collection to retrieve. This must not be null or empty.
*Example usage:
+ *Example usage:
** {@code * Database database = new DataAPIClient("token").getDatabase("endpoint"); @@ -594,14 +589,14 @@ public Collection- -getCollection(String collectionName) { * allows for further operations on the collection, such as querying, inserting, or updating documents. * * - * Parameters:
+ *Parameters:
**
* - *- {@code collectionName} - The name of the collection to retrieve. This must not be null or empty.
*- {@code collectionOptions} - The {@link CollectionOptions} to customize the collection behavior, * such as setting a custom serializer or specifying additional options. If {@code null}, default options are used.
*Example usage:
+ *Example usage:
** {@code * // Create custom collection options @@ -631,14 +626,14 @@ public*/ public TableCollection getCollection(String collectionName, Class documentC * the caller to specify {@link CollectionOptions} to customize the behavior of the collection. * * - * Parameters:
+ *Parameters:
**
* - *- {@code collectionName} - The name of the collection to retrieve. This must not be null or empty.
*- {@code collectionOptions} - A {@link CollectionOptions} object that specifies custom * behaviors for the collection. If {@code null}, default options will be used.
*Example usage:
+ *Example usage:
** {@code * @@ -668,7 +663,7 @@ public Collection*/ publicgetCollection(String collectionName, CollectionOpti * clients to specify custom options and the type of documents in the collection. * * - * Parameters:
+ *Parameters:
**
* - *- {@code collectionName} - The name of the collection to retrieve. This must not be null or empty.
*- {@code options} - The {@link CollectionOptions} to customize the collection behavior. Must not be null.
@@ -676,7 +671,7 @@ public CollectiongetCollection(String collectionName, CollectionOpti * This enables type safety when working with the collection's documents. Must not be null. * Example usage:
+ *Example usage:
** {@code * CollectionOptions options = new CollectionOptions() diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/databases/DatabaseOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/databases/DatabaseOptions.java index d89707fe..07800e3c 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/databases/DatabaseOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/databases/DatabaseOptions.java @@ -25,7 +25,6 @@ import com.datastax.astra.client.core.options.DataAPIClientOptions; import com.datastax.astra.internal.serdes.DataAPISerializer; import com.datastax.astra.internal.serdes.DatabaseSerializer; -import com.datastax.astra.internal.utils.Assert; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/databases/DatabaseInfo.java b/astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/DatabaseInfo.java similarity index 97% rename from astra-db-java/src/main/java/com/datastax/astra/client/databases/DatabaseInfo.java rename to astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/DatabaseInfo.java index 60b813b5..e3a160df 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/databases/DatabaseInfo.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/DatabaseInfo.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.databases; +package com.datastax.astra.client.databases.definition; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/exception/ClientErrorCodes.java b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/ClientErrorCodes.java similarity index 97% rename from astra-db-java/src/main/java/com/datastax/astra/client/exception/ClientErrorCodes.java rename to astra-db-java/src/main/java/com/datastax/astra/client/exceptions/ClientErrorCodes.java index c9e9561c..ad37110a 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/exception/ClientErrorCodes.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/ClientErrorCodes.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.exception; +package com.datastax.astra.client.exceptions; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/exception/CursorException.java b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/CursorException.java similarity index 95% rename from astra-db-java/src/main/java/com/datastax/astra/client/exception/CursorException.java rename to astra-db-java/src/main/java/com/datastax/astra/client/exceptions/CursorException.java index 46414c3a..fb5e8669 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/exception/CursorException.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/CursorException.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.exception; +package com.datastax.astra.client.exceptions; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/exception/DataAPIErrorDescriptor.java b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/DataAPIErrorDescriptor.java similarity index 98% rename from astra-db-java/src/main/java/com/datastax/astra/client/exception/DataAPIErrorDescriptor.java rename to astra-db-java/src/main/java/com/datastax/astra/client/exceptions/DataAPIErrorDescriptor.java index d22c8b59..c6847a09 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/exception/DataAPIErrorDescriptor.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/DataAPIErrorDescriptor.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.exception; +package com.datastax.astra.client.exceptions; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/exception/DataAPIException.java b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/DataAPIException.java similarity index 98% rename from astra-db-java/src/main/java/com/datastax/astra/client/exception/DataAPIException.java rename to astra-db-java/src/main/java/com/datastax/astra/client/exceptions/DataAPIException.java index 584cb47b..956100d5 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/exception/DataAPIException.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/DataAPIException.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.exception; +package com.datastax.astra.client.exceptions; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/exception/DataAPIHttpException.java b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/DataAPIHttpException.java similarity index 96% rename from astra-db-java/src/main/java/com/datastax/astra/client/exception/DataAPIHttpException.java rename to astra-db-java/src/main/java/com/datastax/astra/client/exceptions/DataAPIHttpException.java index 9e6cecf5..efce652e 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/exception/DataAPIHttpException.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/DataAPIHttpException.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.exception; +package com.datastax.astra.client.exceptions; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/exception/DataAPIResponseException.java b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/DataAPIResponseException.java similarity index 99% rename from astra-db-java/src/main/java/com/datastax/astra/client/exception/DataAPIResponseException.java rename to astra-db-java/src/main/java/com/datastax/astra/client/exceptions/DataAPIResponseException.java index b60305ad..47a1838c 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/exception/DataAPIResponseException.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/DataAPIResponseException.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.exception; +package com.datastax.astra.client.exceptions; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/exception/DataAPITimeoutException.java b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/DataAPITimeoutException.java similarity index 95% rename from astra-db-java/src/main/java/com/datastax/astra/client/exception/DataAPITimeoutException.java rename to astra-db-java/src/main/java/com/datastax/astra/client/exceptions/DataAPITimeoutException.java index 3982eea7..86c3b9da 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/exception/DataAPITimeoutException.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/DataAPITimeoutException.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.exception; +package com.datastax.astra.client.exceptions; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/exception/InvalidConfigurationException.java b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/InvalidConfigurationException.java similarity index 87% rename from astra-db-java/src/main/java/com/datastax/astra/client/exception/InvalidConfigurationException.java rename to astra-db-java/src/main/java/com/datastax/astra/client/exceptions/InvalidConfigurationException.java index 4fbd424b..414a6d0d 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/exception/InvalidConfigurationException.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/InvalidConfigurationException.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.exception; +package com.datastax.astra.client.exceptions; /*- * #%L @@ -20,8 +20,8 @@ * #L% */ -import static com.datastax.astra.client.exception.ClientErrorCodes.CONFIG_MISSING; -import static com.datastax.astra.client.exception.ClientErrorCodes.MISSING_ANNOTATION; +import static com.datastax.astra.client.exceptions.ClientErrorCodes.CONFIG_MISSING; +import static com.datastax.astra.client.exceptions.ClientErrorCodes.MISSING_ANNOTATION; public class InvalidConfigurationException extends DataAPIException { diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/exception/InvalidEnvironmentException.java b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/InvalidEnvironmentException.java similarity index 91% rename from astra-db-java/src/main/java/com/datastax/astra/client/exception/InvalidEnvironmentException.java rename to astra-db-java/src/main/java/com/datastax/astra/client/exceptions/InvalidEnvironmentException.java index ba8ac10a..b7747593 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/exception/InvalidEnvironmentException.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/InvalidEnvironmentException.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.exception; +package com.datastax.astra.client.exceptions; /*- * #%L @@ -22,7 +22,7 @@ import com.datastax.astra.client.DataAPIDestination; -import static com.datastax.astra.client.exception.ClientErrorCodes.ENV_RESTRICTED_ASTRA; +import static com.datastax.astra.client.exceptions.ClientErrorCodes.ENV_RESTRICTED_ASTRA; /** * Exception thrown when the environment is invalid. diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/exception/UnexpectedDataAPIResponseException.java b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/UnexpectedDataAPIResponseException.java similarity index 98% rename from astra-db-java/src/main/java/com/datastax/astra/client/exception/UnexpectedDataAPIResponseException.java rename to astra-db-java/src/main/java/com/datastax/astra/client/exceptions/UnexpectedDataAPIResponseException.java index 5ffe7871..41a90899 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/exception/UnexpectedDataAPIResponseException.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/UnexpectedDataAPIResponseException.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.exception; +package com.datastax.astra.client.exceptions; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/exception/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/package-info.java similarity index 93% rename from astra-db-java/src/main/java/com/datastax/astra/client/exception/package-info.java rename to astra-db-java/src/main/java/com/datastax/astra/client/exceptions/package-info.java index ed2aae47..29eeff7d 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/exception/package-info.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/exceptions/package-info.java @@ -1,7 +1,7 @@ /** * Exceptions specialized checked and unchecked thrown by the client. */ -package com.datastax.astra.client.exception; +package com.datastax.astra.client.exceptions; /*- * #%L * Data API Java Client diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/Table.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/Table.java index 03b46b6c..8fd64064 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/Table.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/Table.java @@ -20,48 +20,48 @@ * #L% */ -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.options.CollectionFindOptions; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.core.commands.Command; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.commands.BaseOptions; -import com.datastax.astra.client.core.commands.CommandType; -import com.datastax.astra.client.core.options.DataAPIClientOptions; -import com.datastax.astra.client.core.paging.TableCursor; +import com.datastax.astra.client.core.commands.Command; import com.datastax.astra.client.core.paging.Page; +import com.datastax.astra.client.core.paging.TableCursor; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.databases.Database; -import com.datastax.astra.client.databases.options.ListIndexesOptions; -import com.datastax.astra.client.exception.DataAPIException; -import com.datastax.astra.client.tables.index.TableIndexDescriptor; -import com.datastax.astra.client.tables.options.CountRowsOptions; -import com.datastax.astra.client.tables.options.EstimatedCountRowsOptions; -import com.datastax.astra.client.tables.options.TableDeleteManyOptions; -import com.datastax.astra.client.tables.options.TableDeleteOneOptions; -import com.datastax.astra.client.tables.options.TableFindOneOptions; -import com.datastax.astra.client.tables.options.TableFindOptions; -import com.datastax.astra.client.tables.options.TableInsertManyOptions; -import com.datastax.astra.client.tables.results.TableInsertManyResult; -import com.datastax.astra.client.tables.options.TableInsertOneOptions; -import com.datastax.astra.client.tables.results.TableInsertOneResult; -import com.datastax.astra.client.tables.options.TableUpdateOneOptions; -import com.datastax.astra.client.tables.ddl.AlterTableOperation; -import com.datastax.astra.client.tables.ddl.AlterTableOptions; -import com.datastax.astra.client.tables.ddl.CreateIndexOptions; -import com.datastax.astra.client.tables.ddl.CreateVectorIndexOptions; +import com.datastax.astra.client.exceptions.DataAPIException; +import com.datastax.astra.client.tables.commands.AlterTableOperation; +import com.datastax.astra.client.tables.commands.TableUpdateOperation; +import com.datastax.astra.client.tables.commands.options.AlterTableOptions; +import com.datastax.astra.client.tables.commands.options.CountRowsOptions; +import com.datastax.astra.client.tables.commands.options.CreateIndexOptions; +import com.datastax.astra.client.tables.commands.options.CreateVectorIndexOptions; +import com.datastax.astra.client.tables.commands.options.EstimatedCountRowsOptions; +import com.datastax.astra.client.tables.commands.options.ListIndexesOptions; +import com.datastax.astra.client.tables.commands.options.TableDeleteManyOptions; +import com.datastax.astra.client.tables.commands.options.TableDeleteOneOptions; +import com.datastax.astra.client.tables.commands.options.TableFindOneOptions; +import com.datastax.astra.client.tables.commands.options.TableFindOptions; +import com.datastax.astra.client.tables.commands.options.TableInsertManyOptions; +import com.datastax.astra.client.tables.commands.options.TableInsertOneOptions; +import com.datastax.astra.client.tables.commands.options.TableUpdateOneOptions; +import com.datastax.astra.client.tables.commands.results.TableInsertManyResult; +import com.datastax.astra.client.tables.commands.results.TableInsertOneResult; +import com.datastax.astra.client.tables.commands.results.TableUpdateResult; +import com.datastax.astra.client.tables.definition.TableDefinition; +import com.datastax.astra.client.tables.definition.TableDescriptor; +import com.datastax.astra.client.tables.definition.indexes.TableIndexDefinition; +import com.datastax.astra.client.tables.definition.indexes.TableIndexDescriptor; +import com.datastax.astra.client.tables.definition.indexes.TableVectorIndexDefinition; +import com.datastax.astra.client.tables.definition.rows.Row; import com.datastax.astra.client.tables.exceptions.TooManyRowsToCountException; -import com.datastax.astra.client.tables.index.TableIndexDefinition; -import com.datastax.astra.client.tables.index.TableVectorIndexDefinition; -import com.datastax.astra.client.tables.mapping.EntityBeanDefinition; import com.datastax.astra.client.tables.mapping.EntityTable; -import com.datastax.astra.client.tables.results.TableUpdateResult; -import com.datastax.astra.client.tables.row.Row; -import com.datastax.astra.client.tables.row.TableUpdate; import com.datastax.astra.internal.api.DataAPIData; import com.datastax.astra.internal.api.DataAPIResponse; import com.datastax.astra.internal.api.DataAPIStatus; import com.datastax.astra.internal.command.AbstractCommandRunner; import com.datastax.astra.internal.command.CommandObserver; +import com.datastax.astra.internal.reflection.EntityBeanDefinition; import com.datastax.astra.internal.serdes.DataAPISerializer; import com.datastax.astra.internal.serdes.tables.RowSerializer; import com.datastax.astra.internal.utils.Assert; @@ -86,8 +86,8 @@ import static com.datastax.astra.client.core.options.DataAPIClientOptions.MAX_CHUNK_SIZE; import static com.datastax.astra.client.core.options.DataAPIClientOptions.MAX_COUNT; import static com.datastax.astra.client.core.types.DataAPIKeywords.SORT_VECTOR; -import static com.datastax.astra.client.exception.DataAPIException.ERROR_CODE_INTERRUPTED; -import static com.datastax.astra.client.exception.DataAPIException.ERROR_CODE_TIMEOUT; +import static com.datastax.astra.client.exceptions.DataAPIException.ERROR_CODE_INTERRUPTED; +import static com.datastax.astra.client.exceptions.DataAPIException.ERROR_CODE_TIMEOUT; import static com.datastax.astra.internal.utils.AnsiUtils.cyan; import static com.datastax.astra.internal.utils.AnsiUtils.green; import static com.datastax.astra.internal.utils.AnsiUtils.magenta; @@ -96,7 +96,12 @@ import static com.datastax.astra.internal.utils.Assert.notNull; /** - * Execute commands against tables + * Executes commands and operations on tables. + * + **/ - publicThe {@code Table} class is designed to work with table entities of type {@code T}, where + * {@code T} represents the data model or schema associated with the table.
+ * + * @paramthe type of the table entity, representing the data model or schema */ @Slf4j public class Table extends AbstractCommandRunner { @@ -499,11 +504,11 @@ public Optional findOne(Filter filter, TableFindOneOptions findOneOptions) { Command findOne = Command.create("findOne").withFilter(filter); if (findOneOptions != null) { findOne.withSort(findOneOptions.getSortArray()) - .withProjection(findOneOptions.getProjectionArray()) + .withProjection(findOneOptions.getProjectionArray()) .withOptions(new Document() - .appendIfNotNull(INPUT_INCLUDE_SIMILARITY, findOneOptions.includeSimilarity()) - .appendIfNotNull(INPUT_INCLUDE_SORT_VECTOR, findOneOptions.includeSortVector()) - ); + .appendIfNotNull(INPUT_INCLUDE_SIMILARITY, findOneOptions.includeSimilarity()) + .appendIfNotNull(INPUT_INCLUDE_SORT_VECTOR, findOneOptions.includeSortVector()) + ); } DataAPIData data = runCommand(findOne, findOneOptions).getData(); if (data.getDocument() == null) { @@ -625,7 +630,7 @@ public Page findPage(Filter filter, TableFindOptions options) { * an iterable of distinct values public CollectionDistinctIterable distinct(String fieldName, Class resultClass) { - return distinct(fieldName, null, resultClass); + return distinct(fieldName, null, resultClass); } /** @@ -643,9 +648,9 @@ public CollectionDistinctIterable distinct(String fieldName, Class * an iterable of distinct values public CollectionDistinctIterable distinct(String fieldName, Filter filter, Class resultClass) { - return new CollectionDistinctIterable<>(this, fieldName, filter, resultClass); + return new CollectionDistinctIterable<>(this, fieldName, filter, resultClass); } -*/ + */ // ------------------------- // --- updateOne ---- // ------------------------- @@ -660,7 +665,7 @@ public CollectionDistinctIterable distinct(String fieldName, Filter fi * @return * the result of the update one operation */ - public TableUpdateResult updateOne(Filter filter, TableUpdate update) { + public TableUpdateResult updateOne(Filter filter, TableUpdateOperation update) { return updateOne(filter, update, new TableUpdateOneOptions()); } @@ -676,7 +681,7 @@ public TableUpdateResult updateOne(Filter filter, TableUpdate update) { * @return * the result of the update one operation */ - public TableUpdateResult updateOne(Filter filter, TableUpdate update, TableUpdateOneOptions updateOptions) { + public TableUpdateResult updateOne(Filter filter, TableUpdateOperation update, TableUpdateOneOptions updateOptions) { notNull(update, ARG_UPDATE); notNull(updateOptions, ARG_OPTIONS); Command cmd = Command @@ -880,7 +885,7 @@ public int countRows(int upperBound) throws TooManyRowsToCountException { * If the number of rows counted exceeds the provided limit. */ public int countRows(Filter filter, int upperBound, CountRowsOptions options) - throws TooManyRowsToCountException { + throws TooManyRowsToCountException { // Argument Validation if (upperBound < 1 || upperBound > MAX_COUNT) { throw new IllegalArgumentException("UpperBound limit should be in between 1 and " + MAX_COUNT); @@ -912,7 +917,7 @@ public int countRows(Filter filter, int upperBound, CountRowsOptions options) * If the number of rows counted exceeds the provided limit. */ public int countRows(Filter filter, int upperBound) - throws TooManyRowsToCountException { + throws TooManyRowsToCountException { return countRows(filter, upperBound, new CountRowsOptions()); } diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableOptions.java index 1fb77716..e86fc844 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableOptions.java @@ -21,12 +21,7 @@ */ import com.datastax.astra.client.core.commands.BaseOptions; -import com.datastax.astra.client.core.commands.CommandType; import com.datastax.astra.client.core.options.DataAPIClientOptions; -import com.datastax.astra.internal.serdes.collections.DocumentSerializer; -import com.datastax.astra.internal.serdes.tables.RowSerializer; -import com.datastax.astra.internal.utils.Assert; -import lombok.NoArgsConstructor; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinitionMap.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinitionMap.java deleted file mode 100644 index 5ddfbc77..00000000 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinitionMap.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.datastax.astra.client.tables.columns; - -/*- - * #%L - * Data API Java Client - * -- - * Copyright (C) 2024 DataStax - * -- - * Licensed under the Apache License, Version 2.0 - * You may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - -import lombok.Getter; -import lombok.Setter; -import lombok.experimental.Accessors; - -@Getter @Setter -public class ColumnDefinitionMap extends ColumnDefinition { - - private ColumnTypes keyType; - - private ColumnTypes valueType; - - public ColumnDefinitionMap() { - super(ColumnTypes.MAP); - } - - public ColumnDefinitionMap(ColumnTypes keyType, ColumnTypes valueType) { - this(); - this.keyType = keyType; - this.valueType = valueType; - } - -} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinitionVector.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinitionVector.java deleted file mode 100644 index 36bcf674..00000000 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinitionVector.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.datastax.astra.client.tables.columns; - -/*- - * #%L - * Data API Java Client - * -- - * Copyright (C) 2024 DataStax - * -- - * Licensed under the Apache License, Version 2.0 - * You may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - -import com.datastax.astra.client.core.vector.SimilarityMetric; -import com.datastax.astra.client.core.vectorize.VectorServiceOptions; -import lombok.Getter; -import lombok.Setter; - -@Getter @Setter -public class ColumnDefinitionVector extends ColumnDefinition { - - /** - * Vector dimension. - */ - private Integer dimension; - - /** - * Similarity metric. - */ - private SimilarityMetric metric; - - /** - * Service for vectorization - */ - private VectorServiceOptions service; - - public ColumnDefinitionVector() { - super(ColumnTypes.VECTOR); - } - - public ColumnDefinitionVector dimension(int dimension) { - this.dimension = dimension; - return this; - } - - public ColumnDefinitionVector metric(SimilarityMetric m) { - this.metric = m; - return this; - } - - public ColumnDefinitionVector service(VectorServiceOptions service) { - this.service = service; - return this; - } - - - -} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnTypes.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnTypes.java deleted file mode 100644 index 42dd391e..00000000 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnTypes.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.datastax.astra.client.tables.columns; - -/*- - * #%L - * Data API Java Client - * -- - * Copyright (C) 2024 DataStax - * -- - * Licensed under the Apache License, Version 2.0 - * You may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - -import lombok.Getter; - -/** - * Column Types - */ -public enum ColumnTypes { - - ASCII("ascii"), - BIGINT("bigint"), - BLOB("blob"), - BOOLEAN("boolean"), - DATE("date"), - DECIMAL("decimal"), - DOUBLE("double"), - DURATION("duration"), - FLOAT("float"), - INET("inet"), - INT("int"), - LIST("list"), - MAP("map"), - SET("set"), - SMALLINT("smallint"), - TEXT("text"), - TIME("time"), - TIMESTAMP("timestamp"), - TINYINT("tinyint"), - VARINT("varint"), - UUID("uuid"), - UNSUPPORTED("UNSUPPORTED"), - UNDEFINED("undefined"), - VECTOR("vector"); - - @Getter - private final String value; - - ColumnTypes(String value) { - this.value = value; - } -} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableAddColumns.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableAddColumns.java new file mode 100644 index 00000000..3d22bf79 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableAddColumns.java @@ -0,0 +1,190 @@ +package com.datastax.astra.client.tables.commands; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +import com.datastax.astra.client.tables.definition.columns.ColumnDefinition; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinitionList; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinitionMap; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinitionSet; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinitionVector; +import com.datastax.astra.client.tables.definition.columns.ColumnTypes; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.LinkedHashMap; + +/** + * Represents an operation to add columns to an existing table in a database schema. + * This class implements the {@link AlterTableOperation} interface, providing functionality + * to define new columns and their types for the "alter table add" operation. + * + * Example usage:
+ *+ * {@code + * AlterTableAddColumns operation = new AlterTableAddColumns() + * .ifNotExists() + * .addColumn("name", ColumnTypes.TEXT) + * .addColumnInt("age") + * .addColumnMap("attributes", ColumnTypes.TEXT, ColumnTypes.TEXT); + * } + *+ * + *Key Features:
+ *+ *
+ */ +@Setter @Getter +public final class AlterTableAddColumns implements AlterTableOperation { + + /** + * Indicates whether the "IF NOT EXISTS" clause should be used in the operation. + * Defaults to {@code null}, meaning the clause is not applied. + */ + Boolean ifNotExists = null; + + /** + * A map of column names to their definitions. + * The map preserves the order of added columns. + */ + LinkedHashMap- Supports adding columns with various data types, including primitive, list, set, and map types.
+ *- Chainable methods for building operations fluently.
+ *- Ability to specify the "IF NOT EXISTS" clause to avoid errors if the column already exists.
+ *columns = new LinkedHashMap<>(); + + /** + * Constructs a new {@code AlterTableAddColumns} instance. + */ + public AlterTableAddColumns() { + } + + /** + * Returns the name of this operation. + * Always returns "add" for this operation type. + * + * @return the operation name. + */ + @Override + public String getOperationName() { + return "add"; + } + + /** + * Adds a column with the specified name and type to the table. + * + * @param name the name of the column. + * @param type the type of the column. + * @return the current instance for chaining. + */ + public AlterTableAddColumns addColumn(String name, ColumnTypes type) { + columns.put(name, new ColumnDefinition(type)); + return this; + } + + /** + * Adds a column defined by a {@link ColumnDefinitionVector}. + * + * @param name the name of the column. + * @param cdv the column definition vector. + * @return the current instance for chaining. + */ + public AlterTableAddColumns addColumnVector(String name, ColumnDefinitionVector cdv) { + columns.put(name, cdv); + return this; + } + + /** + * Adds a column with the TEXT type. + * + * @param name the name of the column. + * @return the current instance for chaining. + */ + public AlterTableAddColumns addColumnText(String name) { + return addColumn(name, ColumnTypes.TEXT); + } + + /** + * Adds a column with the INT type. + * + * @param name the name of the column. + * @return the current instance for chaining. + */ + public AlterTableAddColumns addColumnInt(String name) { + return addColumn(name, ColumnTypes.INT); + } + + /** + * Adds a column with the BOOLEAN type. + * + * @param name the name of the column. + * @return the current instance for chaining. + */ + public AlterTableAddColumns addColumnBoolean(String name) { + return addColumn(name, ColumnTypes.BOOLEAN); + } + + /** + * Adds a column with the LIST type, where the list items are of the specified value type. + * + * @param name the name of the column. + * @param valueType the type of the values in the list. + * @return the current instance for chaining. + */ + public AlterTableAddColumns addColumnList(String name, ColumnTypes valueType) { + columns.put(name, new ColumnDefinitionList(valueType)); + return this; + } + + /** + * Adds a column with the SET type, where the set items are of the specified value type. + * + * @param name the name of the column. + * @param valueType the type of the values in the set. + * @return the current instance for chaining. + */ + public AlterTableAddColumns addColumnSet(String name, ColumnTypes valueType) { + columns.put(name, new ColumnDefinitionSet(valueType)); + return this; + } + + /** + * Adds a column with the MAP type, where the keys and values are of the specified types. + * + * @param name the name of the column. + * @param keyType the type of the keys in the map. + * @param valueType the type of the values in the map. + * @return the current instance for chaining. + */ + public AlterTableAddColumns addColumnMap(String name, ColumnTypes keyType, ColumnTypes valueType) { + columns.put(name, new ColumnDefinitionMap(keyType, valueType)); + return this; + } + + /** + * Specifies that the "IF NOT EXISTS" clause should be applied to this operation. + * + * @return the current instance for chaining. + */ + public AlterTableAddColumns ifNotExists() { + this.ifNotExists = true; + return this; + } +} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableAddVectorize.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableAddVectorize.java new file mode 100644 index 00000000..e006236b --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableAddVectorize.java @@ -0,0 +1,112 @@ +package com.datastax.astra.client.tables.commands; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +import com.datastax.astra.client.core.vectorize.VectorServiceOptions; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.HashMap; +import java.util.Map; + +/** + * Represents an operation to add vectorized columns to a table in a database schema alteration. + * Implements the {@link AlterTableOperation} interface to specify the "addVectorize" operation. + * + * This class allows adding columns with vectorization options and supports an optional "IF NOT EXISTS" clause. + *
+ * + *Example usage:
+ *+ * {@code + * AlterTableAddVectorize addVectorize = new AlterTableAddVectorize() + * .ifNotExists() + * .addColumn("vectorColumn", new VectorServiceOptions()); + * } + *+ */ +@Setter @Getter +public class AlterTableAddVectorize implements AlterTableOperation { + + /** + * Flag indicating whether to include an "IF NOT EXISTS" clause in the operation. + * If {@code true}, the operation will not fail if the specified columns already exist. + */ + private Boolean ifNotExists = null; + + /** + * A map of column names to their respective {@link VectorServiceOptions} configurations. + * Represents the vectorized columns to be added to the table. + */ + private Mapcolumns = new HashMap<>(); + + /** + * Default constructor. + */ + public AlterTableAddVectorize() { + // left blank, serialization with jackson + } + + /** + * Returns the name of this operation, which is "addVectorize". + * + * @return the operation name + */ + @Override + public String getOperationName() { + return "addVectorize"; + } + + /** + * Adds a new column with the specified name and vectorization options. + * + * @param name the name of the column to add + * @param def the vectorization options for the column + * @return this {@code AlterTableAddVectorize} instance + */ + public AlterTableAddVectorize addColumn(String name, VectorServiceOptions def) { + columns.put(name, def); + return this; + } + + /** + * Replaces the current column definitions with the specified map of column names and vectorization options. + * + * @param columns a map of column names to their vectorization options + * @return this {@code AlterTableAddVectorize} instance + */ + public AlterTableAddVectorize columns(Map columns) { + this.columns = columns; + return this; + } + + /** + * Enables the "IF NOT EXISTS" clause for the add operation. + * Ensures the operation does not fail if the specified columns already exist. + * + * @return this {@code AlterTableAddVectorize} instance + */ + public AlterTableAddVectorize ifNotExists() { + this.ifNotExists = true; + return this; + } +} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableDropColumns.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableDropColumns.java new file mode 100644 index 00000000..58f72f84 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableDropColumns.java @@ -0,0 +1,113 @@ +package com.datastax.astra.client.tables.commands; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.Arrays; +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * Represents an operation to drop columns from a table in a database schema alteration. + * Implements the {@link AlterTableOperation} interface to specify the "drop" operation. + * + * This class supports adding columns to be dropped, with an optional "if exists" clause. + *
+ * + *Example usage:
+ *+ * {@code + * AlterTableDropColumns dropColumns = new AlterTableDropColumns() + * .ifExists() + * .columns("column3"); + * } + *+ */ +@Setter +@Getter +@NoArgsConstructor +public final class AlterTableDropColumns implements AlterTableOperation { + + /** + * Flag indicating whether to include an "IF EXISTS" clause in the drop operation. + * If {@code true}, the operation will proceed only if the specified columns exist. + */ + private Boolean ifExists = null; + + /** + * A set of column names to be dropped. + * Ensures that column names are stored in insertion order with no duplicates. + */ + private Setcolumns = new LinkedHashSet<>(); + + /** + * Constructs a new {@code AlterTableDropColumns} instance with the specified column names. + * + * @param name the names of the columns to drop + */ + public AlterTableDropColumns(String... name) { + this.columns.addAll(Arrays.asList(name)); + } + + /** + * Constructs a new {@code AlterTableDropColumns} instance with the specified set of column names. + * + * @param columns the set of column names to drop + */ + public AlterTableDropColumns(Set columns) { + this.columns.addAll(columns); + } + + /** + * Adds additional column names to the list of columns to drop. + * + * @param columns the names of the columns to add + * @return this {@code AlterTableDropColumns} instance + */ + public AlterTableDropColumns columns(String... columns) { + this.columns.addAll(Arrays.asList(columns)); + return this; + } + + /** + * Returns the name of this operation, which is "drop". + * + * @return the operation name + */ + @Override + public String getOperationName() { + return "drop"; + } + + /** + * Enables the "IF EXISTS" clause for the drop operation. + * Ensures the operation only proceeds if the specified columns exist. + * + * @return this {@code AlterTableDropColumns} instance + */ + public AlterTableDropColumns ifExists() { + this.ifExists = true; + return this; + } +} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableDropVectorize.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableDropVectorize.java new file mode 100644 index 00000000..06490364 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableDropVectorize.java @@ -0,0 +1,118 @@ +package com.datastax.astra.client.tables.commands; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.Arrays; +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * Represents an operation to drop vectorized columns from a table in a database schema alteration. + * Implements the {@link AlterTableOperation} interface to specify the "dropVectorize" operation. + * + * This class supports specifying columns to drop and an optional "IF EXISTS" clause to + * ensure the operation only proceeds if the specified columns exist. + *
+ * + *Example usage:
+ *+ * {@code + * AlterTableDropVectorize dropVectorize = new AlterTableDropVectorize("column1", "column2") + * .ifExists() + * .columns("column3"); + * } + *+ */ +@Setter +@Getter +public class AlterTableDropVectorize implements AlterTableOperation { + + /** + * Flag indicating whether to include an "IF EXISTS" clause in the drop operation. + * If {@code true}, the operation will proceed only if the specified columns exist. + */ + private Boolean ifExists = null; + + /** + * A set of column names to be dropped. + * Ensures that column names are stored in insertion order and no duplicates are included. + */ + private Setcolumns = new LinkedHashSet<>(); + + /** + * Default constructor. Creates an empty {@code AlterTableDropVectorize} instance. + */ + public AlterTableDropVectorize() {} + + /** + * Constructs a new {@code AlterTableDropVectorize} instance with the specified column names. + * + * @param name the names of the columns to drop + */ + public AlterTableDropVectorize(String... name) { + this.columns.addAll(Arrays.asList(name)); + } + + /** + * Constructs a new {@code AlterTableDropVectorize} instance with the specified set of column names. + * + * @param columns the set of column names to drop + */ + public AlterTableDropVectorize(Set columns) { + this.columns.addAll(columns); + } + + /** + * Adds additional column names to the list of columns to drop. + * + * @param columns the names of the columns to add + * @return this {@code AlterTableDropVectorize} instance + */ + public AlterTableDropVectorize columns(String... columns) { + this.columns.addAll(Arrays.asList(columns)); + return this; + } + + /** + * Enables the "IF EXISTS" clause for the drop operation. + * Ensures the operation only proceeds if the specified columns exist. + * + * @return this {@code AlterTableDropVectorize} instance + */ + public AlterTableDropVectorize ifExists() { + this.ifExists = true; + return this; + } + + /** + * Returns the name of this operation, which is "dropVectorize". + * + * @return the operation name + */ + @Override + public String getOperationName() { + return "dropVectorize"; + } +} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableOperation.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableOperation.java new file mode 100644 index 00000000..1ee7fb4a --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableOperation.java @@ -0,0 +1,51 @@ +package com.datastax.astra.client.tables.commands; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +import com.fasterxml.jackson.annotation.JsonIgnore; + +/** + * Represents a generic operation to alter a database table schema. + * This interface provides a contract for implementing specific schema alteration operations. + * + * Implementations of this interface must define the name of the operation. + *
+ * + *Example usage:
+ *+ * {@code + * AlterTableOperation operation = new AlterTableAddVectorize(); + * String operationName = operation.getOperationName(); + * } + *+ */ +public interface AlterTableOperation { + + /** + * Returns the name of the table alteration operation. + * This method is annotated with {@link com.fasterxml.jackson.annotation.JsonIgnore} + * to prevent serialization of the operation name in JSON outputs. + * + * @return the name of the operation + */ + @JsonIgnore + String getOperationName(); +} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableRenameColumns.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableRenameColumns.java similarity index 93% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableRenameColumns.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableRenameColumns.java index 6df8925e..84e44bf0 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableRenameColumns.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableRenameColumns.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.ddl; +package com.datastax.astra.client.tables.commands; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/row/TableUpdate.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/TableUpdateOperation.java similarity index 78% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/row/TableUpdate.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/TableUpdateOperation.java index 474bcb55..9d8b98d3 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/row/TableUpdate.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/TableUpdateOperation.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.row; +package com.datastax.astra.client.tables.commands; /*- * #%L @@ -20,23 +20,20 @@ * #L% */ -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.tables.definition.rows.Row; -import java.util.Arrays; -import java.util.HashMap; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; /** * Encore the update document */ -public class TableUpdate extends Row { +public class TableUpdateOperation extends Row { /** * Default constructor. */ - public TableUpdate() { + public TableUpdateOperation() { super(); } @@ -47,7 +44,7 @@ public TableUpdate() { * filter expression as JSON */ @SuppressWarnings("unchecked") - public TableUpdate(String json) { + public TableUpdateOperation(String json) { super(); this.columnMap.putAll(SERIALIZER.unMarshallBean(json, Map.class)); } @@ -58,7 +55,7 @@ public TableUpdate(String json) { * @param obj * filter expression as JSON */ - public TableUpdate(Mapobj) { + public TableUpdateOperation(Map obj) { super(); this.columnMap.putAll(obj); } @@ -69,8 +66,8 @@ public TableUpdate(Map obj) { * @return * a new instance */ - public static TableUpdate create() { - return new TableUpdate(); + public static TableUpdateOperation create() { + return new TableUpdateOperation(); } /** @@ -81,7 +78,7 @@ public static TableUpdate create() { * @return * reference to self */ - public TableUpdate unset(String fieldName) { + public TableUpdateOperation unset(String fieldName) { return update("$unset", fieldName, ""); } @@ -95,7 +92,7 @@ public TableUpdate unset(String fieldName) { * @return * reference to self */ - public TableUpdate set(String key, Object value) { + public TableUpdateOperation set(String key, Object value) { return update("$set", key, value); } @@ -108,7 +105,7 @@ public TableUpdate set(String key, Object value) { * @return * reference to self */ - public TableUpdate set(Row row) { + public TableUpdateOperation set(Row row) { if (row !=null) row.getColumnMap().forEach(this::set); return this; } @@ -126,7 +123,7 @@ public TableUpdate set(Row row) { * reference to self */ @SuppressWarnings("unchecked") - private TableUpdate update(String operation, String key, Object value) { + private TableUpdateOperation update(String operation, String key, Object value) { columnMap.computeIfAbsent(operation, k -> new LinkedHashMap<>()); ((Map ) columnMap.get(operation)).put(key, value); return this; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/AlterTableOptions.java similarity index 92% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/AlterTableOptions.java index fd16fda3..815b7ae4 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/AlterTableOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.ddl; +package com.datastax.astra.client.tables.commands.options; /*- * #%L @@ -22,9 +22,6 @@ import com.datastax.astra.client.core.commands.BaseOptions; import com.datastax.astra.client.core.commands.CommandType; -import lombok.Data; -import lombok.Getter; -import lombok.NoArgsConstructor; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/CountRowsOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CountRowsOptions.java similarity index 94% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/options/CountRowsOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CountRowsOptions.java index c40707e4..c1ae963a 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/CountRowsOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CountRowsOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.options; +package com.datastax.astra.client.tables.commands.options; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/CreateIndexOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateIndexOptions.java similarity index 94% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/CreateIndexOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateIndexOptions.java index ca6f8a3a..3ea563f4 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/CreateIndexOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateIndexOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.ddl; +package com.datastax.astra.client.tables.commands.options; /*- * #%L @@ -21,8 +21,6 @@ */ import com.datastax.astra.client.core.commands.BaseOptions; -import lombok.Getter; -import lombok.NoArgsConstructor; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/CreateTableOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateTableOptions.java similarity index 86% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/CreateTableOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateTableOptions.java index a676b9a6..628f433c 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/CreateTableOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateTableOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.ddl; +package com.datastax.astra.client.tables.commands.options; /*- * #%L @@ -22,11 +22,6 @@ import com.datastax.astra.client.core.commands.BaseOptions; import com.datastax.astra.client.core.commands.CommandType; -import com.datastax.astra.client.core.options.DataAPIClientOptions; -import com.datastax.astra.internal.serdes.DataAPISerializer; -import lombok.Data; -import lombok.Getter; -import lombok.NoArgsConstructor; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/CreateVectorIndexOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateVectorIndexOptions.java similarity index 95% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/CreateVectorIndexOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateVectorIndexOptions.java index db2f8099..e283f427 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/CreateVectorIndexOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateVectorIndexOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.ddl; +package com.datastax.astra.client.tables.commands.options; /*- * #%L @@ -22,7 +22,6 @@ import com.datastax.astra.client.core.commands.BaseOptions; import lombok.Getter; -import lombok.NoArgsConstructor; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/DropTableIndexOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/DropTableIndexOptions.java similarity index 92% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/DropTableIndexOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/DropTableIndexOptions.java index a49ad164..42509617 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/DropTableIndexOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/DropTableIndexOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.ddl; +package com.datastax.astra.client.tables.commands.options; /*- * #%L @@ -21,9 +21,6 @@ */ import com.datastax.astra.client.core.commands.BaseOptions; -import lombok.Data; -import lombok.Getter; -import lombok.NoArgsConstructor; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/DropTableOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/DropTableOptions.java similarity index 89% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/DropTableOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/DropTableOptions.java index d2173bc9..dab4e765 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/DropTableOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/DropTableOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.ddl; +package com.datastax.astra.client.tables.commands.options; /*- * #%L @@ -21,10 +21,6 @@ */ import com.datastax.astra.client.core.commands.BaseOptions; -import com.datastax.astra.internal.serdes.tables.RowSerializer; -import lombok.Data; -import lombok.Getter; -import lombok.NoArgsConstructor; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/EstimatedCountRowsOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/EstimatedCountRowsOptions.java similarity index 94% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/options/EstimatedCountRowsOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/EstimatedCountRowsOptions.java index 8bc36b7a..1d5cee4d 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/EstimatedCountRowsOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/EstimatedCountRowsOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.options; +package com.datastax.astra.client.tables.commands.options; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/databases/options/ListIndexesOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/ListIndexesOptions.java similarity index 94% rename from astra-db-java/src/main/java/com/datastax/astra/client/databases/options/ListIndexesOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/ListIndexesOptions.java index fc0edd93..3cd9cd30 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/databases/options/ListIndexesOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/ListIndexesOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.databases.options; +package com.datastax.astra.client.tables.commands.options; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/databases/options/ListTablesOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/ListTablesOptions.java similarity index 88% rename from astra-db-java/src/main/java/com/datastax/astra/client/databases/options/ListTablesOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/ListTablesOptions.java index ba4b0d76..26f4e7c9 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/databases/options/ListTablesOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/ListTablesOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.databases.options; +package com.datastax.astra.client.tables.commands.options; /*- * #%L @@ -23,7 +23,6 @@ import com.datastax.astra.client.core.commands.BaseOptions; import com.datastax.astra.internal.serdes.tables.RowSerializer; -import static com.datastax.astra.client.core.commands.CommandType.COLLECTION_ADMIN; import static com.datastax.astra.client.core.commands.CommandType.TABLE_ADMIN; public class ListTablesOptions extends BaseOptions { diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableDeleteManyOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableDeleteManyOptions.java similarity index 94% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableDeleteManyOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableDeleteManyOptions.java index 493bbc42..2b6000dd 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableDeleteManyOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableDeleteManyOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.options; +package com.datastax.astra.client.tables.commands.options; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableDeleteOneOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableDeleteOneOptions.java similarity index 96% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableDeleteOneOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableDeleteOneOptions.java index 56e378dc..794ab1a3 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableDeleteOneOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableDeleteOneOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.options; +package com.datastax.astra.client.tables.commands.options; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableFindOneOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableFindOneOptions.java similarity index 97% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableFindOneOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableFindOneOptions.java index 26d26bc6..b7f3e0dd 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableFindOneOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableFindOneOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.options; +package com.datastax.astra.client.tables.commands.options; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableFindOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableFindOptions.java similarity index 98% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableFindOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableFindOptions.java index 077dfdf9..76bd9b34 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableFindOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableFindOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.options; +package com.datastax.astra.client.tables.commands.options; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableInsertManyOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableInsertManyOptions.java similarity index 97% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableInsertManyOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableInsertManyOptions.java index 94d97416..26f0b46b 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableInsertManyOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableInsertManyOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.options; +package com.datastax.astra.client.tables.commands.options; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableInsertOneOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableInsertOneOptions.java similarity index 94% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableInsertOneOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableInsertOneOptions.java index 6be7aa96..8120a369 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableInsertOneOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableInsertOneOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.options; +package com.datastax.astra.client.tables.commands.options; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableUpdateOneOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableUpdateOneOptions.java similarity index 96% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableUpdateOneOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableUpdateOneOptions.java index 1d6d0439..b61b963f 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/TableUpdateOneOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableUpdateOneOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.options; +package com.datastax.astra.client.tables.commands.options; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/results/TableInsertManyResult.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/results/TableInsertManyResult.java similarity index 91% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/results/TableInsertManyResult.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/results/TableInsertManyResult.java index e9ff7dea..80792935 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/results/TableInsertManyResult.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/results/TableInsertManyResult.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.results; +package com.datastax.astra.client.tables.commands.results; /*- * #%L @@ -21,7 +21,7 @@ */ -import com.datastax.astra.client.tables.columns.ColumnDefinition; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinition; import com.datastax.astra.internal.api.DataAPIDocumentResponse; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/results/TableInsertOneResult.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/results/TableInsertOneResult.java similarity index 88% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/results/TableInsertOneResult.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/results/TableInsertOneResult.java index 9de9945f..952df6be 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/results/TableInsertOneResult.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/results/TableInsertOneResult.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.results; +package com.datastax.astra.client.tables.commands.results; /*- * #%L @@ -20,8 +20,8 @@ * #L% */ -import com.datastax.astra.client.tables.columns.ColumnDefinition; -import com.datastax.astra.client.tables.row.Row; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinition; +import com.datastax.astra.client.tables.definition.rows.Row; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/results/TableUpdateResult.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/results/TableUpdateResult.java similarity index 94% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/results/TableUpdateResult.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/results/TableUpdateResult.java index da841144..e97d40e3 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/results/TableUpdateResult.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/results/TableUpdateResult.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.results; +package com.datastax.astra.client.tables.commands.results; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableAddColumns.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableAddColumns.java deleted file mode 100644 index 45b04737..00000000 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableAddColumns.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.datastax.astra.client.tables.ddl; - -/*- - * #%L - * Data API Java Client - * -- - * Copyright (C) 2024 DataStax - * -- - * Licensed under the Apache License, Version 2.0 - * You may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - -import com.datastax.astra.client.tables.columns.ColumnDefinition; -import com.datastax.astra.client.tables.columns.ColumnDefinitionList; -import com.datastax.astra.client.tables.columns.ColumnDefinitionMap; -import com.datastax.astra.client.tables.columns.ColumnDefinitionSet; -import com.datastax.astra.client.tables.columns.ColumnDefinitionVector; -import com.datastax.astra.client.tables.columns.ColumnTypes; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.LinkedHashMap; - -@Setter @Getter -@NoArgsConstructor -public final class AlterTableAddColumns implements AlterTableOperation { - - Boolean ifNotExists = null; - - LinkedHashMap columns = new LinkedHashMap<>(); - - @Override - public String getOperationName() { - return "add"; - } - - /** - * Add a column to the table. - * - * @param name - * name of the column - * @param type - * type of the column - * @return - * the current instance - */ - public AlterTableAddColumns addColumn(String name, ColumnTypes type) { - columns.put(name, new ColumnDefinition(type)); - return this; - } - - public AlterTableAddColumns addColumnVector(String name, ColumnDefinitionVector cdv) { - columns.put(name, cdv); - return this; - } - - public AlterTableAddColumns addColumnText(String name) { - return addColumn(name, ColumnTypes.TEXT); - } - - public AlterTableAddColumns addColumnInt(String name) { - return addColumn(name, ColumnTypes.INT); - } - - public AlterTableAddColumns addColumnBoolean(String name) { - return addColumn(name, ColumnTypes.BOOLEAN); - } - - public AlterTableAddColumns addColumnList(String name, ColumnTypes valueType) { - columns.put(name, new ColumnDefinitionList(valueType)); - return this; - } - - public AlterTableAddColumns addColumnSet(String name, ColumnTypes valueType) { - columns.put(name, new ColumnDefinitionSet(valueType)); - return this; - } - - public AlterTableAddColumns addColumnMap(String name, ColumnTypes keyType, ColumnTypes valueType) { - columns.put(name, new ColumnDefinitionMap(keyType, valueType)); - return this; - } - - public AlterTableAddColumns ifNotExists() { - this.ifNotExists = true; - return this; - } - -} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableAddVectorize.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableAddVectorize.java deleted file mode 100644 index 994eee9d..00000000 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableAddVectorize.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.datastax.astra.client.tables.ddl; - -/*- - * #%L - * Data API Java Client - * -- - * Copyright (C) 2024 DataStax - * -- - * Licensed under the Apache License, Version 2.0 - * You may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - -import com.datastax.astra.client.core.vectorize.VectorServiceOptions; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.HashMap; -import java.util.Map; - -@NoArgsConstructor -@Setter -@Getter -public class AlterTableAddVectorize implements AlterTableOperation { - - Boolean ifNotExists = null; - - Map columns = new HashMap<>(); - - @Override - public String getOperationName() { - return "addVectorize"; - } - - public AlterTableAddVectorize addColumn(String name, VectorServiceOptions def) { - columns.put(name, def); - return this; - } - - public AlterTableAddVectorize columns(Map columns) { - this.columns = columns; - return this; - } - - public AlterTableAddVectorize ifNotExists() { - this.ifNotExists = true; - return this; - } - -} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableDropColumns.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableDropColumns.java deleted file mode 100644 index 9e63b967..00000000 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableDropColumns.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.datastax.astra.client.tables.ddl; - -/*- - * #%L - * Data API Java Client - * -- - * Copyright (C) 2024 DataStax - * -- - * Licensed under the Apache License, Version 2.0 - * You may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.Arrays; -import java.util.LinkedHashSet; -import java.util.Set; - -@Setter -@Getter -@NoArgsConstructor -public final class AlterTableDropColumns implements AlterTableOperation { - - Boolean ifExists = null; - - private Set columns = new LinkedHashSet<>(); - - public AlterTableDropColumns(String... name) { - this.columns.addAll(Arrays.asList(name)); - } - - public AlterTableDropColumns(Set columns) { - this.columns.addAll(columns); - } - - public AlterTableDropColumns columns(String... columns) { - this.columns.addAll(Arrays.asList(columns)); - return this; - } - - @Override - public String getOperationName() { - return "drop"; - } - - public AlterTableDropColumns ifExists() { - this.ifExists = true; - return this; - } - -} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableDropVectorize.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableDropVectorize.java deleted file mode 100644 index 6efe8c26..00000000 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableDropVectorize.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.datastax.astra.client.tables.ddl; - -/*- - * #%L - * Data API Java Client - * -- - * Copyright (C) 2024 DataStax - * -- - * Licensed under the Apache License, Version 2.0 - * You may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.Arrays; -import java.util.LinkedHashSet; -import java.util.Set; - -@Setter -@Getter -@NoArgsConstructor -public class AlterTableDropVectorize implements AlterTableOperation { - - Boolean ifExists = null; - - Set columns = new LinkedHashSet<>(); - - public AlterTableDropVectorize(String... name) { - this.columns.addAll(Arrays.asList(name)); - } - - public AlterTableDropVectorize(Set columns) { - this.columns.addAll(columns); - } - - public AlterTableDropVectorize columns(String... columns) { - this.columns.addAll(Arrays.asList(columns)); - return this; - } - - public AlterTableDropVectorize ifExists() { - this.ifExists = true; - return this; - } - - @Override - public String getOperationName() { - return "dropVectorize"; - } -} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableOperation.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableOperation.java deleted file mode 100644 index 302ccc99..00000000 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/ddl/AlterTableOperation.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.datastax.astra.client.tables.ddl; - -/*- - * #%L - * Data API Java Client - * -- - * Copyright (C) 2024 DataStax - * -- - * Licensed under the Apache License, Version 2.0 - * You may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.Getter; -import lombok.Setter; - -public interface AlterTableOperation { - - @JsonIgnore - String getOperationName(); - -} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableDefinition.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TableDefinition.java similarity index 89% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/TableDefinition.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TableDefinition.java index e13970d7..9fbe4372 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableDefinition.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TableDefinition.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables; +package com.datastax.astra.client.tables.definition; /*- * #%L @@ -21,12 +21,12 @@ */ import com.datastax.astra.client.core.query.Sort; -import com.datastax.astra.client.tables.columns.ColumnDefinition; -import com.datastax.astra.client.tables.columns.ColumnDefinitionList; -import com.datastax.astra.client.tables.columns.ColumnDefinitionMap; -import com.datastax.astra.client.tables.columns.ColumnDefinitionSet; -import com.datastax.astra.client.tables.columns.ColumnDefinitionVector; -import com.datastax.astra.client.tables.columns.ColumnTypes; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinition; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinitionList; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinitionMap; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinitionSet; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinitionVector; +import com.datastax.astra.client.tables.definition.columns.ColumnTypes; import com.datastax.astra.internal.utils.Assert; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableDescriptor.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TableDescriptor.java similarity index 96% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/TableDescriptor.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TableDescriptor.java index 7bce88c3..45fef2fd 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableDescriptor.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TableDescriptor.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables; +package com.datastax.astra.client.tables.definition; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableDuration.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TableDuration.java similarity index 99% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/TableDuration.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TableDuration.java index 1cc78f51..fbea2eaa 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableDuration.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TableDuration.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables; +package com.datastax.astra.client.tables.definition; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/TablePrimaryKey.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TablePrimaryKey.java similarity index 95% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/TablePrimaryKey.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TablePrimaryKey.java index 38cc4a9d..70ecbee3 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/TablePrimaryKey.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TablePrimaryKey.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables; +package com.datastax.astra.client.tables.definition; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinition.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinition.java similarity index 93% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinition.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinition.java index e24d9398..2d82c971 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinition.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinition.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.columns; +package com.datastax.astra.client.tables.definition.columns; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinitionApiSupport.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinitionApiSupport.java similarity index 93% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinitionApiSupport.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinitionApiSupport.java index 340e56f4..60652fca 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinitionApiSupport.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinitionApiSupport.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.columns; +package com.datastax.astra.client.tables.definition.columns; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinitionList.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinitionList.java similarity index 91% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinitionList.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinitionList.java index 65206dad..251c7e7f 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinitionList.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinitionList.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.columns; +package com.datastax.astra.client.tables.definition.columns; /*- * #%L @@ -22,7 +22,6 @@ import lombok.Getter; import lombok.Setter; -import lombok.experimental.Accessors; @Getter @Setter public class ColumnDefinitionList extends ColumnDefinition { diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinitionMap.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinitionMap.java new file mode 100644 index 00000000..27ccd639 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinitionMap.java @@ -0,0 +1,76 @@ +package com.datastax.astra.client.tables.definition.columns; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +import lombok.Getter; +import lombok.Setter; + +/** + * Represents a column definition for a map type in a database schema. + * Extends {@link ColumnDefinition} to include specific details about the key and value types + * for map columns. + * + * This class facilitates the configuration of map columns, allowing specification of + * the types of keys and values stored in the map. + *
+ * + *Example usage:
+ *+ * {@code + * ColumnDefinitionMap mapColumn = new ColumnDefinitionMap(ColumnTypes.TEXT, ColumnTypes.INT); + * ColumnTypes keyType = mapColumn.getKeyType(); + * ColumnTypes valueType = mapColumn.getValueType(); + * } + *+ */ +@Getter +@Setter +public class ColumnDefinitionMap extends ColumnDefinition { + + /** + * The data type of the keys in the map. + */ + private ColumnTypes keyType; + + /** + * The data type of the values in the map. + */ + private ColumnTypes valueType; + + /** + * Constructs a new {@code ColumnDefinitionMap} instance with the column type set to {@link ColumnTypes#MAP}. + */ + public ColumnDefinitionMap() { + super(ColumnTypes.MAP); + } + + /** + * Constructs a new {@code ColumnDefinitionMap} instance with the specified key and value types. + * + * @param keyType the data type of the keys in the map + * @param valueType the data type of the values in the map + */ + public ColumnDefinitionMap(ColumnTypes keyType, ColumnTypes valueType) { + this(); + this.keyType = keyType; + this.valueType = valueType; + } +} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinitionSet.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinitionSet.java similarity index 91% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinitionSet.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinitionSet.java index ab1082cd..41883950 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnDefinitionSet.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinitionSet.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.columns; +package com.datastax.astra.client.tables.definition.columns; /*- * #%L @@ -22,7 +22,6 @@ import lombok.Getter; import lombok.Setter; -import lombok.experimental.Accessors; @Getter @Setter public class ColumnDefinitionSet extends ColumnDefinition { diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinitionVector.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinitionVector.java new file mode 100644 index 00000000..3c64672b --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnDefinitionVector.java @@ -0,0 +1,107 @@ +package com.datastax.astra.client.tables.definition.columns; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +import com.datastax.astra.client.core.vector.SimilarityMetric; +import com.datastax.astra.client.core.vectorize.VectorServiceOptions; +import lombok.Getter; +import lombok.Setter; + +/** + * Represents a column definition for vector-based data. + * Extends {@link ColumnDefinition} to include properties and methods + * specific to vector data such as dimension, similarity metric, and vectorization service. + *+ * This class facilitates the configuration of vector columns in a data schema. + *
+ * + *Example usage:
+ *+ * {@code + * ColumnDefinitionVector vectorColumn = new ColumnDefinitionVector() + * .dimension(128) + * .metric(SimilarityMetric.COSINE); + * } + *+ */ +@Getter +@Setter +public class ColumnDefinitionVector extends ColumnDefinition { + + /** + * The dimension of the vector. + * Represents the number of components in the vector space. + */ + private Integer dimension; + + /** + * The similarity metric to be used for comparing vectors. + * Common metrics include cosine similarity, Euclidean distance, etc. + */ + private SimilarityMetric metric; + + /** + * The service options for vectorization. + * Configures how vectors are generated or processed. + */ + private VectorServiceOptions service; + + /** + * Constructs a new {@code ColumnDefinitionVector} instance + * with the column type set to {@link ColumnTypes#VECTOR}. + */ + public ColumnDefinitionVector() { + super(ColumnTypes.VECTOR); + } + + /** + * Sets the dimension of the vector and returns the updated instance. + * + * @param dimension the dimension of the vector + * @return this {@code ColumnDefinitionVector} instance + */ + public ColumnDefinitionVector dimension(int dimension) { + this.dimension = dimension; + return this; + } + + /** + * Sets the similarity metric for vector comparison and returns the updated instance. + * + * @param m the similarity metric + * @return this {@code ColumnDefinitionVector} instance + */ + public ColumnDefinitionVector metric(SimilarityMetric m) { + this.metric = m; + return this; + } + + /** + * Sets the vectorization service options and returns the updated instance. + * + * @param service the vectorization service options + * @return this {@code ColumnDefinitionVector} instance + */ + public ColumnDefinitionVector service(VectorServiceOptions service) { + this.service = service; + return this; + } +} \ No newline at end of file diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnTypeMapper.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnTypeMapper.java similarity index 98% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnTypeMapper.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnTypeMapper.java index 44e10e70..f2baa421 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/columns/ColumnTypeMapper.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnTypeMapper.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.columns; +package com.datastax.astra.client.tables.definition.columns; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnTypes.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnTypes.java new file mode 100644 index 00000000..5eb658cd --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/ColumnTypes.java @@ -0,0 +1,176 @@ +package com.datastax.astra.client.tables.definition.columns; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +import lombok.Getter; +/** + * Represents the various column types supported in a database schema. + * Each column type is associated with a string representation. + *+ * This enum includes common types like {@code TEXT}, {@code INT}, and {@code UUID}, + * as well as specialized types such as {@code VECTOR} and {@code UNSUPPORTED}. + *
+ * + *Example usage:
+ *+ * {@code + * ColumnTypes columnType = ColumnTypes.TEXT; + * String columnValue = columnType.getValue(); + * } + *+ */ +@Getter +public enum ColumnTypes { + + /** + * ASCII string type. + */ + ASCII("ascii"), + + /** + * 64-bit signed integer. + */ + BIGINT("bigint"), + + /** + * Binary large object (BLOB) type. + */ + BLOB("blob"), + + /** + * Boolean type, representing true or false values. + */ + BOOLEAN("boolean"), + + /** + * Date type, storing only the date part without a time zone. + */ + DATE("date"), + + /** + * Arbitrary precision decimal number. + */ + DECIMAL("decimal"), + + /** + * Double-precision floating-point number. + */ + DOUBLE("double"), + + /** + * Time duration type. + */ + DURATION("duration"), + + /** + * Single-precision floating-point number. + */ + FLOAT("float"), + + /** + * IP address type. + */ + INET("inet"), + + /** + * 32-bit signed integer. + */ + INT("int"), + + /** + * List collection type. + */ + LIST("list"), + + /** + * Map collection type, storing key-value pairs. + */ + MAP("map"), + + /** + * Set collection type, storing unique elements. + */ + SET("set"), + + /** + * 16-bit signed integer. + */ + SMALLINT("smallint"), + + /** + * Text or string type. + */ + TEXT("text"), + + /** + * Time type, storing only the time part. + */ + TIME("time"), + + /** + * Timestamp type, representing a specific date and time. + */ + TIMESTAMP("timestamp"), + + /** + * 8-bit signed integer. + */ + TINYINT("tinyint"), + + /** + * Arbitrary precision integer type. + */ + VARINT("varint"), + + /** + * Universally Unique Identifier (UUID) type. + */ + UUID("uuid"), + + /** + * Represents unsupported column types. + */ + UNSUPPORTED("UNSUPPORTED"), + + /** + * Represents an undefined column type. + */ + UNDEFINED("undefined"), + + /** + * Vector data type, typically used for machine learning or specialized computations. + */ + VECTOR("vector"); + + /** + * The string representation of the column type. + */ + private final String value; + + /** + * Constructs a {@code ColumnTypes} enum constant with the specified string value. + * + * @param value the string representation of the column type + */ + ColumnTypes(String value) { + this.value = value; + } +} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableBaseIndexDefinition.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableBaseIndexDefinition.java similarity index 93% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableBaseIndexDefinition.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableBaseIndexDefinition.java index 374e3dae..5c2a4625 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableBaseIndexDefinition.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableBaseIndexDefinition.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.index; +package com.datastax.astra.client.tables.definition.indexes; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableIndexDefinition.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableIndexDefinition.java similarity index 91% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableIndexDefinition.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableIndexDefinition.java index e4bc60a0..04adac92 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableIndexDefinition.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableIndexDefinition.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.index; +package com.datastax.astra.client.tables.definition.indexes; /*- * #%L @@ -20,9 +20,7 @@ * #L% */ -import lombok.Data; import lombok.Getter; -import lombok.NoArgsConstructor; /** * Index Definitions. diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableIndexDefinitionApiSupport.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableIndexDefinitionApiSupport.java similarity index 93% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableIndexDefinitionApiSupport.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableIndexDefinitionApiSupport.java index 8b7f6e70..5e011db5 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableIndexDefinitionApiSupport.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableIndexDefinitionApiSupport.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.index; +package com.datastax.astra.client.tables.definition.indexes; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableIndexDefinitionOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableIndexDefinitionOptions.java similarity index 95% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableIndexDefinitionOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableIndexDefinitionOptions.java index e56591c1..31731d42 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableIndexDefinitionOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableIndexDefinitionOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.index; +package com.datastax.astra.client.tables.definition.indexes; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableIndexDescriptor.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableIndexDescriptor.java similarity index 96% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableIndexDescriptor.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableIndexDescriptor.java index 9315ff4f..74786e73 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableIndexDescriptor.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableIndexDescriptor.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.index; +package com.datastax.astra.client.tables.definition.indexes; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableVectorIndexDefinition.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableVectorIndexDefinition.java similarity index 94% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableVectorIndexDefinition.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableVectorIndexDefinition.java index 1152ccff..27c01927 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableVectorIndexDefinition.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableVectorIndexDefinition.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.index; +package com.datastax.astra.client.tables.definition.indexes; /*- * #%L @@ -20,7 +20,6 @@ * #L% */ -import lombok.Data; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableVectorIndexDefinitionOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableVectorIndexDefinitionOptions.java similarity index 95% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableVectorIndexDefinitionOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableVectorIndexDefinitionOptions.java index 4826d983..fd3fa276 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableVectorIndexDefinitionOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableVectorIndexDefinitionOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.index; +package com.datastax.astra.client.tables.definition.indexes; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableVectorIndexDescriptor.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableVectorIndexDescriptor.java similarity index 96% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableVectorIndexDescriptor.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableVectorIndexDescriptor.java index 8d172704..94d23ad0 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/index/TableVectorIndexDescriptor.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/TableVectorIndexDescriptor.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.index; +package com.datastax.astra.client.tables.definition.indexes; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/row/PrimaryKey.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/rows/PrimaryKey.java similarity index 92% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/row/PrimaryKey.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/rows/PrimaryKey.java index 8cb46007..571be0ff 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/row/PrimaryKey.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/rows/PrimaryKey.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.row; +package com.datastax.astra.client.tables.definition.rows; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/row/Row.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/rows/Row.java similarity index 98% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/row/Row.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/rows/Row.java index 7d007aff..063da771 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/row/Row.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/rows/Row.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.row; +package com.datastax.astra.client.tables.definition.rows; /*- * #%L @@ -20,10 +20,10 @@ * #L% */ -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.types.DataAPIKeywords; import com.datastax.astra.client.core.vector.DataAPIVector; -import com.datastax.astra.client.tables.TableDuration; +import com.datastax.astra.client.tables.definition.TableDuration; import com.datastax.astra.internal.serdes.DataAPISerializer; import com.datastax.astra.internal.serdes.tables.RowSerializer; import com.fasterxml.jackson.annotation.JsonAnyGetter; @@ -42,7 +42,6 @@ import java.time.Period; import java.time.ZoneId; import java.util.Calendar; -import java.util.Collection; import java.util.Date; import java.util.LinkedHashMap; import java.util.List; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/exceptions/TooManyRowsToCountException.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/exceptions/TooManyRowsToCountException.java index 2e8e740e..26195a37 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/exceptions/TooManyRowsToCountException.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/exceptions/TooManyRowsToCountException.java @@ -21,8 +21,8 @@ */ import com.datastax.astra.client.core.options.DataAPIClientOptions; -import com.datastax.astra.client.exception.ClientErrorCodes; -import com.datastax.astra.client.exception.DataAPIException; +import com.datastax.astra.client.exceptions.ClientErrorCodes; +import com.datastax.astra.client.exceptions.DataAPIException; /** * Error when too many documents in the collection diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/Column.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/Column.java index 2f697aa2..26d63844 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/Column.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/Column.java @@ -21,7 +21,7 @@ */ import com.datastax.astra.client.core.vector.SimilarityMetric; -import com.datastax.astra.client.tables.columns.ColumnTypes; +import com.datastax.astra.client.tables.definition.columns.ColumnTypes; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/TableRowMapper.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/TableRowMapper.java index f4da1e13..b328b454 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/TableRowMapper.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/TableRowMapper.java @@ -20,7 +20,9 @@ * #L% */ -import com.datastax.astra.client.tables.row.Row; +import com.datastax.astra.client.tables.definition.rows.Row; +import com.datastax.astra.internal.reflection.EntityBeanDefinition; +import com.datastax.astra.internal.reflection.EntityFieldDefinition; public class TableRowMapper{ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/CreateIndexOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/CreateIndexOptions.java deleted file mode 100644 index 3a27d180..00000000 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/options/CreateIndexOptions.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.datastax.astra.client.tables.options; - -/*- - * #%L - * Data API Java Client - * -- - * Copyright (C) 2024 DataStax - * -- - * Licensed under the Apache License, Version 2.0 - * You may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * #L% - */ - -public class CreateIndexOptions { -} diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/api/DataAPIData.java b/astra-db-java/src/main/java/com/datastax/astra/internal/api/DataAPIData.java index 70d15c35..a19d7456 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/api/DataAPIData.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/api/DataAPIData.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import lombok.Getter; import lombok.Setter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/api/DataAPIResponse.java b/astra-db-java/src/main/java/com/datastax/astra/internal/api/DataAPIResponse.java index 59c7408b..607092de 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/api/DataAPIResponse.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/api/DataAPIResponse.java @@ -20,10 +20,10 @@ * #L% */ -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.commands.Command; -import com.datastax.astra.client.exception.DataAPIErrorDescriptor; -import com.datastax.astra.client.exception.UnexpectedDataAPIResponseException; +import com.datastax.astra.client.exceptions.DataAPIErrorDescriptor; +import com.datastax.astra.client.exceptions.UnexpectedDataAPIResponseException; import com.datastax.astra.internal.serdes.DataAPISerializer; import com.datastax.astra.internal.utils.Assert; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/api/DataAPIStatus.java b/astra-db-java/src/main/java/com/datastax/astra/internal/api/DataAPIStatus.java index 91724f64..59b65a6f 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/api/DataAPIStatus.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/api/DataAPIStatus.java @@ -20,8 +20,8 @@ * #L% */ -import com.datastax.astra.client.exception.DataAPIErrorDescriptor; -import com.datastax.astra.client.tables.columns.ColumnDefinition; +import com.datastax.astra.client.exceptions.DataAPIErrorDescriptor; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinition; import com.datastax.astra.internal.serdes.DataAPISerializer; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonAnySetter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/command/AbstractCommandRunner.java b/astra-db-java/src/main/java/com/datastax/astra/internal/command/AbstractCommandRunner.java index cfa5d10e..42fd0851 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/command/AbstractCommandRunner.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/command/AbstractCommandRunner.java @@ -26,15 +26,13 @@ import com.datastax.astra.client.core.http.HttpClientOptions; import com.datastax.astra.client.core.options.DataAPIClientOptions; import com.datastax.astra.client.core.options.TimeoutOptions; -import com.datastax.astra.client.exception.DataAPIResponseException; +import com.datastax.astra.client.exceptions.DataAPIResponseException; import com.datastax.astra.internal.api.ApiResponseHttp; import com.datastax.astra.internal.api.DataAPIResponse; import com.datastax.astra.internal.http.RetryHttpClient; import com.datastax.astra.internal.serdes.DataAPISerializer; -import com.datastax.astra.internal.serdes.DatabaseSerializer; import com.datastax.astra.internal.utils.Assert; import com.datastax.astra.internal.utils.CompletableFutures; -import com.dtsx.astra.sdk.db.domain.Database; import com.evanlennick.retry4j.Status; import lombok.Getter; import lombok.extern.slf4j.Slf4j; @@ -52,7 +50,7 @@ import java.util.function.Consumer; import java.util.stream.Collectors; -import static com.datastax.astra.client.exception.InvalidEnvironmentException.throwErrorRestrictedAstra; +import static com.datastax.astra.client.exceptions.InvalidEnvironmentException.throwErrorRestrictedAstra; import static com.datastax.astra.internal.http.RetryHttpClient.CONTENT_TYPE_JSON; import static com.datastax.astra.internal.http.RetryHttpClient.HEADER_ACCEPT; import static com.datastax.astra.internal.http.RetryHttpClient.HEADER_AUTHORIZATION; @@ -62,7 +60,37 @@ import static com.datastax.astra.internal.http.RetryHttpClient.HEADER_USER_AGENT; /** - * Execute the command and parse results throwing DataApiResponseException when needed. + * Abstract base class for executing commands and handling their results. + * + * This class provides a template for implementing a command runner that executes commands + * with specific options and parses their results. It ensures consistent error handling by + * throwing a {@link DataAPIResponseException} when necessary. + *
+ * + *Subclasses must implement the command execution logic as required by the specific context.
+ * + * @paramthe type of options used by the command runner, extending {@link BaseOptions} + * + * Example usage: + * + * {@code + * public class MyCommandRunner extends AbstractCommandRunner*/ @Slf4j @Getter @@ -119,9 +147,7 @@ public abstract class AbstractCommandRunner{ + * + * @Override + * protected void runCommand(MyOptions options) { + * // Implement the command execution logic here + * } + * + * @Override + * protected void parseResults() { + * // Implement result parsing logic here + * } + * } + * + * MyCommandRunner runner = new MyCommandRunner(); + * runner.execute(new MyOptions()); + * } + * > impl /** Api Endpoint for the API. */ protected String apiEndpoint; - /** - * Default command options when not override - */ + /** Default command options when not override. */ protected OPTIONS options; /** @@ -130,6 +156,14 @@ public abstract class AbstractCommandRunner > impl protected AbstractCommandRunner() { } + /** + * Constructor with the API endpoint and default options. + * + * @param apiEndpoint + * the API endpoint + * @param options + * the default options + */ public AbstractCommandRunner(String apiEndpoint, OPTIONS options) { Assert.hasLength(apiEndpoint, "apiEndpoint"); Assert.notNull(options, "options"); @@ -320,7 +354,6 @@ public DOC runCommand(Command command, BaseOptions> options, Class * operations to execute * @param observers * list of observers to check - * */ private void notifyASync(Consumer lambda, List observers) { if (observers != null) { @@ -330,12 +363,28 @@ private void notifyASync(Consumer lambda, List } } + /** + * Validates that the current options are configured for Astra. + * + * + * This method ensures that the operation is being performed in an Astra environment. + * If the options are not set for Astra, it throws an exception with details about the restriction. + *
+ * + * @throws IllegalStateException if the configuration is not set for Astra + */ protected void assertIsAstra() { if (!options.getDataAPIClientOptions().isAstra()) { throwErrorRestrictedAstra("getRegion", options.getDataAPIClientOptions().getDestination()); } } + /** + * Gets the serializer currently in place to parse inputs and outputs. + * + * @return + * the serializer + */ protected DataAPISerializer getSerializer() { return this.options.getSerializer(); } diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/command/LoggingCommandObserver.java b/astra-db-java/src/main/java/com/datastax/astra/internal/command/LoggingCommandObserver.java index 0be6d790..7b445810 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/command/LoggingCommandObserver.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/command/LoggingCommandObserver.java @@ -21,9 +21,7 @@ */ import com.datastax.astra.internal.api.DataAPIData; -import com.datastax.astra.client.exception.DataAPIErrorDescriptor; -import com.datastax.astra.internal.serdes.DataAPISerializer; -import com.datastax.astra.internal.serdes.DatabaseSerializer; +import com.datastax.astra.client.exceptions.DataAPIErrorDescriptor; import com.datastax.astra.internal.utils.AnsiUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/http/RetryHttpClient.java b/astra-db-java/src/main/java/com/datastax/astra/internal/http/RetryHttpClient.java index 98b32fbd..cd9673ac 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/http/RetryHttpClient.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/http/RetryHttpClient.java @@ -23,8 +23,8 @@ import com.datastax.astra.client.core.http.Caller; import com.datastax.astra.client.core.http.HttpClientOptions; import com.datastax.astra.client.core.options.TimeoutOptions; -import com.datastax.astra.client.exception.DataAPIException; -import com.datastax.astra.client.exception.DataAPIHttpException; +import com.datastax.astra.client.exceptions.DataAPIException; +import com.datastax.astra.client.exceptions.DataAPIHttpException; import com.datastax.astra.internal.api.ApiResponseHttp; import com.evanlennick.retry4j.CallExecutorBuilder; import com.evanlennick.retry4j.Status; @@ -46,7 +46,7 @@ import java.util.concurrent.Callable; import java.util.stream.Collectors; -import static com.datastax.astra.client.exception.DataAPIException.ERROR_CODE_HTTP; +import static com.datastax.astra.client.exceptions.DataAPIException.ERROR_CODE_HTTP; /** * Http Client using JDK11 client with a retry mechanism. diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/EntityBeanDefinition.java b/astra-db-java/src/main/java/com/datastax/astra/internal/reflection/EntityBeanDefinition.java similarity index 91% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/EntityBeanDefinition.java rename to astra-db-java/src/main/java/com/datastax/astra/internal/reflection/EntityBeanDefinition.java index f4d1b25f..c4b6cb98 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/EntityBeanDefinition.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/reflection/EntityBeanDefinition.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.mapping; +package com.datastax.astra.internal.reflection; /*- * #%L @@ -20,10 +20,14 @@ * #L% */ -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.vector.SimilarityMetric; -import com.datastax.astra.client.tables.columns.ColumnTypeMapper; -import com.datastax.astra.client.tables.columns.ColumnTypes; +import com.datastax.astra.client.tables.definition.columns.ColumnTypeMapper; +import com.datastax.astra.client.tables.definition.columns.ColumnTypes; +import com.datastax.astra.client.tables.mapping.Column; +import com.datastax.astra.client.tables.mapping.EntityTable; +import com.datastax.astra.client.tables.mapping.PartitionBy; +import com.datastax.astra.client.tables.mapping.PartitionSort; import com.dtsx.astra.sdk.utils.Utils; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper; @@ -44,8 +48,16 @@ import java.util.stream.Collectors; /** - * Bean introspector will get information of a Bean to populate fields - * directly from the output. + * Provides introspection and metadata for a JavaBean entity. + *+ * This class inspects a JavaBean of type {@code T} to extract and manage metadata about its properties. + * It is used to populate fields directly based on the output or other sources. + *
+ * + *The {@code EntityBeanDefinition} is useful in scenarios where JavaBean introspection is needed + * for tasks such as data mapping, serialization, or populating object fields dynamically.
+ * + * @paramthe type of the JavaBean entity being introspected */ @Slf4j @Data diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/EntityFieldDefinition.java b/astra-db-java/src/main/java/com/datastax/astra/internal/reflection/EntityFieldDefinition.java similarity index 91% rename from astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/EntityFieldDefinition.java rename to astra-db-java/src/main/java/com/datastax/astra/internal/reflection/EntityFieldDefinition.java index ff72b856..b5867ff1 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/EntityFieldDefinition.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/reflection/EntityFieldDefinition.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.tables.mapping; +package com.datastax.astra.internal.reflection; /*- * #%L @@ -22,11 +22,10 @@ import com.datastax.astra.client.core.query.SortOrder; import com.datastax.astra.client.core.vector.SimilarityMetric; -import com.datastax.astra.client.tables.columns.ColumnTypes; +import com.datastax.astra.client.tables.definition.columns.ColumnTypes; import lombok.Data; import java.lang.reflect.Method; -import java.lang.reflect.Type; @Data public class EntityFieldDefinition { diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/DataAPISerializer.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/DataAPISerializer.java index c483c1cf..580a3e7b 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/DataAPISerializer.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/DataAPISerializer.java @@ -20,13 +20,13 @@ * #L% */ -import com.datastax.astra.client.exception.DataAPIException; +import com.datastax.astra.client.exceptions.DataAPIException; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import java.util.Objects; -import static com.datastax.astra.client.exception.DataAPIException.ERROR_CODE_SERIALIZATION; +import static com.datastax.astra.client.exceptions.DataAPIException.ERROR_CODE_SERIALIZATION; /** * Definition of a serializer for the Data API diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/DatabaseSerializer.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/DatabaseSerializer.java index 7efc0ae4..598ee099 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/DatabaseSerializer.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/DatabaseSerializer.java @@ -36,10 +36,10 @@ * #L% */ -import com.datastax.astra.client.collections.CollectionDefaultIdTypes; +import com.datastax.astra.client.collections.definition.CollectionDefaultIdTypes; import com.datastax.astra.client.core.vector.DataAPIVector; import com.datastax.astra.client.core.vector.SimilarityMetric; -import com.datastax.astra.client.tables.columns.ColumnTypes; +import com.datastax.astra.client.tables.definition.columns.ColumnTypes; import com.datastax.astra.internal.serdes.collections.CollectionDefaultIdTypeDeserializer; import com.datastax.astra.internal.serdes.collections.CollectionDefaultIdTypeSerializer; import com.datastax.astra.internal.serdes.shared.DataAPIVectorDeserializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/CollectionDefaultIdTypeDeserializer.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/CollectionDefaultIdTypeDeserializer.java index 8fce2e72..328190dc 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/CollectionDefaultIdTypeDeserializer.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/CollectionDefaultIdTypeDeserializer.java @@ -20,8 +20,7 @@ * #L% */ -import com.datastax.astra.client.collections.CollectionDefaultIdTypes; -import com.datastax.astra.client.core.vector.SimilarityMetric; +import com.datastax.astra.client.collections.definition.CollectionDefaultIdTypes; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/CollectionDefaultIdTypeSerializer.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/CollectionDefaultIdTypeSerializer.java index 65dd87a0..a5117ede 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/CollectionDefaultIdTypeSerializer.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/CollectionDefaultIdTypeSerializer.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.collections.CollectionDefaultIdTypes; +import com.datastax.astra.client.collections.definition.CollectionDefaultIdTypes; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.std.StdSerializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/DocumentSerializer.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/DocumentSerializer.java index 08b1c196..35085f54 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/DocumentSerializer.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/DocumentSerializer.java @@ -36,7 +36,7 @@ * #L% */ -import com.datastax.astra.client.collections.CollectionDefaultIdTypes; +import com.datastax.astra.client.collections.definition.CollectionDefaultIdTypes; import com.datastax.astra.client.core.types.ObjectId; import com.datastax.astra.client.core.types.UUIDv6; import com.datastax.astra.client.core.types.UUIDv7; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/ColumnTypeDeserializer.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/ColumnTypeDeserializer.java index 94b3594f..8e29cc7f 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/ColumnTypeDeserializer.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/ColumnTypeDeserializer.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.tables.columns.ColumnTypes; +import com.datastax.astra.client.tables.definition.columns.ColumnTypes; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/ColumnTypeSerializer.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/ColumnTypeSerializer.java index 6fb85601..5a944805 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/ColumnTypeSerializer.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/ColumnTypeSerializer.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.tables.columns.ColumnTypes; +import com.datastax.astra.client.tables.definition.columns.ColumnTypes; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.std.StdSerializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/RowSerializer.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/RowSerializer.java index 44c9b83c..033e0632 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/RowSerializer.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/RowSerializer.java @@ -38,8 +38,8 @@ import com.datastax.astra.client.core.vector.DataAPIVector; import com.datastax.astra.client.core.vector.SimilarityMetric; -import com.datastax.astra.client.tables.TableDuration; -import com.datastax.astra.client.tables.columns.ColumnTypes; +import com.datastax.astra.client.tables.definition.TableDuration; +import com.datastax.astra.client.tables.definition.columns.ColumnTypes; import com.datastax.astra.internal.serdes.DataAPISerializer; import com.datastax.astra.internal.serdes.shared.DataAPIVectorDeserializer; import com.datastax.astra.internal.serdes.shared.DataAPIVectorSerializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/TableDurationDeserializer.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/TableDurationDeserializer.java index dccfe7ec..ae58ff95 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/TableDurationDeserializer.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/TableDurationDeserializer.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.tables.TableDuration; +import com.datastax.astra.client.tables.definition.TableDuration; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/TableDurationSerializer.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/TableDurationSerializer.java index 0c1a5245..b3e782c7 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/TableDurationSerializer.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/TableDurationSerializer.java @@ -21,7 +21,7 @@ */ import com.datastax.astra.client.core.options.DataAPIClientOptions; -import com.datastax.astra.client.tables.TableDuration; +import com.datastax.astra.client.tables.definition.TableDuration; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; diff --git a/astra-db-java/src/main/java/overview.html b/astra-db-java/src/main/java/overview.html index 15c5c5c7..32499351 100644 --- a/astra-db-java/src/main/java/overview.html +++ b/astra-db-java/src/main/java/overview.html @@ -49,7 +49,7 @@ QuickStart
import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.collections.Collection; import com.datastax.astra.client.databases.Database; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.paging.FindIterable; import java.util.List; import static com.datastax.astra.client.model.Filters.eq; diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractCollectionITTest.java b/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractCollectionITTest.java index d3aecd1c..3cef3c03 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractCollectionITTest.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractCollectionITTest.java @@ -1,18 +1,18 @@ package com.datastax.astra.test.integration; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.documents.Update; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.Update; import com.datastax.astra.client.collections.exceptions.TooManyDocumentsToCountException; -import com.datastax.astra.client.collections.options.CollectionDeleteOneOptions; -import com.datastax.astra.client.collections.options.CollectionFindOneAndReplaceOptions; -import com.datastax.astra.client.collections.options.CollectionFindOneAndUpdateOptions; -import com.datastax.astra.client.collections.options.CollectionFindOneOptions; -import com.datastax.astra.client.collections.options.CollectionFindOptions; -import com.datastax.astra.client.collections.options.CollectionInsertManyOptions; -import com.datastax.astra.client.collections.results.CollectionInsertOneResult; -import com.datastax.astra.client.collections.results.CollectionUpdateResult; +import com.datastax.astra.client.collections.commands.options.CollectionDeleteOneOptions; +import com.datastax.astra.client.collections.commands.options.CollectionFindOneAndReplaceOptions; +import com.datastax.astra.client.collections.commands.options.CollectionFindOneAndUpdateOptions; +import com.datastax.astra.client.collections.commands.options.CollectionFindOneOptions; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; +import com.datastax.astra.client.collections.commands.options.CollectionInsertManyOptions; +import com.datastax.astra.client.collections.commands.results.CollectionInsertOneResult; +import com.datastax.astra.client.collections.commands.results.CollectionUpdateResult; import com.datastax.astra.client.core.commands.Command; import com.datastax.astra.client.core.options.TimeoutOptions; import com.datastax.astra.client.core.paging.CollectionCursor; @@ -44,7 +44,7 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; -import static com.datastax.astra.client.collections.documents.ReturnDocument.AFTER; +import static com.datastax.astra.client.collections.commands.ReturnDocument.AFTER; import static com.datastax.astra.client.core.options.DataAPIClientOptions.MAX_COUNT; import static com.datastax.astra.client.core.query.Filters.eq; import static com.datastax.astra.client.core.query.Filters.gt; diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractDataAPITest.java b/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractDataAPITest.java index 2e9f7bfd..2b5b7413 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractDataAPITest.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractDataAPITest.java @@ -5,7 +5,7 @@ import com.datastax.astra.client.databases.Database; import com.datastax.astra.client.admin.AstraDBAdmin; import com.datastax.astra.client.admin.DatabaseAdmin; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.types.ObjectId; import com.dtsx.astra.sdk.db.domain.CloudProviderType; import com.dtsx.astra.sdk.utils.AstraEnvironment; diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractDatabaseTest.java b/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractDatabaseTest.java index d1077c3d..281e05ef 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractDatabaseTest.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractDatabaseTest.java @@ -1,27 +1,27 @@ package com.datastax.astra.test.integration; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefaultIdTypes; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.results.CollectionInsertManyResult; -import com.datastax.astra.client.collections.results.CollectionInsertOneResult; +import com.datastax.astra.client.collections.definition.CollectionDefaultIdTypes; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.results.CollectionInsertManyResult; +import com.datastax.astra.client.collections.commands.results.CollectionInsertOneResult; import com.datastax.astra.client.core.auth.EmbeddingAPIKeyHeaderProvider; import com.datastax.astra.client.core.commands.Command; import com.datastax.astra.client.core.types.ObjectId; import com.datastax.astra.client.core.types.UUIDv6; import com.datastax.astra.client.core.types.UUIDv7; import com.datastax.astra.client.core.vector.SimilarityMetric; -import com.datastax.astra.client.databases.options.ListTablesOptions; -import com.datastax.astra.client.exception.DataAPIException; +import com.datastax.astra.client.tables.commands.options.ListTablesOptions; +import com.datastax.astra.client.exceptions.DataAPIException; import com.datastax.astra.client.tables.Table; -import com.datastax.astra.client.tables.TableDefinition; -import com.datastax.astra.client.tables.TableDescriptor; +import com.datastax.astra.client.tables.definition.TableDefinition; +import com.datastax.astra.client.tables.definition.TableDescriptor; import com.datastax.astra.client.tables.TableOptions; -import com.datastax.astra.client.tables.columns.ColumnDefinitionVector; -import com.datastax.astra.client.tables.columns.ColumnTypes; -import com.datastax.astra.client.tables.ddl.CreateTableOptions; -import com.datastax.astra.client.tables.row.Row; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinitionVector; +import com.datastax.astra.client.tables.definition.columns.ColumnTypes; +import com.datastax.astra.client.tables.commands.options.CreateTableOptions; +import com.datastax.astra.client.tables.definition.rows.Row; import com.datastax.astra.internal.api.DataAPIResponse; import com.datastax.astra.test.model.TableEntityGameWithAnnotation; import com.datastax.astra.test.model.TableEntityGameWithAnnotationAllHints; @@ -40,13 +40,12 @@ import java.util.Optional; import java.util.UUID; -import static com.datastax.astra.client.collections.CollectionDefaultIdTypes.OBJECT_ID; -import static com.datastax.astra.client.collections.CollectionDefaultIdTypes.UUIDV6; -import static com.datastax.astra.client.collections.CollectionDefaultIdTypes.UUIDV7; +import static com.datastax.astra.client.collections.definition.CollectionDefaultIdTypes.OBJECT_ID; +import static com.datastax.astra.client.collections.definition.CollectionDefaultIdTypes.UUIDV6; +import static com.datastax.astra.client.collections.definition.CollectionDefaultIdTypes.UUIDV7; import static com.datastax.astra.client.core.query.Filters.eq; import static com.datastax.astra.client.core.query.Sort.ascending; import static com.datastax.astra.client.core.vector.SimilarityMetric.COSINE; -import static com.datastax.astra.client.tables.ddl.DropTableOptions.IF_EXISTS; import static java.time.Duration.ofSeconds; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractVectorizeITTest.java b/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractVectorizeITTest.java index 61491743..4fe353fc 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractVectorizeITTest.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/integration/AbstractVectorizeITTest.java @@ -1,23 +1,22 @@ package com.datastax.astra.test.integration; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefinition; +import com.datastax.astra.client.collections.definition.CollectionDefinition; import com.datastax.astra.client.collections.CollectionOptions; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionFindOneOptions; -import com.datastax.astra.client.collections.options.CollectionFindOptions; -import com.datastax.astra.client.collections.options.CollectionInsertManyOptions; -import com.datastax.astra.client.collections.results.CollectionInsertManyResult; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOneOptions; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; +import com.datastax.astra.client.collections.commands.options.CollectionInsertManyOptions; +import com.datastax.astra.client.collections.commands.results.CollectionInsertManyResult; import com.datastax.astra.client.core.auth.EmbeddingAPIKeyHeaderProvider; import com.datastax.astra.client.core.auth.EmbeddingHeadersProvider; -import com.datastax.astra.client.core.commands.BaseOptions; import com.datastax.astra.client.core.paging.FindIterable; import com.datastax.astra.client.core.query.Projection; import com.datastax.astra.client.core.query.Sort; import com.datastax.astra.client.core.types.DataAPIKeywords; import com.datastax.astra.client.core.vector.SimilarityMetric; import com.datastax.astra.client.core.vectorize.EmbeddingProvider; -import com.datastax.astra.client.databases.options.CreateCollectionOptions; +import com.datastax.astra.client.collections.commands.options.CreateCollectionOptions; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.MethodOrderer; import org.junit.jupiter.api.TestMethodOrder; diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/integration/dev_vectorize/AstraDevVectorizeAwsBedRockITTest.java b/astra-db-java/src/test/java/com/datastax/astra/test/integration/dev_vectorize/AstraDevVectorizeAwsBedRockITTest.java index 3c22794f..745cf20f 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/integration/dev_vectorize/AstraDevVectorizeAwsBedRockITTest.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/integration/dev_vectorize/AstraDevVectorizeAwsBedRockITTest.java @@ -1,11 +1,11 @@ package com.datastax.astra.test.integration.dev_vectorize; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionFindOneOptions; -import com.datastax.astra.client.collections.options.CollectionInsertManyOptions; -import com.datastax.astra.client.collections.results.CollectionInsertManyResult; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOneOptions; +import com.datastax.astra.client.collections.commands.options.CollectionInsertManyOptions; +import com.datastax.astra.client.collections.commands.results.CollectionInsertManyResult; import com.datastax.astra.client.core.auth.AWSEmbeddingHeadersProvider; import com.datastax.astra.client.core.auth.EmbeddingHeadersProvider; import com.datastax.astra.client.core.query.Projection; diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/integration/dev_vectorize/AstraDevVectorizeHuggingFaceDedicatedITTest.java b/astra-db-java/src/test/java/com/datastax/astra/test/integration/dev_vectorize/AstraDevVectorizeHuggingFaceDedicatedITTest.java index cec08021..7e82e2e6 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/integration/dev_vectorize/AstraDevVectorizeHuggingFaceDedicatedITTest.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/integration/dev_vectorize/AstraDevVectorizeHuggingFaceDedicatedITTest.java @@ -1,8 +1,8 @@ package com.datastax.astra.test.integration.dev_vectorize; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.auth.EmbeddingAPIKeyHeaderProvider; import com.datastax.astra.client.core.results.FindEmbeddingProvidersResult; import com.datastax.astra.test.integration.AbstractVectorizeITTest; diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalCollectionITTest.java b/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalCollectionITTest.java index 151aaabb..7ded062d 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalCollectionITTest.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalCollectionITTest.java @@ -2,21 +2,21 @@ import com.datastax.astra.client.DataAPIClients; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.collections.exceptions.TooManyDocumentsToCountException; -import com.datastax.astra.client.collections.options.CollectionFindOptions; -import com.datastax.astra.client.collections.options.CollectionInsertManyOptions; -import com.datastax.astra.client.collections.options.CollectionUpdateManyOptions; -import com.datastax.astra.client.collections.results.CollectionInsertManyResult; -import com.datastax.astra.client.collections.results.CollectionUpdateResult; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; +import com.datastax.astra.client.collections.commands.options.CollectionInsertManyOptions; +import com.datastax.astra.client.collections.commands.options.CollectionUpdateManyOptions; +import com.datastax.astra.client.collections.commands.results.CollectionInsertManyResult; +import com.datastax.astra.client.collections.commands.results.CollectionUpdateResult; import com.datastax.astra.client.core.options.DataAPIClientOptions; import com.datastax.astra.client.core.paging.FindIterable; import com.datastax.astra.client.core.paging.Page; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Sort; import com.datastax.astra.client.databases.Database; -import com.datastax.astra.client.databases.options.ListCollectionOptions; -import com.datastax.astra.client.exception.DataAPIResponseException; +import com.datastax.astra.client.collections.commands.options.ListCollectionOptions; +import com.datastax.astra.client.exceptions.DataAPIResponseException; import com.datastax.astra.test.integration.AbstractCollectionITTest; import com.dtsx.astra.sdk.db.domain.CloudProviderType; import com.dtsx.astra.sdk.utils.AstraEnvironment; @@ -27,7 +27,7 @@ import java.util.List; import java.util.Optional; -import static com.datastax.astra.client.collections.documents.Updates.set; +import static com.datastax.astra.client.collections.commands.Updates.set; import static com.datastax.astra.client.core.query.Filters.and; import static com.datastax.astra.client.core.query.Filters.eq; import static com.datastax.astra.client.core.query.Filters.exists; diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalDatabaseAdminITTest.java b/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalDatabaseAdminITTest.java index 5715ee6f..93deb636 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalDatabaseAdminITTest.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalDatabaseAdminITTest.java @@ -4,7 +4,7 @@ import com.datastax.astra.client.databases.Database; import com.datastax.astra.client.admin.DataAPIDatabaseAdmin; import com.datastax.astra.client.admin.DatabaseAdmin; -import com.datastax.astra.client.exception.DataAPIException; +import com.datastax.astra.client.exceptions.DataAPIException; import com.datastax.astra.client.keyspaces.KeyspaceOptions; import com.datastax.astra.test.integration.AbstractDatabaseAdminITTest; import com.dtsx.astra.sdk.db.domain.CloudProviderType; diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalDatabaseITTest.java b/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalDatabaseITTest.java index e7fd21c4..8f0add4f 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalDatabaseITTest.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalDatabaseITTest.java @@ -8,12 +8,10 @@ import com.datastax.astra.client.core.options.DataAPIClientOptions; import com.datastax.astra.client.databases.Database; import com.datastax.astra.client.core.auth.UsernamePasswordTokenProvider; -import com.datastax.astra.client.exception.DataAPIException; -import com.datastax.astra.client.exception.DataAPIResponseException; +import com.datastax.astra.client.exceptions.DataAPIException; import com.datastax.astra.client.core.commands.Command; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.http.HttpProxy; -import com.datastax.astra.client.exception.UnexpectedDataAPIResponseException; import com.datastax.astra.test.integration.AbstractDatabaseTest; import com.dtsx.astra.sdk.db.domain.CloudProviderType; import com.dtsx.astra.sdk.utils.AstraEnvironment; diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalTableITTest.java b/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalTableITTest.java index 225351dc..2dd0e51c 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalTableITTest.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/integration/local/LocalTableITTest.java @@ -16,30 +16,30 @@ import com.datastax.astra.client.databases.Database; import com.datastax.astra.client.databases.DatabaseOptions; import com.datastax.astra.client.tables.Table; -import com.datastax.astra.client.tables.TableDefinition; -import com.datastax.astra.client.tables.TableDuration; -import com.datastax.astra.client.tables.columns.ColumnDefinitionVector; -import com.datastax.astra.client.tables.columns.ColumnTypes; -import com.datastax.astra.client.tables.ddl.AlterTableAddColumns; -import com.datastax.astra.client.tables.ddl.AlterTableAddVectorize; -import com.datastax.astra.client.tables.ddl.AlterTableDropColumns; -import com.datastax.astra.client.tables.ddl.AlterTableDropVectorize; -import com.datastax.astra.client.tables.ddl.CreateIndexOptions; -import com.datastax.astra.client.tables.ddl.CreateTableOptions; -import com.datastax.astra.client.tables.ddl.CreateVectorIndexOptions; -import com.datastax.astra.client.tables.ddl.DropTableIndexOptions; -import com.datastax.astra.client.tables.index.TableIndexDefinition; -import com.datastax.astra.client.tables.index.TableIndexDefinitionOptions; -import com.datastax.astra.client.tables.index.TableVectorIndexDefinition; -import com.datastax.astra.client.tables.index.TableVectorIndexDefinitionOptions; -import com.datastax.astra.client.tables.options.TableFindOneOptions; -import com.datastax.astra.client.tables.options.TableFindOptions; -import com.datastax.astra.client.tables.options.TableInsertManyOptions; -import com.datastax.astra.client.tables.results.TableInsertManyResult; -import com.datastax.astra.client.tables.results.TableInsertOneResult; -import com.datastax.astra.client.tables.results.TableUpdateResult; -import com.datastax.astra.client.tables.row.Row; -import com.datastax.astra.client.tables.row.TableUpdate; +import com.datastax.astra.client.tables.definition.TableDefinition; +import com.datastax.astra.client.tables.definition.TableDuration; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinitionVector; +import com.datastax.astra.client.tables.definition.columns.ColumnTypes; +import com.datastax.astra.client.tables.commands.AlterTableAddColumns; +import com.datastax.astra.client.tables.commands.AlterTableAddVectorize; +import com.datastax.astra.client.tables.commands.AlterTableDropColumns; +import com.datastax.astra.client.tables.commands.AlterTableDropVectorize; +import com.datastax.astra.client.tables.commands.options.CreateIndexOptions; +import com.datastax.astra.client.tables.commands.options.CreateTableOptions; +import com.datastax.astra.client.tables.commands.options.CreateVectorIndexOptions; +import com.datastax.astra.client.tables.commands.options.DropTableIndexOptions; +import com.datastax.astra.client.tables.definition.indexes.TableIndexDefinition; +import com.datastax.astra.client.tables.definition.indexes.TableIndexDefinitionOptions; +import com.datastax.astra.client.tables.definition.indexes.TableVectorIndexDefinition; +import com.datastax.astra.client.tables.definition.indexes.TableVectorIndexDefinitionOptions; +import com.datastax.astra.client.tables.commands.options.TableFindOneOptions; +import com.datastax.astra.client.tables.commands.options.TableFindOptions; +import com.datastax.astra.client.tables.commands.options.TableInsertManyOptions; +import com.datastax.astra.client.tables.commands.results.TableInsertManyResult; +import com.datastax.astra.client.tables.commands.results.TableInsertOneResult; +import com.datastax.astra.client.tables.commands.results.TableUpdateResult; +import com.datastax.astra.client.tables.definition.rows.Row; +import com.datastax.astra.client.tables.commands.TableUpdateOperation; import com.datastax.astra.internal.serdes.tables.RowSerializer; import com.datastax.astra.test.integration.AbstractTableITTest; import com.datastax.astra.test.model.TableCompositeAnnotatedRow; @@ -71,8 +71,8 @@ import static com.datastax.astra.client.core.query.Sort.ascending; import static com.datastax.astra.client.core.query.Sort.descending; import static com.datastax.astra.client.core.vector.SimilarityMetric.COSINE; -import static com.datastax.astra.client.tables.ddl.CreateTableOptions.IF_NOT_EXISTS; -import static com.datastax.astra.client.tables.ddl.DropTableOptions.IF_EXISTS; +import static com.datastax.astra.client.tables.commands.options.CreateTableOptions.IF_NOT_EXISTS; +import static com.datastax.astra.client.tables.commands.options.DropTableOptions.IF_EXISTS; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; /** @@ -673,7 +673,7 @@ public void should_updateOne() { assertThat(table.findOne(johnFilter)).isPresent(); // Update the document - TableUpdateResult birthday = table.updateOne(johnFilter, TableUpdate.create() + TableUpdateResult birthday = table.updateOne(johnFilter, TableUpdateOperation.create() .set("age", 43)); //.updateMul(Map.of("price", 1.1d))); Assertions.assertThat(birthday.getMatchedCount()).isEqualTo(1); diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/model/TableCompositeAnnotatedRow.java b/astra-db-java/src/test/java/com/datastax/astra/test/model/TableCompositeAnnotatedRow.java index 5f6b39d0..9712cf91 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/model/TableCompositeAnnotatedRow.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/model/TableCompositeAnnotatedRow.java @@ -7,8 +7,8 @@ import lombok.Data; import lombok.NoArgsConstructor; -import static com.datastax.astra.client.tables.columns.ColumnTypes.INT; -import static com.datastax.astra.client.tables.columns.ColumnTypes.TEXT; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.INT; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.TEXT; @Data @EntityTable("table_composite_pk_annotated") diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/model/TableEntityGameWithAnnotationAllHints.java b/astra-db-java/src/test/java/com/datastax/astra/test/model/TableEntityGameWithAnnotationAllHints.java index 6b604bf2..d0e1fcb3 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/model/TableEntityGameWithAnnotationAllHints.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/model/TableEntityGameWithAnnotationAllHints.java @@ -14,12 +14,12 @@ import java.time.Instant; import java.util.Set; -import static com.datastax.astra.client.tables.columns.ColumnTypes.INT; -import static com.datastax.astra.client.tables.columns.ColumnTypes.SET; -import static com.datastax.astra.client.tables.columns.ColumnTypes.TEXT; -import static com.datastax.astra.client.tables.columns.ColumnTypes.TIMESTAMP; -import static com.datastax.astra.client.tables.columns.ColumnTypes.UUID; -import static com.datastax.astra.client.tables.columns.ColumnTypes.VECTOR; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.INT; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.SET; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.TEXT; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.TIMESTAMP; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.UUID; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.VECTOR; @Data @EntityTable("game_ann1") diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/model/TableSimpleAnnotatedRow.java b/astra-db-java/src/test/java/com/datastax/astra/test/model/TableSimpleAnnotatedRow.java index 87ba6812..809c0b26 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/model/TableSimpleAnnotatedRow.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/model/TableSimpleAnnotatedRow.java @@ -9,9 +9,9 @@ import lombok.Data; import static com.datastax.astra.client.core.query.SortOrder.ASCENDING; -import static com.datastax.astra.client.tables.columns.ColumnTypes.BOOLEAN; -import static com.datastax.astra.client.tables.columns.ColumnTypes.INT; -import static com.datastax.astra.client.tables.columns.ColumnTypes.TEXT; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.BOOLEAN; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.INT; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.TEXT; @Data @Builder diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/unit/DataAPIExceptionsTest.java b/astra-db-java/src/test/java/com/datastax/astra/test/unit/DataAPIExceptionsTest.java index 9f75b01a..57a36fc9 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/unit/DataAPIExceptionsTest.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/unit/DataAPIExceptionsTest.java @@ -1,6 +1,6 @@ package com.datastax.astra.test.unit; -import com.datastax.astra.client.exception.UnexpectedDataAPIResponseException; +import com.datastax.astra.client.exceptions.UnexpectedDataAPIResponseException; import com.datastax.astra.client.core.commands.Command; import com.datastax.astra.internal.api.DataAPIResponse; import org.junit.jupiter.api.Test; diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/unit/DataApiOptionsTest.java b/astra-db-java/src/test/java/com/datastax/astra/test/unit/DataApiOptionsTest.java index a251f522..59c6f164 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/unit/DataApiOptionsTest.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/unit/DataApiOptionsTest.java @@ -2,29 +2,29 @@ import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.DataAPIDestination; -import com.datastax.astra.client.collections.documents.ReturnDocument; +import com.datastax.astra.client.collections.commands.ReturnDocument; import com.datastax.astra.client.core.http.HttpClientOptions; import com.datastax.astra.client.core.options.DataAPIClientOptions; -import com.datastax.astra.client.collections.options.CollectionDeleteOneOptions; -import com.datastax.astra.client.collections.results.CollectionDeleteResult; -import com.datastax.astra.client.collections.options.CollectionFindOneAndDeleteOptions; -import com.datastax.astra.client.collections.options.CollectionFindOneAndReplaceOptions; -import com.datastax.astra.client.collections.options.CollectionFindOneAndUpdateOptions; -import com.datastax.astra.client.collections.options.CollectionFindOneOptions; -import com.datastax.astra.client.collections.options.CollectionFindOptions; -import com.datastax.astra.client.collections.options.CollectionInsertManyOptions; -import com.datastax.astra.client.collections.results.CollectionInsertOneResult; -import com.datastax.astra.client.collections.options.CollectionReplaceOneOptions; +import com.datastax.astra.client.collections.commands.options.CollectionDeleteOneOptions; +import com.datastax.astra.client.collections.commands.results.CollectionDeleteResult; +import com.datastax.astra.client.collections.commands.options.CollectionFindOneAndDeleteOptions; +import com.datastax.astra.client.collections.commands.options.CollectionFindOneAndReplaceOptions; +import com.datastax.astra.client.collections.commands.options.CollectionFindOneAndUpdateOptions; +import com.datastax.astra.client.collections.commands.options.CollectionFindOneOptions; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; +import com.datastax.astra.client.collections.commands.options.CollectionInsertManyOptions; +import com.datastax.astra.client.collections.commands.results.CollectionInsertOneResult; +import com.datastax.astra.client.collections.commands.options.CollectionReplaceOneOptions; import com.datastax.astra.client.core.options.TimeoutOptions; import com.datastax.astra.client.core.query.Sort; import com.datastax.astra.client.core.vector.SimilarityMetric; -import com.datastax.astra.client.collections.documents.Update; -import com.datastax.astra.client.collections.options.UpdateOneOptions; -import com.datastax.astra.client.collections.documents.Updates; +import com.datastax.astra.client.collections.commands.Update; +import com.datastax.astra.client.collections.commands.options.UpdateOneOptions; +import com.datastax.astra.client.collections.commands.Updates; import com.datastax.astra.client.core.vector.VectorOptions; import com.datastax.astra.client.core.vectorize.VectorServiceOptions; -import com.datastax.astra.client.collections.CollectionDefaultIdTypes; -import com.datastax.astra.client.collections.CollectionDefinition; +import com.datastax.astra.client.collections.definition.CollectionDefaultIdTypes; +import com.datastax.astra.client.collections.definition.CollectionDefinition; import com.datastax.astra.client.core.http.HttpProxy; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.FilterOperator; diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/unit/DocumentSerializationTest.java b/astra-db-java/src/test/java/com/datastax/astra/test/unit/DocumentSerializationTest.java index 0298de7e..4537d6e5 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/unit/DocumentSerializationTest.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/unit/DocumentSerializationTest.java @@ -1,8 +1,8 @@ package com.datastax.astra.test.unit; -import com.datastax.astra.client.collections.CollectionDefinition; +import com.datastax.astra.client.collections.definition.CollectionDefinition; import com.datastax.astra.client.core.commands.Command; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.vector.SimilarityMetric; import com.datastax.astra.internal.serdes.collections.DocumentSerializer; import org.junit.jupiter.api.Test; diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/unit/FiltersTest.java b/astra-db-java/src/test/java/com/datastax/astra/test/unit/FiltersTest.java index 56463daa..0f9ba6ff 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/unit/FiltersTest.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/unit/FiltersTest.java @@ -1,6 +1,6 @@ package com.datastax.astra.test.unit; -import com.datastax.astra.client.collections.options.CollectionFindOptions; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Filters; import com.datastax.astra.client.core.query.Projection; diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/unit/QuickStartTablesLocal.java b/astra-db-java/src/test/java/com/datastax/astra/test/unit/QuickStartTablesLocal.java index e8252268..35608641 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/unit/QuickStartTablesLocal.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/unit/QuickStartTablesLocal.java @@ -4,12 +4,12 @@ import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.databases.Database; import com.datastax.astra.client.tables.Table; -import com.datastax.astra.client.tables.TableDefinition; -import com.datastax.astra.client.tables.results.TableInsertOneResult; +import com.datastax.astra.client.tables.definition.TableDefinition; +import com.datastax.astra.client.tables.commands.results.TableInsertOneResult; import com.datastax.astra.client.tables.mapping.Column; import com.datastax.astra.client.tables.mapping.EntityTable; import com.datastax.astra.client.tables.mapping.PartitionBy; -import com.datastax.astra.client.tables.row.Row; +import com.datastax.astra.client.tables.definition.rows.Row; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -18,9 +18,9 @@ import java.util.Optional; import static com.datastax.astra.client.core.options.DataAPIClientOptions.DEFAULT_KEYSPACE; -import static com.datastax.astra.client.tables.columns.ColumnTypes.INT; -import static com.datastax.astra.client.tables.columns.ColumnTypes.TEXT; -import static com.datastax.astra.client.tables.ddl.CreateTableOptions.IF_NOT_EXISTS; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.INT; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.TEXT; +import static com.datastax.astra.client.tables.commands.options.CreateTableOptions.IF_NOT_EXISTS; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; public class QuickStartTablesLocal { diff --git a/astra-db-java/src/test/java/com/datastax/astra/test/unit/WorkWithOptions.java b/astra-db-java/src/test/java/com/datastax/astra/test/unit/WorkWithOptions.java index 0c424b86..96e00a5a 100644 --- a/astra-db-java/src/test/java/com/datastax/astra/test/unit/WorkWithOptions.java +++ b/astra-db-java/src/test/java/com/datastax/astra/test/unit/WorkWithOptions.java @@ -7,16 +7,16 @@ import com.datastax.astra.client.core.options.DataAPIClientOptions; import com.datastax.astra.client.core.query.Sort; import com.datastax.astra.client.databases.Database; -import com.datastax.astra.client.databases.options.CreateCollectionOptions; -import com.datastax.astra.client.databases.options.DropCollectionOptions; -import com.datastax.astra.client.databases.options.ListCollectionOptions; +import com.datastax.astra.client.collections.commands.options.CreateCollectionOptions; +import com.datastax.astra.client.collections.commands.options.DropCollectionOptions; +import com.datastax.astra.client.collections.commands.options.ListCollectionOptions; import com.datastax.astra.client.tables.Table; -import com.datastax.astra.client.tables.TableDefinition; +import com.datastax.astra.client.tables.definition.TableDefinition; import com.datastax.astra.client.tables.TableOptions; -import com.datastax.astra.client.tables.columns.ColumnDefinitionVector; -import com.datastax.astra.client.tables.columns.ColumnTypes; -import com.datastax.astra.client.tables.ddl.CreateTableOptions; -import com.datastax.astra.client.tables.row.Row; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinitionVector; +import com.datastax.astra.client.tables.definition.columns.ColumnTypes; +import com.datastax.astra.client.tables.commands.options.CreateTableOptions; +import com.datastax.astra.client.tables.definition.rows.Row; import org.junit.jupiter.api.Test; import java.time.Duration; diff --git a/examples/src/main/java/QuickStartHCD.java b/examples/src/main/java/QuickStartHCD.java index afd583de..e76eff90 100644 --- a/examples/src/main/java/QuickStartHCD.java +++ b/examples/src/main/java/QuickStartHCD.java @@ -1,10 +1,10 @@ import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.admin.DataAPIDatabaseAdmin; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefinition; +import com.datastax.astra.client.collections.definition.CollectionDefinition; import com.datastax.astra.client.collections.CollectionOptions; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionFindOneOptions; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOneOptions; import com.datastax.astra.client.core.auth.EmbeddingAPIKeyHeaderProvider; import com.datastax.astra.client.core.auth.UsernamePasswordTokenProvider; import com.datastax.astra.client.core.options.DataAPIClientOptions; @@ -12,7 +12,7 @@ import com.datastax.astra.client.core.vector.SimilarityMetric; import com.datastax.astra.client.databases.Database; import com.datastax.astra.client.databases.DatabaseOptions; -import com.datastax.astra.client.databases.options.CreateCollectionOptions; +import com.datastax.astra.client.collections.commands.options.CreateCollectionOptions; import com.datastax.astra.client.keyspaces.KeyspaceOptions; import java.util.Optional; diff --git a/examples/src/main/java/QuickStartLocal.java b/examples/src/main/java/QuickStartLocal.java index 5663d685..7895d80a 100644 --- a/examples/src/main/java/QuickStartLocal.java +++ b/examples/src/main/java/QuickStartLocal.java @@ -1,8 +1,8 @@ import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionFindOptions; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; import com.datastax.astra.client.core.auth.UsernamePasswordTokenProvider; import com.datastax.astra.client.core.options.DataAPIClientOptions; import com.datastax.astra.client.core.paging.FindIterable; diff --git a/examples/src/main/java/QuickStartTraining.java b/examples/src/main/java/QuickStartTraining.java index 190c8dca..cc20662c 100644 --- a/examples/src/main/java/QuickStartTraining.java +++ b/examples/src/main/java/QuickStartTraining.java @@ -1,8 +1,8 @@ import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionFindOptions; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; import com.datastax.astra.client.core.options.DataAPIClientOptions; import com.datastax.astra.client.core.paging.FindIterable; import com.datastax.astra.client.core.query.Filter; diff --git a/examples/src/main/java/Quickstart.java b/examples/src/main/java/Quickstart.java index 7fb0fdac..a3273497 100644 --- a/examples/src/main/java/Quickstart.java +++ b/examples/src/main/java/Quickstart.java @@ -1,12 +1,11 @@ import com.datastax.astra.client.collections.Collection; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.core.options.DataAPIClientOptions; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.databases.Database; import com.datastax.astra.client.core.paging.FindIterable; -import com.datastax.astra.client.collections.options.CollectionFindOptions; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; import static com.datastax.astra.client.core.query.Sort.vector; import static com.datastax.astra.client.core.vector.SimilarityMetric.COSINE; diff --git a/examples/src/main/java/com/datastax/astra/client/DataApiClientDemo.java b/examples/src/main/java/com/datastax/astra/client/DataApiClientDemo.java index 5ff0cb2f..aa361a4c 100644 --- a/examples/src/main/java/com/datastax/astra/client/DataApiClientDemo.java +++ b/examples/src/main/java/com/datastax/astra/client/DataApiClientDemo.java @@ -2,8 +2,8 @@ import com.datastax.astra.client.admin.AstraDBAdmin; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.databases.Database; import com.datastax.astra.client.databases.DatabaseOptions; diff --git a/examples/src/main/java/com/datastax/astra/client/GettingStarted.java b/examples/src/main/java/com/datastax/astra/client/GettingStarted.java index 03c8719f..431b3608 100644 --- a/examples/src/main/java/com/datastax/astra/client/GettingStarted.java +++ b/examples/src/main/java/com/datastax/astra/client/GettingStarted.java @@ -1,9 +1,9 @@ package com.datastax.astra.client; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionFindOptions; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; import com.datastax.astra.client.core.paging.FindIterable; import com.datastax.astra.client.core.query.Sort; import com.datastax.astra.client.databases.Database; diff --git a/examples/src/main/java/com/datastax/astra/client/admin/GetDatabaseInformation.java b/examples/src/main/java/com/datastax/astra/client/admin/GetDatabaseInformation.java index e7517e41..47766f61 100644 --- a/examples/src/main/java/com/datastax/astra/client/admin/GetDatabaseInformation.java +++ b/examples/src/main/java/com/datastax/astra/client/admin/GetDatabaseInformation.java @@ -1,7 +1,7 @@ package com.datastax.astra.client.admin; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.databases.DatabaseInfo; +import com.datastax.astra.client.databases.definition.DatabaseInfo; import java.util.UUID; diff --git a/examples/src/main/java/com/datastax/astra/client/admin/ListDatabases.java b/examples/src/main/java/com/datastax/astra/client/admin/ListDatabases.java index 5fdfc96b..c69672ca 100644 --- a/examples/src/main/java/com/datastax/astra/client/admin/ListDatabases.java +++ b/examples/src/main/java/com/datastax/astra/client/admin/ListDatabases.java @@ -1,7 +1,7 @@ package com.datastax.astra.client.admin; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.databases.DatabaseInfo; +import com.datastax.astra.client.databases.definition.DatabaseInfo; public class ListDatabases { public static void main(String[] args) { diff --git a/examples/src/main/java/com/datastax/astra/client/collections/ClearCollection.java b/examples/src/main/java/com/datastax/astra/client/collections/ClearCollection.java index 9a502a0a..fb139c6a 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/ClearCollection.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/ClearCollection.java @@ -1,7 +1,7 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.databases.Database; public class ClearCollection { diff --git a/examples/src/main/java/com/datastax/astra/client/collections/CountDocuments.java b/examples/src/main/java/com/datastax/astra/client/collections/CountDocuments.java index 345ac7c2..a6a62a61 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/CountDocuments.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/CountDocuments.java @@ -1,7 +1,7 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.collections.exceptions.TooManyDocumentsToCountException; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Filters; diff --git a/examples/src/main/java/com/datastax/astra/client/collections/DeleteAll.java b/examples/src/main/java/com/datastax/astra/client/collections/DeleteAll.java index 153452ad..56d548ec 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/DeleteAll.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/DeleteAll.java @@ -1,8 +1,8 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.results.CollectionDeleteResult; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.commands.results.CollectionDeleteResult; +import com.datastax.astra.client.collections.definition.documents.Document; public class DeleteAll { public static void main(String[] args) { diff --git a/examples/src/main/java/com/datastax/astra/client/collections/DeleteMany.java b/examples/src/main/java/com/datastax/astra/client/collections/DeleteMany.java index 6362470b..c08f6383 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/DeleteMany.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/DeleteMany.java @@ -1,8 +1,8 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.results.CollectionDeleteResult; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.commands.results.CollectionDeleteResult; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Filters; diff --git a/examples/src/main/java/com/datastax/astra/client/collections/DeleteOne.java b/examples/src/main/java/com/datastax/astra/client/collections/DeleteOne.java index 42bb9652..685a1279 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/DeleteOne.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/DeleteOne.java @@ -1,9 +1,9 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionDeleteOneOptions; -import com.datastax.astra.client.collections.results.CollectionDeleteResult; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionDeleteOneOptions; +import com.datastax.astra.client.collections.commands.results.CollectionDeleteResult; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Filters; import com.datastax.astra.client.core.query.Sort; diff --git a/examples/src/main/java/com/datastax/astra/client/collections/Distinct.java b/examples/src/main/java/com/datastax/astra/client/collections/Distinct.java index a49129f8..4c1dde34 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/Distinct.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/Distinct.java @@ -2,7 +2,7 @@ import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.core.paging.CollectionDistinctIterable; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Filters; diff --git a/examples/src/main/java/com/datastax/astra/client/collections/EstimateCountDocuments.java b/examples/src/main/java/com/datastax/astra/client/collections/EstimateCountDocuments.java index af1d11a6..dc96d357 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/EstimateCountDocuments.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/EstimateCountDocuments.java @@ -1,8 +1,8 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.options.EstimatedCountDocumentsOptions; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.commands.options.EstimatedCountDocumentsOptions; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.internal.command.LoggingCommandObserver; public class EstimateCountDocuments { diff --git a/examples/src/main/java/com/datastax/astra/client/collections/Find.java b/examples/src/main/java/com/datastax/astra/client/collections/Find.java index 1911eed6..9774b7ba 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/Find.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/Find.java @@ -2,8 +2,8 @@ import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.core.paging.FindIterable; -import com.datastax.astra.client.collections.options.CollectionFindOptions; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Filters; import com.datastax.astra.client.core.query.Sort; diff --git a/examples/src/main/java/com/datastax/astra/client/collections/FindOne.java b/examples/src/main/java/com/datastax/astra/client/collections/FindOne.java index 05f69f8f..ad5679ea 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/FindOne.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/FindOne.java @@ -1,8 +1,8 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionFindOneOptions; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOneOptions; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Sort; diff --git a/examples/src/main/java/com/datastax/astra/client/collections/FindOneAndDelete.java b/examples/src/main/java/com/datastax/astra/client/collections/FindOneAndDelete.java index d5bb2a81..ecccc85b 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/FindOneAndDelete.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/FindOneAndDelete.java @@ -1,7 +1,7 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Filters; diff --git a/examples/src/main/java/com/datastax/astra/client/collections/FindOneAndReplace.java b/examples/src/main/java/com/datastax/astra/client/collections/FindOneAndReplace.java index 95c66f7b..225a1051 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/FindOneAndReplace.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/FindOneAndReplace.java @@ -1,9 +1,8 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.documents.ReturnDocument; -import com.datastax.astra.client.collections.options.CollectionFindOneAndReplaceOptions; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOneAndReplaceOptions; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Filters; import com.datastax.astra.client.core.query.Projection; @@ -11,7 +10,7 @@ import java.util.Optional; -import static com.datastax.astra.client.collections.documents.ReturnDocument.AFTER; +import static com.datastax.astra.client.collections.commands.ReturnDocument.AFTER; import static com.datastax.astra.client.core.query.Filters.lt; public class FindOneAndReplace { diff --git a/examples/src/main/java/com/datastax/astra/client/collections/FindOneAndUpdate.java b/examples/src/main/java/com/datastax/astra/client/collections/FindOneAndUpdate.java index 8f23bb24..764c9910 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/FindOneAndUpdate.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/FindOneAndUpdate.java @@ -1,9 +1,9 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.documents.Update; -import com.datastax.astra.client.collections.documents.Updates; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.Update; +import com.datastax.astra.client.collections.commands.Updates; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Filters; diff --git a/examples/src/main/java/com/datastax/astra/client/collections/InsertMany.java b/examples/src/main/java/com/datastax/astra/client/collections/InsertMany.java index 4c132334..08d08bcf 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/InsertMany.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/InsertMany.java @@ -1,9 +1,9 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionInsertManyOptions; -import com.datastax.astra.client.collections.results.CollectionInsertManyResult; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionInsertManyOptions; +import com.datastax.astra.client.collections.commands.results.CollectionInsertManyResult; import com.datastax.astra.client.core.options.TimeoutOptions; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; diff --git a/examples/src/main/java/com/datastax/astra/client/collections/InsertOne.java b/examples/src/main/java/com/datastax/astra/client/collections/InsertOne.java index be8621ee..a6611852 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/InsertOne.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/InsertOne.java @@ -1,8 +1,8 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.results.CollectionInsertOneResult; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.commands.results.CollectionInsertOneResult; +import com.datastax.astra.client.collections.definition.documents.Document; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/examples/src/main/java/com/datastax/astra/client/collections/ReplaceOne.java b/examples/src/main/java/com/datastax/astra/client/collections/ReplaceOne.java index c767cf4a..a3877c2d 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/ReplaceOne.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/ReplaceOne.java @@ -1,9 +1,9 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.options.CollectionReplaceOneOptions; -import com.datastax.astra.client.collections.results.CollectionUpdateResult; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionReplaceOneOptions; +import com.datastax.astra.client.collections.commands.results.CollectionUpdateResult; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Filters; diff --git a/examples/src/main/java/com/datastax/astra/client/collections/UpdateMany.java b/examples/src/main/java/com/datastax/astra/client/collections/UpdateMany.java index 2ec677e5..57b2dab7 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/UpdateMany.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/UpdateMany.java @@ -1,13 +1,13 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Filters; -import com.datastax.astra.client.collections.documents.Update; -import com.datastax.astra.client.collections.options.CollectionUpdateManyOptions; -import com.datastax.astra.client.collections.results.CollectionUpdateResult; -import com.datastax.astra.client.collections.documents.Updates; +import com.datastax.astra.client.collections.commands.Update; +import com.datastax.astra.client.collections.commands.options.CollectionUpdateManyOptions; +import com.datastax.astra.client.collections.commands.results.CollectionUpdateResult; +import com.datastax.astra.client.collections.commands.Updates; import static com.datastax.astra.client.core.query.Filters.lt; diff --git a/examples/src/main/java/com/datastax/astra/client/collections/UpdateOne.java b/examples/src/main/java/com/datastax/astra/client/collections/UpdateOne.java index 2cf78995..1ab29b73 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/UpdateOne.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/UpdateOne.java @@ -1,10 +1,10 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.results.CollectionUpdateResult; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.documents.Update; -import com.datastax.astra.client.collections.documents.Updates; +import com.datastax.astra.client.collections.commands.results.CollectionUpdateResult; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.Update; +import com.datastax.astra.client.collections.commands.Updates; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Filters; diff --git a/examples/src/main/java/com/datastax/astra/client/collections/WorkingWithDates.java b/examples/src/main/java/com/datastax/astra/client/collections/WorkingWithDates.java index ebf9aab6..e32dddc0 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/WorkingWithDates.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/WorkingWithDates.java @@ -2,15 +2,15 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionFindOneOptions; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOneOptions; import com.datastax.astra.client.core.query.Projection; import java.time.Instant; import java.util.Calendar; import java.util.Date; -import static com.datastax.astra.client.collections.documents.Updates.set; +import static com.datastax.astra.client.collections.commands.Updates.set; import static com.datastax.astra.client.core.query.Filters.eq; import static com.datastax.astra.client.core.query.Filters.lt; diff --git a/examples/src/main/java/com/datastax/astra/client/collections/WorkingWithDocumentIds.java b/examples/src/main/java/com/datastax/astra/client/collections/WorkingWithDocumentIds.java index d1dfdc96..a602a221 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/WorkingWithDocumentIds.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/WorkingWithDocumentIds.java @@ -1,9 +1,7 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.core.query.Filter; -import com.datastax.astra.client.core.query.Filters; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.types.ObjectId; import com.datastax.astra.client.core.types.UUIDv6; import com.datastax.astra.client.core.types.UUIDv7; @@ -11,7 +9,7 @@ import java.time.Instant; import java.util.UUID; -import static com.datastax.astra.client.collections.documents.Updates.set; +import static com.datastax.astra.client.collections.commands.Updates.set; import static com.datastax.astra.client.core.query.Filters.eq; public class WorkingWithDocumentIds { diff --git a/examples/src/main/java/com/datastax/astra/client/collections/WorkingWithSorts.java b/examples/src/main/java/com/datastax/astra/client/collections/WorkingWithSorts.java index 65510071..a7f7ee29 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/WorkingWithSorts.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/WorkingWithSorts.java @@ -1,8 +1,8 @@ package com.datastax.astra.client.collections; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionFindOptions; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; import com.datastax.astra.client.core.query.Sort; public class WorkingWithSorts { diff --git a/examples/src/main/java/com/datastax/astra/client/collections/vectorize/QuickStartOpenAI.java b/examples/src/main/java/com/datastax/astra/client/collections/vectorize/QuickStartOpenAI.java index c2479ffc..e101d949 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/vectorize/QuickStartOpenAI.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/vectorize/QuickStartOpenAI.java @@ -2,17 +2,16 @@ import com.datastax.astra.client.collections.Collection; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.options.DataAPIClientOptions; import com.datastax.astra.client.core.query.Sort; import com.datastax.astra.client.databases.Database; -import com.datastax.astra.client.collections.options.CollectionFindOneOptions; +import com.datastax.astra.client.collections.commands.options.CollectionFindOneOptions; import com.datastax.astra.client.core.vector.SimilarityMetric; import com.datastax.astra.client.core.auth.UsernamePasswordTokenProvider; import com.datastax.astra.client.databases.DatabaseOptions; -import com.datastax.astra.internal.command.LoggingCommandObserver; import lombok.extern.slf4j.Slf4j; import java.util.Optional; diff --git a/examples/src/main/java/com/datastax/astra/client/collections/vectorize/WorkingWithVectorize.java b/examples/src/main/java/com/datastax/astra/client/collections/vectorize/WorkingWithVectorize.java index d512d32d..95ddf369 100644 --- a/examples/src/main/java/com/datastax/astra/client/collections/vectorize/WorkingWithVectorize.java +++ b/examples/src/main/java/com/datastax/astra/client/collections/vectorize/WorkingWithVectorize.java @@ -2,8 +2,8 @@ import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionFindOptions; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; import com.datastax.astra.client.core.auth.EmbeddingAPIKeyHeaderProvider; import com.datastax.astra.client.core.query.Sort; diff --git a/examples/src/main/java/com/datastax/astra/client/database/CreateCollection.java b/examples/src/main/java/com/datastax/astra/client/database/CreateCollection.java index ef54f32b..61b969b1 100644 --- a/examples/src/main/java/com/datastax/astra/client/database/CreateCollection.java +++ b/examples/src/main/java/com/datastax/astra/client/database/CreateCollection.java @@ -2,9 +2,9 @@ import com.datastax.astra.client.DataAPIClients; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefaultIdTypes; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.CollectionDefaultIdTypes; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.vector.SimilarityMetric; import com.datastax.astra.client.databases.Database; diff --git a/examples/src/main/java/com/datastax/astra/client/database/CreateTable.java b/examples/src/main/java/com/datastax/astra/client/database/CreateTable.java index e45a0a4a..289812f1 100644 --- a/examples/src/main/java/com/datastax/astra/client/database/CreateTable.java +++ b/examples/src/main/java/com/datastax/astra/client/database/CreateTable.java @@ -5,12 +5,12 @@ import com.datastax.astra.client.databases.Database; import com.datastax.astra.client.tables.Game; import com.datastax.astra.client.tables.Table; -import com.datastax.astra.client.tables.TableDefinition; +import com.datastax.astra.client.tables.definition.TableDefinition; import com.datastax.astra.client.tables.TableOptions; -import com.datastax.astra.client.tables.columns.ColumnDefinitionVector; -import com.datastax.astra.client.tables.columns.ColumnTypes; -import com.datastax.astra.client.tables.ddl.CreateTableOptions; -import com.datastax.astra.client.tables.row.Row; +import com.datastax.astra.client.tables.definition.columns.ColumnDefinitionVector; +import com.datastax.astra.client.tables.definition.columns.ColumnTypes; +import com.datastax.astra.client.tables.commands.options.CreateTableOptions; +import com.datastax.astra.client.tables.definition.rows.Row; import static com.datastax.astra.client.core.query.Sort.ascending; import static com.datastax.astra.client.core.vector.SimilarityMetric.COSINE; diff --git a/examples/src/main/java/com/datastax/astra/client/database/CreateTableOM.java b/examples/src/main/java/com/datastax/astra/client/database/CreateTableOM.java index 1e4cf5f9..c5a186ac 100644 --- a/examples/src/main/java/com/datastax/astra/client/database/CreateTableOM.java +++ b/examples/src/main/java/com/datastax/astra/client/database/CreateTableOM.java @@ -6,7 +6,7 @@ import com.datastax.astra.client.tables.GameWithAnnotationAllHints; import com.datastax.astra.client.tables.Table; -import static com.datastax.astra.client.tables.ddl.DropTableOptions.IF_EXISTS; +import static com.datastax.astra.client.tables.commands.options.DropTableOptions.IF_EXISTS; public class CreateTableOM { diff --git a/examples/src/main/java/com/datastax/astra/client/database/DropCollection.java b/examples/src/main/java/com/datastax/astra/client/database/DropCollection.java index 83ad487a..0031dc6c 100644 --- a/examples/src/main/java/com/datastax/astra/client/database/DropCollection.java +++ b/examples/src/main/java/com/datastax/astra/client/database/DropCollection.java @@ -2,7 +2,7 @@ import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.databases.Database; -import com.datastax.astra.client.databases.options.DropCollectionOptions; +import com.datastax.astra.client.collections.commands.options.DropCollectionOptions; public class DropCollection { public static void main(String[] args) { diff --git a/examples/src/main/java/com/datastax/astra/client/database/FindCollection.java b/examples/src/main/java/com/datastax/astra/client/database/FindCollection.java index 008ce772..32151259 100644 --- a/examples/src/main/java/com/datastax/astra/client/database/FindCollection.java +++ b/examples/src/main/java/com/datastax/astra/client/database/FindCollection.java @@ -2,8 +2,8 @@ import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.databases.Database; public class FindCollection { diff --git a/examples/src/main/java/com/datastax/astra/client/database/ListCollections.java b/examples/src/main/java/com/datastax/astra/client/database/ListCollections.java index 67d3d0f9..53c1481a 100644 --- a/examples/src/main/java/com/datastax/astra/client/database/ListCollections.java +++ b/examples/src/main/java/com/datastax/astra/client/database/ListCollections.java @@ -1,11 +1,10 @@ package com.datastax.astra.client.database; import com.datastax.astra.client.DataAPIClient; -import com.datastax.astra.client.collections.CollectionDescriptor; +import com.datastax.astra.client.collections.definition.CollectionDescriptor; import com.datastax.astra.client.databases.Database; import java.util.List; -import java.util.stream.Stream; public class ListCollections { public static void main(String[] args) { diff --git a/examples/src/main/java/com/datastax/astra/client/tables/GameWithAnnotation.java b/examples/src/main/java/com/datastax/astra/client/tables/GameWithAnnotation.java index b948b919..9b74bee2 100644 --- a/examples/src/main/java/com/datastax/astra/client/tables/GameWithAnnotation.java +++ b/examples/src/main/java/com/datastax/astra/client/tables/GameWithAnnotation.java @@ -15,13 +15,6 @@ import java.util.Set; import java.util.UUID; -import static com.datastax.astra.client.tables.columns.ColumnTypes.INT; -import static com.datastax.astra.client.tables.columns.ColumnTypes.SET; -import static com.datastax.astra.client.tables.columns.ColumnTypes.TEXT; -import static com.datastax.astra.client.tables.columns.ColumnTypes.TIMESTAMP; -import static com.datastax.astra.client.tables.columns.ColumnTypes.UUID; -import static com.datastax.astra.client.tables.columns.ColumnTypes.VECTOR; - @Data @EntityTable("game_ann2") @NoArgsConstructor diff --git a/examples/src/main/java/com/datastax/astra/client/tables/GameWithAnnotationAllHints.java b/examples/src/main/java/com/datastax/astra/client/tables/GameWithAnnotationAllHints.java index 74025946..20df1089 100644 --- a/examples/src/main/java/com/datastax/astra/client/tables/GameWithAnnotationAllHints.java +++ b/examples/src/main/java/com/datastax/astra/client/tables/GameWithAnnotationAllHints.java @@ -14,12 +14,12 @@ import java.time.Instant; import java.util.Set; -import static com.datastax.astra.client.tables.columns.ColumnTypes.INT; -import static com.datastax.astra.client.tables.columns.ColumnTypes.SET; -import static com.datastax.astra.client.tables.columns.ColumnTypes.TEXT; -import static com.datastax.astra.client.tables.columns.ColumnTypes.TIMESTAMP; -import static com.datastax.astra.client.tables.columns.ColumnTypes.UUID; -import static com.datastax.astra.client.tables.columns.ColumnTypes.VECTOR; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.INT; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.SET; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.TEXT; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.TIMESTAMP; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.UUID; +import static com.datastax.astra.client.tables.definition.columns.ColumnTypes.VECTOR; @Data @EntityTable("game_ann1") diff --git a/examples/src/main/java/com/datastax/astra/genai/QuickStartAzureOpenAI.java b/examples/src/main/java/com/datastax/astra/genai/QuickStartAzureOpenAI.java index 58ceda71..4bff2901 100644 --- a/examples/src/main/java/com/datastax/astra/genai/QuickStartAzureOpenAI.java +++ b/examples/src/main/java/com/datastax/astra/genai/QuickStartAzureOpenAI.java @@ -2,12 +2,12 @@ import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefaultIdTypes; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.results.CollectionInsertManyResult; +import com.datastax.astra.client.collections.definition.CollectionDefaultIdTypes; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.commands.results.CollectionInsertManyResult; import com.datastax.astra.client.core.paging.FindIterable; -import com.datastax.astra.client.collections.options.CollectionFindOptions; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.query.Sort; import com.datastax.astra.client.core.vector.SimilarityMetric; import com.datastax.astra.client.databases.Database; diff --git a/examples/src/main/java/com/datastax/astra/genai/QuickStartHuggingFaceDedicated.java b/examples/src/main/java/com/datastax/astra/genai/QuickStartHuggingFaceDedicated.java index 1ede084e..852dd0cd 100644 --- a/examples/src/main/java/com/datastax/astra/genai/QuickStartHuggingFaceDedicated.java +++ b/examples/src/main/java/com/datastax/astra/genai/QuickStartHuggingFaceDedicated.java @@ -2,11 +2,11 @@ import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefaultIdTypes; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionFindOptions; -import com.datastax.astra.client.collections.results.CollectionInsertManyResult; +import com.datastax.astra.client.collections.definition.CollectionDefaultIdTypes; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; +import com.datastax.astra.client.collections.commands.results.CollectionInsertManyResult; import com.datastax.astra.client.core.paging.FindIterable; import com.datastax.astra.client.core.query.Sort; import com.datastax.astra.client.core.vector.SimilarityMetric; diff --git a/examples/src/main/java/com/datastax/astra/genai/QuickStartNvidia.java b/examples/src/main/java/com/datastax/astra/genai/QuickStartNvidia.java index e6e7c9ed..af20651b 100644 --- a/examples/src/main/java/com/datastax/astra/genai/QuickStartNvidia.java +++ b/examples/src/main/java/com/datastax/astra/genai/QuickStartNvidia.java @@ -2,11 +2,11 @@ import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefaultIdTypes; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionFindOptions; -import com.datastax.astra.client.collections.results.CollectionInsertManyResult; +import com.datastax.astra.client.collections.definition.CollectionDefaultIdTypes; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; +import com.datastax.astra.client.collections.commands.results.CollectionInsertManyResult; import com.datastax.astra.client.core.paging.FindIterable; import com.datastax.astra.client.core.query.Sort; import com.datastax.astra.client.core.vector.SimilarityMetric; diff --git a/examples/src/main/java/com/datastax/astra/genai/QuickStartOpenAI.java b/examples/src/main/java/com/datastax/astra/genai/QuickStartOpenAI.java index eb813381..8ca56624 100644 --- a/examples/src/main/java/com/datastax/astra/genai/QuickStartOpenAI.java +++ b/examples/src/main/java/com/datastax/astra/genai/QuickStartOpenAI.java @@ -2,11 +2,11 @@ import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefaultIdTypes; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionFindOptions; -import com.datastax.astra.client.collections.results.CollectionInsertManyResult; +import com.datastax.astra.client.collections.definition.CollectionDefaultIdTypes; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; +import com.datastax.astra.client.collections.commands.results.CollectionInsertManyResult; import com.datastax.astra.client.core.paging.FindIterable; import com.datastax.astra.client.core.query.Sort; import com.datastax.astra.client.core.vector.SimilarityMetric; diff --git a/langchain4j-astradb/src/main/java/com/datastax/astra/langchain4j/store/embedding/AstraDbEmbeddingStore.java b/langchain4j-astradb/src/main/java/com/datastax/astra/langchain4j/store/embedding/AstraDbEmbeddingStore.java index c5f653a9..fe7606c7 100644 --- a/langchain4j-astradb/src/main/java/com/datastax/astra/langchain4j/store/embedding/AstraDbEmbeddingStore.java +++ b/langchain4j-astradb/src/main/java/com/datastax/astra/langchain4j/store/embedding/AstraDbEmbeddingStore.java @@ -21,10 +21,10 @@ */ import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.documents.Document; -import com.datastax.astra.client.collections.options.CollectionFindOneAndReplaceOptions; -import com.datastax.astra.client.collections.options.CollectionFindOptions; -import com.datastax.astra.client.collections.options.CollectionInsertManyOptions; +import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.collections.commands.options.CollectionFindOneAndReplaceOptions; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; +import com.datastax.astra.client.collections.commands.options.CollectionInsertManyOptions; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.types.DataAPIKeywords; import dev.langchain4j.data.document.Metadata; diff --git a/langchain4j-astradb/src/main/java/com/datastax/astra/langchain4j/store/memory/AstraDbChatMemoryStore.java b/langchain4j-astradb/src/main/java/com/datastax/astra/langchain4j/store/memory/AstraDbChatMemoryStore.java index ccdad58d..7ec65623 100644 --- a/langchain4j-astradb/src/main/java/com/datastax/astra/langchain4j/store/memory/AstraDbChatMemoryStore.java +++ b/langchain4j-astradb/src/main/java/com/datastax/astra/langchain4j/store/memory/AstraDbChatMemoryStore.java @@ -21,8 +21,8 @@ */ import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.options.CollectionFindOptions; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; import com.datastax.astra.client.databases.Database; import dev.langchain4j.data.message.ChatMessage; import dev.langchain4j.store.memory.chat.ChatMemoryStore; diff --git a/langchain4j-astradb/src/test/java/dev/langchain4j/store/embedding/astradb/GettingStartedGuideVectorizedTestIT.java b/langchain4j-astradb/src/test/java/dev/langchain4j/store/embedding/astradb/GettingStartedGuideVectorizedTestIT.java index 32485808..89bd1bf5 100644 --- a/langchain4j-astradb/src/test/java/dev/langchain4j/store/embedding/astradb/GettingStartedGuideVectorizedTestIT.java +++ b/langchain4j-astradb/src/test/java/dev/langchain4j/store/embedding/astradb/GettingStartedGuideVectorizedTestIT.java @@ -1,6 +1,6 @@ package dev.langchain4j.store.embedding.astradb; -import com.datastax.astra.client.collections.CollectionDefinition; +import com.datastax.astra.client.collections.definition.CollectionDefinition; import com.datastax.astra.client.databases.Database; import com.datastax.astra.client.core.vector.SimilarityMetric; import com.datastax.astra.langchain4j.Assistant; diff --git a/tools/src/main/java/com/datastax/astra/tool/loader/csv/CsvLoader.java b/tools/src/main/java/com/datastax/astra/tool/loader/csv/CsvLoader.java index 8dfcd821..eb66518e 100644 --- a/tools/src/main/java/com/datastax/astra/tool/loader/csv/CsvLoader.java +++ b/tools/src/main/java/com/datastax/astra/tool/loader/csv/CsvLoader.java @@ -1,7 +1,7 @@ package com.datastax.astra.tool.loader.csv; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.opencsv.CSVReader; import lombok.extern.slf4j.Slf4j; diff --git a/tools/src/main/java/com/datastax/astra/tool/loader/csv/CsvRowMapper.java b/tools/src/main/java/com/datastax/astra/tool/loader/csv/CsvRowMapper.java index 1cea5cd8..d5d8aa75 100644 --- a/tools/src/main/java/com/datastax/astra/tool/loader/csv/CsvRowMapper.java +++ b/tools/src/main/java/com/datastax/astra/tool/loader/csv/CsvRowMapper.java @@ -1,6 +1,6 @@ package com.datastax.astra.tool.loader.csv; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; /** * Settings for the CSV Loader diff --git a/tools/src/test/java/com/datastax/astra/samples/CsvCustomerSupport.java b/tools/src/test/java/com/datastax/astra/samples/CsvCustomerSupport.java index 7e1346fd..0ceacfaa 100644 --- a/tools/src/test/java/com/datastax/astra/samples/CsvCustomerSupport.java +++ b/tools/src/test/java/com/datastax/astra/samples/CsvCustomerSupport.java @@ -2,7 +2,7 @@ import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.collections.Collection; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.databases.Database; import com.datastax.astra.tool.loader.csv.CsvLoader; import com.datastax.astra.tool.loader.csv.CsvRowMapper; diff --git a/tools/src/test/java/com/datastax/astra/samples/CsvLoaderAnoop.java b/tools/src/test/java/com/datastax/astra/samples/CsvLoaderAnoop.java index 638e04a1..e879f227 100644 --- a/tools/src/test/java/com/datastax/astra/samples/CsvLoaderAnoop.java +++ b/tools/src/test/java/com/datastax/astra/samples/CsvLoaderAnoop.java @@ -3,7 +3,7 @@ import com.datastax.astra.client.collections.Collection; import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.databases.Database; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.internal.serdes.collections.DocumentSerializer; import com.datastax.astra.tool.loader.csv.CsvLoader; import com.datastax.astra.tool.loader.csv.CsvLoaderSettings; diff --git a/tools/src/test/java/com/datastax/astra/samples/CsvLoaderListing.java b/tools/src/test/java/com/datastax/astra/samples/CsvLoaderListing.java index ad3c1297..77cc64a0 100644 --- a/tools/src/test/java/com/datastax/astra/samples/CsvLoaderListing.java +++ b/tools/src/test/java/com/datastax/astra/samples/CsvLoaderListing.java @@ -3,7 +3,7 @@ import com.datastax.astra.client.collections.Collection; import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.databases.Database; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.internal.command.LoggingCommandObserver; import com.datastax.astra.tool.loader.csv.CsvLoader; import com.datastax.astra.tool.loader.csv.CsvRowMapper; diff --git a/tools/src/test/java/com/datastax/astra/samples/CsvLoaderWiki.java b/tools/src/test/java/com/datastax/astra/samples/CsvLoaderWiki.java index 91e875bf..270552e5 100644 --- a/tools/src/test/java/com/datastax/astra/samples/CsvLoaderWiki.java +++ b/tools/src/test/java/com/datastax/astra/samples/CsvLoaderWiki.java @@ -3,8 +3,8 @@ import com.datastax.astra.client.collections.Collection; import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.databases.Database; -import com.datastax.astra.client.collections.CollectionDefinition; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.CollectionDefinition; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.client.core.vector.SimilarityMetric; import com.datastax.astra.tool.loader.csv.CsvLoader; import com.datastax.astra.tool.loader.csv.CsvRowMapper; diff --git a/tools/src/test/java/com/datastax/astra/samples/CsvPhilosophers.java b/tools/src/test/java/com/datastax/astra/samples/CsvPhilosophers.java index 24b3b0b3..775876ca 100644 --- a/tools/src/test/java/com/datastax/astra/samples/CsvPhilosophers.java +++ b/tools/src/test/java/com/datastax/astra/samples/CsvPhilosophers.java @@ -3,7 +3,7 @@ import com.datastax.astra.client.collections.Collection; import com.datastax.astra.client.DataAPIClient; import com.datastax.astra.client.databases.Database; -import com.datastax.astra.client.collections.documents.Document; +import com.datastax.astra.client.collections.definition.documents.Document; import com.datastax.astra.tool.loader.csv.CsvLoader; import com.datastax.astra.tool.loader.csv.CsvRowMapper; import lombok.extern.slf4j.Slf4j; From de15941c0c56f4891a5186814663f2e3b8842752 Mon Sep 17 00:00:00 2001 From: Cedrick LunvenDate: Sat, 30 Nov 2024 17:18:09 +0100 Subject: [PATCH 03/69] less warnings --- .../definition/documents/Document.java | 80 ++++++++++++++--- .../client/core/paging/CollectionCursor.java | 32 ++++++- .../client/exceptions/ClientErrorCodes.java | 87 ++++++++++++++++++- .../commands/options/AlterTableOptions.java | 38 ++++++-- .../columns/ColumnDefinitionList.java | 30 ++++++- .../columns/ColumnDefinitionSet.java | 27 ++++++ .../serdes/tables/ByteArrayDeserializer.java | 38 +++++++- .../serdes/tables/ByteArraySerializer.java | 45 ++++++++++ 8 files changed, 351 insertions(+), 26 deletions(-) diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/Document.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/Document.java index 937f3e4b..183a5b60 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/Document.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/Document.java @@ -554,52 +554,104 @@ public String toJson() { return toString(); } - /** {@inheritDoc} */ + /** + * Evaluation if a key is present in the document + * @param key + * key to evaluate + * @return + * true if the key is present + */ public boolean containsKey(final Object key) { return documentMap.containsKey(key); } - /** {@inheritDoc} */ + + /** + * Retrieves the value associated with the specified key from the document. + * + * @param key the key whose associated value is to be returned + * @return the value associated with the specified key, or {@code null} if the key is not found + */ public Object get(final Object key) { return documentMap.get(key); } - /** {@inheritDoc} */ + /** + * Associates the specified value with the specified key in the document. + * If the key already has a value, the old value is replaced. + * + * @param key the key with which the specified value is to be associated + * @param value the value to be associated with the specified key + * @return the previous value associated with the key, or {@code null} if there was no mapping for the key + */ public Object put(final String key, final Object value) { return documentMap.put(key, value); } - /** {@inheritDoc} */ + /** + * Removes the mapping for a key from the document if it is present. + * + * @param key the key whose mapping is to be removed + * @return the value that was associated with the key, or {@code null} if the key was not mapped + */ public Object remove(final Object key) { return documentMap.remove(key); } - /** {@inheritDoc} */ + /** + * Copies all mappings from the specified map to this document. + * Existing mappings will be replaced with mappings from the provided map. + * + * @param map the map containing mappings to be copied to this document + */ public void putAll(final Map extends String, ?> map) { documentMap.putAll(map); } - /** {@inheritDoc} */ + /** + * Copies all mappings from the specified {@code Document} to this document. + * Existing mappings will be replaced with mappings from the provided document. + * + * @param doc the document whose mappings are to be copied to this document + */ public void putAll(Document doc) { documentMap.putAll(doc.getDocumentMap()); } - /** {@inheritDoc} */ + /** + * Removes all mappings from this document. + * The document will be empty after this operation. + */ public void clear() { documentMap.clear(); } - /** {@inheritDoc} */ + /** + * Returns a collection view of the values contained in this document. + * + * @return a collection view of the values contained in this document + */ public Collection Table getTable(String tableName, TableOptions tableOptions, Class rowClass) { + public Table getTable(String tableName, Class rowClass, TableOptions tableOptions) { hasLength(tableName, "tableName"); notNull(rowClass, "rowClass"); return new Table<>(this, tableName, tableOptions, rowClass); @@ -1073,9 +1083,7 @@ public Table getTable(String tableName) { *
Table getTable(String tableName, Class rowClass) { - return getTable(tableName, new TableOptions( - options.getToken(), - options.getDataAPIClientOptions()), rowClass); + return getTable(tableName, rowClass, defaultTableOptions()); } /** @@ -1095,7 +1103,7 @@ public Table getTable(String tableName, Class rowClass) { * getTable(String tableName, TableOptions tableOptions) { - return getTable(tableName, tableOptions, Row.class); + return getTable(tableName, Row.class, tableOptions); } /** @@ -1187,7 +1195,7 @@ public
Table createTable(String tableName, createTable.append("options", creatTableOptions); } runCommand(createTable, tableOptions); - return getTable(tableName, tableOptions, rowClass); + return getTable(tableName, rowClass, tableOptions); } /** @@ -1200,8 +1208,7 @@ public Table createTable(String tableName, * @return the created table object */ public Table createTable(String tableName, TableDefinition tableDefinition, Class rowClass) { - return createTable(tableName, tableDefinition, rowClass, new CreateTableOptions(), - new TableOptions(this.options.getToken(), this.options.getDataAPIClientOptions())); + return createTable(tableName, tableDefinition, rowClass, new CreateTableOptions(), defaultTableOptions()); } /** @@ -1226,8 +1233,7 @@ public Table createTable(String tableName, TableDefinition tableDefinition) * @return the created table object */ public
Table createTable(String tableName, TableDefinition tableDefinition, Class rowClass, CreateTableOptions createTableOptions) { - return createTable(tableName, tableDefinition, rowClass, createTableOptions, - new TableOptions(this.options.getToken(), this.options.getDataAPIClientOptions())); + return createTable(tableName, tableDefinition, rowClass, createTableOptions, defaultTableOptions()); } /** @@ -1262,7 +1268,7 @@ public Table createTable(Class rowClass) { * @return the created table object */ public Table createTable(Class rowClass, CreateTableOptions createTableOptions) { - return createTable(getTableName(rowClass), rowClass, createTableOptions, new TableOptions()); + return createTable(getTableName(rowClass), rowClass, createTableOptions, defaultTableOptions()); } /** @@ -1287,7 +1293,7 @@ public Table createTable(String tableName, createTable.append("options", createTableOptions); } runCommand(createTable, createTableOptions); - return getTable(tableName, tableOptions, rowClass); + return getTable(tableName, rowClass, tableOptions); } /** @@ -1309,6 +1315,18 @@ public String getTableName(Class rowClass) { return ann.value(); } + /** + * Initialize a TableOption from the current database options. + * + * @return + * default table options + */ + private TableOptions defaultTableOptions() { + return new TableOptions(this.options.getToken(), + this.options.getDataAPIClientOptions()) + .keyspace(getKeyspace()); + } + // ------------------------------------- // ---- Drop Table ---- // ------------------------------------- diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/Table.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/Table.java index 8fd64064..60200a59 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/Table.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/Table.java @@ -166,6 +166,9 @@ public Table(Database db, String tableName, TableOptions tableOptions, Class this.database = db; this.rowClass = rowClass; this.options.serializer(DEFAULT_TABLE_SERIALIZER); + if (tableOptions.getKeyspace() != null) { + this.database.useKeyspace(tableOptions.getKeyspace()); + } } // ---------------------------- diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableOptions.java index e86fc844..3613010f 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableOptions.java @@ -35,6 +35,14 @@ @Accessors(fluent = true, chain = true) public class TableOptions extends BaseOptions { + /** + * The keyspace to use for the database. + */ + String keyspace = DataAPIClientOptions.DEFAULT_KEYSPACE; + + /** + * Default constructor nor overriding token nor options + */ public TableOptions() { this(null, null); } @@ -51,4 +59,13 @@ public TableOptions(String token, DataAPIClientOptions options) { super(token, TABLE_ADMIN, DEFAULT_TABLE_SERIALIZER, options); } + /** + * Gets keyspace + * + * @return value of keyspace + */ + public String getKeyspace() { + return keyspace; + } + } diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TableDefinition.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TableDefinition.java index 9fbe4372..44af1bb8 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TableDefinition.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/TableDefinition.java @@ -29,69 +29,186 @@ import com.datastax.astra.client.tables.definition.columns.ColumnTypes; import com.datastax.astra.internal.utils.Assert; import lombok.Data; -import lombok.NoArgsConstructor; import java.util.Arrays; import java.util.LinkedHashMap; -@Data @NoArgsConstructor +@Data public class TableDefinition { private LinkedHashMap columns = new LinkedHashMap<>(); private TablePrimaryKey primaryKey = new TablePrimaryKey(); + /** + * Default constructor. + */ + public TableDefinition() { + } + + /** + * Adds a column to the table definition. + * + * @param columnName the name of the column + * @param columnDefinition the definition of the column + * @return the updated {@link TableDefinition} instance + * @throws IllegalArgumentException if {@code columnName} is null + */ public TableDefinition addColumn(String columnName, ColumnDefinition columnDefinition) { Assert.notNull(columnName, "Column columnName"); columns.put(columnName, columnDefinition); return this; } + /** + * Adds a column to the table with a specific type. + * + * @param name the name of the column + * @param type the type of the column + * @return the updated {@link TableDefinition} instance + */ public TableDefinition addColumn(String name, ColumnTypes type) { columns.put(name, new ColumnDefinition(type)); return this; } + /** + * Adds a text column to the table. + * + * @param name the name of the column + * @return the updated {@link TableDefinition} instance + */ public TableDefinition addColumnText(String name) { return addColumn(name, ColumnTypes.TEXT); } + /** + * Adds an ascii column to the table. + * + * @param name the name of the column + * @return the updated {@link TableDefinition} instance + */ + public TableDefinition addColumnAscii(String name) { + return addColumn(name, ColumnTypes.ASCII); + } + + /** + * Adds an integer column to the table. + * + * @param name the name of the column + * @return the updated {@link TableDefinition} instance + */ public TableDefinition addColumnInt(String name) { return addColumn(name, ColumnTypes.INT); } + + /** + * Adds a timestamp column to the table. + * + * @param name the name of the column + * @return the updated {@link TableDefinition} instance + */ public TableDefinition addColumnTimestamp(String name) { return addColumn(name, ColumnTypes.TIMESTAMP); } + /** + * Adds a boolean column to the table. + * + * @param name the name of the column + * @return the updated {@link TableDefinition} instance + */ public TableDefinition addColumnBoolean(String name) { return addColumn(name, ColumnTypes.BOOLEAN); } + /** + * Adds a boolean column to the table. + * + * @param name the name of the column + * @return the updated {@link TableDefinition} instance + */ + public TableDefinition addColumnBigInt(String name) { + return addColumn(name, ColumnTypes.BIGINT); + } + + /** + * Adds a blob column to the table. + * + * @param name the name of the column + * @return the updated {@link TableDefinition} instance + */ + public TableDefinition addColumnBlob(String name) { + return addColumn(name, ColumnTypes.BLOB); + } + + /** + * Adds a list column to the table. + * + * @param name the name of the column + * @param valueType the type of the elements in the list + * @return the updated {@link TableDefinition} instance + */ public TableDefinition addColumnList(String name, ColumnTypes valueType) { columns.put(name, new ColumnDefinitionList(valueType)); return this; } + /** + * Adds a set column to the table. + * + * @param name the name of the column + * @param valueType the type of the elements in the set + * @return the updated {@link TableDefinition} instance + */ public TableDefinition addColumnSet(String name, ColumnTypes valueType) { columns.put(name, new ColumnDefinitionSet(valueType)); return this; } - public TableDefinition addColumnMap(String name, ColumnTypes keyType, ColumnTypes valueType) { + /** + * Adds a map column to the table. + * + * @param name the name of the column + * @param keyType the type of the keys in the map + * @param valueType the type of the values in the map + * @return the updated {@link TableDefinition} instance + */ + public TableDefinition addColumnMap(String name, ColumnTypes keyType, ColumnTypes valueType) { columns.put(name, new ColumnDefinitionMap(keyType, valueType)); return this; } + /** + * Adds a vector column to the table. + * + * @param name the name of the column + * @param colDefVector the definition of the vector column + * @return the updated {@link TableDefinition} instance + */ public TableDefinition addColumnVector(String name, ColumnDefinitionVector colDefVector) { - columns.put(name,colDefVector); + columns.put(name, colDefVector); return this; } + /** + * Adds a partition key to the table's primary key. + * + * @param partitionKey the name of the partition key column + * @return the updated {@link TableDefinition} instance + */ public TableDefinition addPartitionBy(String partitionKey) { primaryKey.getPartitionBy().add(partitionKey); return this; } + /** + * Adds a sort column to the table's primary key. + * + * @param column the sort column to add + * @return the updated {@link TableDefinition} instance + * @throws IllegalArgumentException if {@code column} is null or invalid + */ public TableDefinition addPartitionSort(Sort column) { Assert.notNull(column, "Column"); Assert.notNull(column.getOrder(), "column order"); @@ -103,6 +220,13 @@ public TableDefinition addPartitionSort(Sort column) { return this; } + /** + * Sets the partition keys for the table. + * + * @param partitionKeys the partition keys + * @return the updated {@link TableDefinition} instance + * @throws IllegalArgumentException if any of the partition keys are not valid columns + */ public TableDefinition partitionKey(String... partitionKeys) { if (partitionKeys != null) { primaryKey.getPartitionBy().clear(); @@ -116,24 +240,22 @@ public TableDefinition partitionKey(String... partitionKeys) { return this; } - public TableDefinition partitionSort(Sort... clusteringColumns) { - return clusteringColumns(clusteringColumns); - } - - public TableDefinition addClusteringColumn(Sort clusteringColumn) { - return addPartitionSort(clusteringColumn); - } - + /** + * Sets the clustering columns for the table. + * + * @param clusteringColumns the clustering columns + * @return the updated {@link TableDefinition} instance + * @throws IllegalArgumentException if any of the clustering columns are not valid columns + */ public TableDefinition clusteringColumns(Sort... clusteringColumns) { if (clusteringColumns != null) { primaryKey.setPartitionSort(new LinkedHashMap<>()); Arrays.asList(clusteringColumns).forEach(cc -> { - if (!columns.containsKey(cc.getField())) { - throw new IllegalArgumentException("Cannot create primaryKey: Column '" + cc.getField() + "' has not been found in table"); - } - primaryKey.getPartitionSort().put(cc.getField(), cc.getOrder().getCode()); - } - ); + if (!columns.containsKey(cc.getField())) { + throw new IllegalArgumentException("Cannot create primaryKey: Column '" + cc.getField() + "' has not been found in table"); + } + primaryKey.getPartitionSort().put(cc.getField(), cc.getOrder().getCode()); + }); } return this; } diff --git a/examples/src/main/java/com/datastax/astra/client/database/CreateTable.java b/examples/src/main/java/com/datastax/astra/client/database/CreateTable.java index 289812f1..e813534a 100644 --- a/examples/src/main/java/com/datastax/astra/client/database/CreateTable.java +++ b/examples/src/main/java/com/datastax/astra/client/database/CreateTable.java @@ -18,44 +18,45 @@ public class CreateTable { - public static void main(String[] args) { - - // Database astraDb = new DataAPIClient(token).getDatabase(endpoint); - Database db = DataAPIClients.localDbWithDefaultKeyspace(); - - // Definition of the table in fluent style - TableDefinition tableDefinition = new TableDefinition() - .addColumnText("match_id") - .addColumnInt("round") - .addColumnVector("m_vector", new ColumnDefinitionVector().dimension(3).metric(COSINE)) - .addColumn("score", ColumnTypes.INT) - .addColumn("when", ColumnTypes.TIMESTAMP) - .addColumn("winner", ColumnTypes.TEXT) - .addColumnSet("fighters", ColumnTypes.UUID) - .addPartitionBy("match_id") - .addPartitionSort(ascending("round")); - - // Minimal creation - Table table1 = db.createTable("game1", tableDefinition); - - // Minimal Creation with a Bean - Table
table2 = db.createTable("game2", tableDefinition, Game.class); - - // -- options -- - - // One can add options to setup the creation with finer grained: - CreateTableOptions createTableOptions = new CreateTableOptions() - .ifNotExists(true) - .timeout(ofSeconds(5)); - Table table3 = db.createTable("game3", tableDefinition, createTableOptions); - - // One can can tuned the table object returned by the function - TableOptions tableOptions = new TableOptions() - .embeddingAuthProvider(new EmbeddingAPIKeyHeaderProvider("api-key")) - .timeout(ofSeconds(5)); - - // Change the Type of objects in use instead of default Row - Table
table4 = db.createTable("game4", tableDefinition,Row.class, - createTableOptions, tableOptions); - } + public static void main(String[] args) { + // Database astraDb = new DataAPIClient(token).getDatabase(endpoint); + Database db = DataAPIClients.localDbWithDefaultKeyspace(); + + // Definition of the table in fluent style + TableDefinition tableDefinition = new TableDefinition() + .addColumnText("match_id") + .addColumnInt("round") + .addColumnVector("m_vector", + new ColumnDefinitionVector().dimension(3).metric(COSINE)) + .addColumn("score", ColumnTypes.INT) + .addColumn("when", ColumnTypes.TIMESTAMP) + .addColumn("winner", ColumnTypes.TEXT) + .addColumnSet("fighters", ColumnTypes.UUID) + .addPartitionBy("match_id") + .addPartitionSort(ascending("round")); + + // Minimal creation + Table
table1 = + db.createTable("game1", tableDefinition); + + // Minimal Creation with a Bean + Table
table2 = + db.createTable("game2", tableDefinition, Game.class); + + // One can add options to setup the creation with finer grained: + CreateTableOptions createTableOptions = new CreateTableOptions() + .ifNotExists(true) + .timeout(ofSeconds(5)); + Table table3 = + db.createTable("game3", tableDefinition, createTableOptions); + + // One can can tuned the table object returned by the function + TableOptions tableOptions = new TableOptions() + .embeddingAuthProvider(new EmbeddingAPIKeyHeaderProvider("api-key")) + .timeout(ofSeconds(5)); + + // Change the Type of objects in use instead of default Row + Table
table4 = db.createTable("game4", tableDefinition,Row.class, + createTableOptions, tableOptions); + } } diff --git a/examples/src/main/java/com/datastax/astra/client/database/GetTable.java b/examples/src/main/java/com/datastax/astra/client/database/GetTable.java new file mode 100644 index 00000000..222d7667 --- /dev/null +++ b/examples/src/main/java/com/datastax/astra/client/database/GetTable.java @@ -0,0 +1,45 @@ +package com.datastax.astra.client.database; + +import com.datastax.astra.client.DataAPIClients; +import com.datastax.astra.client.core.auth.EmbeddingAPIKeyHeaderProvider; +import com.datastax.astra.client.core.options.DataAPIClientOptions; +import com.datastax.astra.client.databases.Database; +import com.datastax.astra.client.tables.Game; +import com.datastax.astra.client.tables.Table; +import com.datastax.astra.client.tables.TableOptions; +import com.datastax.astra.client.tables.definition.rows.Row; + +import java.util.Map; + +public class GetTable { + + public static void main(String[] args) { + // Database astraDb = + // new DataAPIClient(token).getDatabase(endpoint); + Database db = + DataAPIClients.localDbWithDefaultKeyspace(); + + // Default + Table
myTable1 = + db.getTable("games"); + + // Options + TableOptions options = new TableOptions() + .keyspace("the_other_keyspace") + .embeddingApiKey("secret-012abc...") + .databaseAdditionalHeaders(Map.of("Feature-Flag-tables", "true")); + Table
myTable3 = db.getTable("games", options); + + // Typing + Table
myTable2 = + db.getTable("games", Game.class); + + // Typing + Options + Table myTable4 = + db.getTable("games", Game.class, new TableOptions()); + + + +} + +} From 521379a77db5b227a374c47b9357d201032f64e7 Mon Sep 17 00:00:00 2001 From: Cedrick Lunven Date: Mon, 2 Dec 2024 17:31:12 +0100 Subject: [PATCH 05/69] javadoc --- .../astra/client/admin/AdminOptions.java | 2 +- .../client/admin/AstraDBDatabaseAdmin.java | 4 +- .../client/admin/DataAPIDatabaseAdmin.java | 6 +-- .../astra/client/admin/DatabaseAdmin.java | 4 +- .../astra/client/collections/Collection.java | 16 +++--- .../client/collections/CollectionOptions.java | 2 +- .../commands/cursor}/CollectionCursor.java | 4 +- .../cursor}/CollectionDistinctIterable.java | 3 +- .../commands/cursor}/DistinctIterator.java | 3 +- .../commands/cursor/package-info.java | 23 ++++++++ .../options/CollectionDeleteManyOptions.java | 2 +- .../options/CollectionDeleteOneOptions.java | 2 +- .../CollectionFindOneAndDeleteOptions.java | 2 +- .../CollectionFindOneAndReplaceOptions.java | 2 +- .../CollectionFindOneAndUpdateOptions.java | 2 +- .../options/CollectionFindOneOptions.java | 2 +- .../options/CollectionFindOptions.java | 2 +- .../options/CollectionInsertManyOptions.java | 2 +- .../options/CollectionInsertOneOptions.java | 2 +- .../options/CollectionReplaceOneOptions.java | 2 +- .../options/CollectionUpdateManyOptions.java | 2 +- .../options/CountDocumentsOptions.java | 2 +- .../options/CreateCollectionOptions.java | 2 +- .../options/DropCollectionOptions.java | 2 +- .../EstimatedCountDocumentsOptions.java | 2 +- .../options/ListCollectionOptions.java | 2 +- .../commands/options/UpdateOneOptions.java | 2 +- .../commands/options/package-info.java | 23 ++++++++ .../collections/commands/package-info.java | 23 ++++++++ .../commands/results/package-info.java | 23 ++++++++ .../definition/documents/Document.java | 4 +- .../definition/documents/package-info.java | 23 ++++++++ .../definition/documents}/types/ObjectId.java | 2 +- .../definition/documents}/types/UUIDv6.java | 2 +- .../definition/documents}/types/UUIDv7.java | 2 +- .../documents/types/package-info.java | 23 ++++++++ .../collections/definition/package-info.java | 23 ++++++++ .../collections/exceptions/package-info.java | 23 ++++++++ .../client/collections/package-info.java | 23 ++++++++ .../core/{types => }/DataAPIKeywords.java | 2 +- .../astra/client/core/commands/Command.java | 2 +- .../client/core/commands/CommandRunner.java | 1 + .../client/core/commands/package-info.java | 23 ++++++++ .../astra/client/core/http/package-info.java | 24 +++++++++ .../{commands => options}/BaseOptions.java | 5 +- .../client/core/options/package-info.java | 24 +++++++++ .../astra/client/core/package-info.java | 2 +- .../client/core/paging/package-info.java | 24 +++++++++ .../client/core/query/FilterBuilder.java | 2 +- .../astra/client/core/query/Sort.java | 2 +- .../astra/client/core/query/package-info.java | 24 +++++++++ .../client/core/vector/package-info.java | 23 ++++++++ .../client/core/vectorize/package-info.java | 23 ++++++++ .../client/databases/DatabaseOptions.java | 2 +- .../commands/CreateKeyspaceOptions.java | 24 +++++++++ .../databases/commands/package-info.java | 23 ++++++++ .../results/FindEmbeddingProvidersResult.java | 2 +- .../commands/results/package-info.java | 23 ++++++++ .../keyspaces/KeyspaceInformation.java | 2 +- .../keyspaces/KeyspaceOptions.java | 6 +-- .../definition/keyspaces/package-info.java | 23 ++++++++ .../databases/definition/package-info.java | 23 ++++++++ .../astra/client/databases/package-info.java | 24 +++++++++ .../devops/exceptions/package-info.java | 23 ++++++++ .../astra/client/devops/package-info.java | 23 ++++++++ .../datastax/astra/client/tables/Table.java | 52 +++++++++++++++---- .../astra/client/tables/TableOptions.java | 2 +- .../tables/commands/AlterTableAddColumns.java | 17 ------ .../commands/AlterTableAddVectorize.java | 17 ------ .../commands/AlterTableDropColumns.java | 17 ------ .../commands/AlterTableDropVectorize.java | 17 ------ .../commands/options/AlterTableOptions.java | 2 +- .../commands/options/CountRowsOptions.java | 2 +- .../commands/options/CreateIndexOptions.java | 2 +- .../commands/options/CreateTableOptions.java | 2 +- .../options/CreateVectorIndexOptions.java | 2 +- .../options/DropTableIndexOptions.java | 2 +- .../commands/options/DropTableOptions.java | 2 +- .../options/EstimatedCountRowsOptions.java | 2 +- .../commands/options/ListIndexesOptions.java | 2 +- .../commands/options/ListTablesOptions.java | 2 +- .../options/TableDeleteManyOptions.java | 2 +- .../options/TableDeleteOneOptions.java | 2 +- .../commands/options/TableFindOneOptions.java | 2 +- .../commands/options/TableFindOptions.java | 2 +- .../options/TableInsertManyOptions.java | 2 +- .../options/TableInsertOneOptions.java | 2 +- .../options/TableUpdateOneOptions.java | 2 +- .../tables/commands/options/package-info.java | 23 ++++++++ .../client/tables/commands/package-info.java | 23 ++++++++ .../tables/commands/results/package-info.java | 23 ++++++++ .../paging => tables/cursor}/TableCursor.java | 4 +- .../client/tables/cursor/package-info.java | 23 ++++++++ .../definition/columns/package-info.java | 23 ++++++++ .../definition/indexes/package-info.java | 23 ++++++++ .../tables/definition/package-info.java | 23 ++++++++ .../client/tables/definition/rows/Row.java | 2 +- .../tables/definition/rows/package-info.java | 23 ++++++++ .../tables/exceptions/package-info.java | 23 ++++++++ .../client/tables/mapping/package-info.java | 23 ++++++++ .../astra/client/tables/package-info.java | 24 +++++++++ .../command/AbstractCommandRunner.java | 2 +- .../internal/command/ExecutionInfos.java | 2 +- .../internal/reflection/package-info.java | 23 ++++++++ .../collections/DocumentSerializer.java | 6 +-- .../collections/ObjectIdDeserializer.java | 2 +- .../collections/ObjectIdSerializer.java | 2 +- .../serdes/collections/UUID6Serializer.java | 2 +- .../serdes/collections/UUID7Serializer.java | 2 +- .../serdes/collections/package-info.java | 24 +++++++++ .../astra/internal/serdes/package-info.java | 23 ++++++++ .../internal/serdes/shared/package-info.java | 24 +++++++++ .../internal/serdes/tables/package-info.java | 23 ++++++++ .../astra/internal/utils/OptionsUtils.java | 2 +- astra-db-java/src/main/java/overview.html | 4 +- .../integration/AbstractCollectionITTest.java | 6 +-- .../test/integration/AbstractDataAPITest.java | 2 +- .../AbstractDatabaseAdminITTest.java | 2 +- .../integration/AbstractDatabaseTest.java | 7 ++- .../integration/AbstractVectorizeITTest.java | 2 +- .../AstraDevVectorizeAwsBedRockITTest.java | 4 +- ...evVectorizeHuggingFaceDedicatedITTest.java | 2 +- .../local/LocalDatabaseAdminITTest.java | 2 +- .../integration/local/LocalTableITTest.java | 4 +- .../datastax/astra/test/unit/FiltersTest.java | 4 +- examples/src/main/java/QuickStartHCD.java | 2 +- .../astra/client/collections/Distinct.java | 2 +- .../collections/WorkingWithDocumentIds.java | 6 +-- .../astra/client/database/AlterTable.java | 29 +++++++++++ .../FindEmbeddingProviders.java | 2 +- .../embedding/AstraDbEmbeddingStore.java | 4 +- 131 files changed, 1118 insertions(+), 193 deletions(-) rename astra-db-java/src/main/java/com/datastax/astra/client/{core/paging => collections/commands/cursor}/CollectionCursor.java (98%) rename astra-db-java/src/main/java/com/datastax/astra/client/{core/paging => collections/commands/cursor}/CollectionDistinctIterable.java (97%) rename astra-db-java/src/main/java/com/datastax/astra/client/{core/paging => collections/commands/cursor}/DistinctIterator.java (97%) create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/cursor/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/results/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/package-info.java rename astra-db-java/src/main/java/com/datastax/astra/client/{core => collections/definition/documents}/types/ObjectId.java (99%) rename astra-db-java/src/main/java/com/datastax/astra/client/{core => collections/definition/documents}/types/UUIDv6.java (95%) rename astra-db-java/src/main/java/com/datastax/astra/client/{core => collections/definition/documents}/types/UUIDv7.java (95%) create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/types/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/collections/exceptions/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/collections/package-info.java rename astra-db-java/src/main/java/com/datastax/astra/client/core/{types => }/DataAPIKeywords.java (97%) create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/core/commands/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/core/http/package-info.java rename astra-db-java/src/main/java/com/datastax/astra/client/core/{commands => options}/BaseOptions.java (98%) create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/core/options/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/core/paging/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/core/query/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/core/vector/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/core/vectorize/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/databases/commands/CreateKeyspaceOptions.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/databases/commands/package-info.java rename astra-db-java/src/main/java/com/datastax/astra/client/{core => databases/commands}/results/FindEmbeddingProvidersResult.java (94%) create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/databases/commands/results/package-info.java rename astra-db-java/src/main/java/com/datastax/astra/client/{ => databases/definition}/keyspaces/KeyspaceInformation.java (97%) rename astra-db-java/src/main/java/com/datastax/astra/client/{ => databases/definition}/keyspaces/KeyspaceOptions.java (86%) create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/keyspaces/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/databases/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/devops/exceptions/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/devops/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/results/package-info.java rename astra-db-java/src/main/java/com/datastax/astra/client/{core/paging => tables/cursor}/TableCursor.java (98%) create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/tables/cursor/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/rows/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/tables/exceptions/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/client/tables/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/internal/reflection/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/internal/serdes/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/internal/serdes/shared/package-info.java create mode 100644 astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/package-info.java create mode 100644 examples/src/main/java/com/datastax/astra/client/database/AlterTable.java diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/admin/AdminOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/admin/AdminOptions.java index ae314038..f5e781cd 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/admin/AdminOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/admin/AdminOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.commands.CommandType; import com.datastax.astra.client.core.options.DataAPIClientOptions; import com.datastax.astra.internal.serdes.DataAPISerializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/admin/AstraDBDatabaseAdmin.java b/astra-db-java/src/main/java/com/datastax/astra/client/admin/AstraDBDatabaseAdmin.java index 856544a4..8d2e9365 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/admin/AstraDBDatabaseAdmin.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/admin/AstraDBDatabaseAdmin.java @@ -21,9 +21,9 @@ */ import com.datastax.astra.client.DataAPIDestination; -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.options.DataAPIClientOptions; -import com.datastax.astra.client.core.results.FindEmbeddingProvidersResult; +import com.datastax.astra.client.databases.commands.results.FindEmbeddingProvidersResult; import com.datastax.astra.client.databases.DatabaseOptions; import com.datastax.astra.internal.api.AstraApiEndpoint; import com.datastax.astra.internal.command.AbstractCommandRunner; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/admin/DataAPIDatabaseAdmin.java b/astra-db-java/src/main/java/com/datastax/astra/client/admin/DataAPIDatabaseAdmin.java index c7b33c60..8d96fee8 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/admin/DataAPIDatabaseAdmin.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/admin/DataAPIDatabaseAdmin.java @@ -20,13 +20,13 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.commands.Command; import com.datastax.astra.client.core.commands.CommandType; -import com.datastax.astra.client.core.results.FindEmbeddingProvidersResult; +import com.datastax.astra.client.databases.commands.results.FindEmbeddingProvidersResult; import com.datastax.astra.client.core.vectorize.EmbeddingProvider; import com.datastax.astra.client.databases.Database; -import com.datastax.astra.client.keyspaces.KeyspaceOptions; +import com.datastax.astra.client.databases.definition.keyspaces.KeyspaceOptions; import com.datastax.astra.internal.api.DataAPIResponse; import com.datastax.astra.internal.command.AbstractCommandRunner; import com.datastax.astra.internal.serdes.DataAPISerializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/admin/DatabaseAdmin.java b/astra-db-java/src/main/java/com/datastax/astra/client/admin/DatabaseAdmin.java index b0affcc7..55d50106 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/admin/DatabaseAdmin.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/admin/DatabaseAdmin.java @@ -20,11 +20,11 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.databases.Database; import com.datastax.astra.client.core.commands.CommandRunner; import com.datastax.astra.client.core.vectorize.EmbeddingProvider; -import com.datastax.astra.client.core.results.FindEmbeddingProvidersResult; +import com.datastax.astra.client.databases.commands.results.FindEmbeddingProvidersResult; import com.datastax.astra.internal.utils.Assert; import java.util.Set; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/Collection.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/Collection.java index 8c7a03e4..539b70a6 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/Collection.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/Collection.java @@ -46,18 +46,18 @@ import com.datastax.astra.client.collections.commands.results.CollectionInsertOneResult; import com.datastax.astra.client.collections.commands.results.CollectionUpdateResult; import com.datastax.astra.client.collections.commands.results.FindOneAndReplaceResult; -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.commands.Command; -import com.datastax.astra.client.core.paging.CollectionCursor; -import com.datastax.astra.client.core.paging.CollectionDistinctIterable; +import com.datastax.astra.client.collections.commands.cursor.CollectionCursor; +import com.datastax.astra.client.collections.commands.cursor.CollectionDistinctIterable; import com.datastax.astra.client.core.paging.FindIterable; import com.datastax.astra.client.core.paging.Page; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Filters; -import com.datastax.astra.client.core.types.DataAPIKeywords; -import com.datastax.astra.client.core.types.ObjectId; -import com.datastax.astra.client.core.types.UUIDv6; -import com.datastax.astra.client.core.types.UUIDv7; +import com.datastax.astra.client.core.DataAPIKeywords; +import com.datastax.astra.client.collections.definition.documents.types.ObjectId; +import com.datastax.astra.client.collections.definition.documents.types.UUIDv6; +import com.datastax.astra.client.collections.definition.documents.types.UUIDv7; import com.datastax.astra.client.databases.Database; import com.datastax.astra.client.exceptions.DataAPIException; import com.datastax.astra.client.exceptions.UnexpectedDataAPIResponseException; @@ -90,7 +90,7 @@ import static com.datastax.astra.client.core.options.DataAPIClientOptions.MAX_CHUNK_SIZE; import static com.datastax.astra.client.core.options.DataAPIClientOptions.MAX_COUNT; -import static com.datastax.astra.client.core.types.DataAPIKeywords.SORT_VECTOR; +import static com.datastax.astra.client.core.DataAPIKeywords.SORT_VECTOR; import static com.datastax.astra.client.exceptions.DataAPIException.ERROR_CODE_INTERRUPTED; import static com.datastax.astra.client.exceptions.DataAPIException.ERROR_CODE_TIMEOUT; import static com.datastax.astra.internal.utils.AnsiUtils.cyan; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/CollectionOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/CollectionOptions.java index 7be067d2..a5c0fbe5 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/CollectionOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/CollectionOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.options.DataAPIClientOptions; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/paging/CollectionCursor.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/cursor/CollectionCursor.java similarity index 98% rename from astra-db-java/src/main/java/com/datastax/astra/client/core/paging/CollectionCursor.java rename to astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/cursor/CollectionCursor.java index 336266d2..491dcc81 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/core/paging/CollectionCursor.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/cursor/CollectionCursor.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.core.paging; +package com.datastax.astra.client.collections.commands.cursor; /*- * #%L @@ -22,6 +22,8 @@ import com.datastax.astra.client.collections.Collection; import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; +import com.datastax.astra.client.core.paging.CursorState; +import com.datastax.astra.client.core.paging.Page; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Projection; import com.datastax.astra.client.core.query.Sort; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/paging/CollectionDistinctIterable.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/cursor/CollectionDistinctIterable.java similarity index 97% rename from astra-db-java/src/main/java/com/datastax/astra/client/core/paging/CollectionDistinctIterable.java rename to astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/cursor/CollectionDistinctIterable.java index c927df36..e5bdb8ce 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/core/paging/CollectionDistinctIterable.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/cursor/CollectionDistinctIterable.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.core.paging; +package com.datastax.astra.client.collections.commands.cursor; /*- * #%L @@ -22,6 +22,7 @@ import com.datastax.astra.client.collections.Collection; import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; +import com.datastax.astra.client.core.paging.PageableIterable; import com.datastax.astra.client.core.query.Filter; import lombok.NonNull; import lombok.extern.slf4j.Slf4j; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/paging/DistinctIterator.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/cursor/DistinctIterator.java similarity index 97% rename from astra-db-java/src/main/java/com/datastax/astra/client/core/paging/DistinctIterator.java rename to astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/cursor/DistinctIterator.java index 5db8fe5f..84426152 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/core/paging/DistinctIterator.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/cursor/DistinctIterator.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.core.paging; +package com.datastax.astra.client.collections.commands.cursor; /*- * #%L @@ -21,6 +21,7 @@ */ import com.datastax.astra.client.collections.definition.documents.Document; +import com.datastax.astra.client.core.paging.PageableIterable; import com.datastax.astra.internal.serdes.collections.DocumentSerializer; import lombok.extern.slf4j.Slf4j; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/cursor/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/cursor/package-info.java new file mode 100644 index 00000000..c9a6d3b0 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/cursor/package-info.java @@ -0,0 +1,23 @@ +/** + * Objects representing cursors working with find collections commands. + */ +package com.datastax.astra.client.collections.commands.cursor; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionDeleteManyOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionDeleteManyOptions.java index 445e3853..be0213cf 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionDeleteManyOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionDeleteManyOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionDeleteOneOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionDeleteOneOptions.java index 683ea8bf..b4715a1b 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionDeleteOneOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionDeleteOneOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.query.Sort; import lombok.NoArgsConstructor; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneAndDeleteOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneAndDeleteOptions.java index fb912b3d..4dfc3e87 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneAndDeleteOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneAndDeleteOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.query.Projection; import com.datastax.astra.client.core.query.Sort; import lombok.NoArgsConstructor; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneAndReplaceOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneAndReplaceOptions.java index c62dd912..e2feb0bb 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneAndReplaceOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneAndReplaceOptions.java @@ -21,7 +21,7 @@ */ import com.datastax.astra.client.collections.commands.ReturnDocument; -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.query.Projection; import com.datastax.astra.client.core.query.Sort; import lombok.Getter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneAndUpdateOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneAndUpdateOptions.java index 5ae98607..f1c35f57 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneAndUpdateOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneAndUpdateOptions.java @@ -21,7 +21,7 @@ */ import com.datastax.astra.client.collections.commands.ReturnDocument; -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.query.Projection; import com.datastax.astra.client.core.query.Sort; import lombok.Getter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneOptions.java index ee863b74..d63d74f8 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOneOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.query.Projection; import com.datastax.astra.client.core.query.Sort; import lombok.Getter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOptions.java index 0ecda0f6..538281de 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionFindOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.query.Projection; import com.datastax.astra.client.core.query.Sort; import lombok.Getter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionInsertManyOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionInsertManyOptions.java index 0e742159..412685ad 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionInsertManyOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionInsertManyOptions.java @@ -21,7 +21,7 @@ */ import com.datastax.astra.client.core.options.DataAPIClientOptions; -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.options.TimeoutOptions; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionInsertOneOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionInsertOneOptions.java index fbd95ca7..7aa1292b 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionInsertOneOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionInsertOneOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionReplaceOneOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionReplaceOneOptions.java index 664c4d3e..2d1edee6 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionReplaceOneOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionReplaceOneOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionUpdateManyOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionUpdateManyOptions.java index 322703f1..baceae03 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionUpdateManyOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CollectionUpdateManyOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CountDocumentsOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CountDocumentsOptions.java index 95b3684f..aeeb7646 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CountDocumentsOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CountDocumentsOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CreateCollectionOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CreateCollectionOptions.java index efb7de91..f2b762dc 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CreateCollectionOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/CreateCollectionOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import static com.datastax.astra.client.core.commands.CommandType.COLLECTION_ADMIN; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/DropCollectionOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/DropCollectionOptions.java index 0f790f28..a89cde12 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/DropCollectionOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/DropCollectionOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import static com.datastax.astra.client.collections.Collection.DEFAULT_COLLECTION_SERIALIZER; import static com.datastax.astra.client.core.commands.CommandType.COLLECTION_ADMIN; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/EstimatedCountDocumentsOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/EstimatedCountDocumentsOptions.java index 927527c4..bd3b0dbb 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/EstimatedCountDocumentsOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/EstimatedCountDocumentsOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/ListCollectionOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/ListCollectionOptions.java index ce961966..93d304ce 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/ListCollectionOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/ListCollectionOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.internal.serdes.collections.DocumentSerializer; import static com.datastax.astra.client.core.commands.CommandType.COLLECTION_ADMIN; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/UpdateOneOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/UpdateOneOptions.java index ba5d9344..29985db0 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/UpdateOneOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/UpdateOneOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.query.Sort; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/package-info.java new file mode 100644 index 00000000..061f376a --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/options/package-info.java @@ -0,0 +1,23 @@ +/** + * Options and Inputs for Collections commands. + */ +package com.datastax.astra.client.collections.commands.options; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/package-info.java new file mode 100644 index 00000000..53c11b63 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/package-info.java @@ -0,0 +1,23 @@ +/** + * Command Definitions for operating on Collections. + */ +package com.datastax.astra.client.collections.commands; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/results/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/results/package-info.java new file mode 100644 index 00000000..37ba6aca --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/commands/results/package-info.java @@ -0,0 +1,23 @@ +/** + * Outputs and DTO for Collections Commands. + */ +package com.datastax.astra.client.collections.commands.results; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/Document.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/Document.java index 183a5b60..605dc34c 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/Document.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/Document.java @@ -36,8 +36,8 @@ * #L% */ -import com.datastax.astra.client.core.types.DataAPIKeywords; -import com.datastax.astra.client.core.types.ObjectId; +import com.datastax.astra.client.core.DataAPIKeywords; +import com.datastax.astra.client.collections.definition.documents.types.ObjectId; import com.datastax.astra.client.core.vector.DataAPIVector; import com.datastax.astra.internal.serdes.DataAPISerializer; import com.datastax.astra.internal.serdes.collections.DocumentSerializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/package-info.java new file mode 100644 index 00000000..ae5e5d24 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/package-info.java @@ -0,0 +1,23 @@ +/** + * Objects describing the structure of a Document. + */ +package com.datastax.astra.client.collections.definition.documents; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/types/ObjectId.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/types/ObjectId.java similarity index 99% rename from astra-db-java/src/main/java/com/datastax/astra/client/core/types/ObjectId.java rename to astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/types/ObjectId.java index 4c86b628..31ccf360 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/core/types/ObjectId.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/types/ObjectId.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.core.types; +package com.datastax.astra.client.collections.definition.documents.types; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/types/UUIDv6.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/types/UUIDv6.java similarity index 95% rename from astra-db-java/src/main/java/com/datastax/astra/client/core/types/UUIDv6.java rename to astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/types/UUIDv6.java index 61f76128..8d58e7c2 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/core/types/UUIDv6.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/types/UUIDv6.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.core.types; +package com.datastax.astra.client.collections.definition.documents.types; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/types/UUIDv7.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/types/UUIDv7.java similarity index 95% rename from astra-db-java/src/main/java/com/datastax/astra/client/core/types/UUIDv7.java rename to astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/types/UUIDv7.java index ac24e06c..5255161a 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/core/types/UUIDv7.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/types/UUIDv7.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.core.types; +package com.datastax.astra.client.collections.definition.documents.types; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/types/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/types/package-info.java new file mode 100644 index 00000000..e86e8cfe --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/documents/types/package-info.java @@ -0,0 +1,23 @@ +/** + * Object representing the type Id for collections. + */ +package com.datastax.astra.client.collections.definition.documents.types; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/package-info.java new file mode 100644 index 00000000..ca731dce --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/definition/package-info.java @@ -0,0 +1,23 @@ +/** + * Objects describing the structure of a collection. + */ +package com.datastax.astra.client.collections.definition; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/exceptions/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/exceptions/package-info.java new file mode 100644 index 00000000..796f74b8 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/exceptions/package-info.java @@ -0,0 +1,23 @@ +/** + * Specializations of the exceptions to work with Collections. + */ +package com.datastax.astra.client.collections.exceptions; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/collections/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/collections/package-info.java new file mode 100644 index 00000000..f2361f6d --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/collections/package-info.java @@ -0,0 +1,23 @@ +/** + * Top package to interact with Collections + */ +package com.datastax.astra.client.collections; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/types/DataAPIKeywords.java b/astra-db-java/src/main/java/com/datastax/astra/client/core/DataAPIKeywords.java similarity index 97% rename from astra-db-java/src/main/java/com/datastax/astra/client/core/types/DataAPIKeywords.java rename to astra-db-java/src/main/java/com/datastax/astra/client/core/DataAPIKeywords.java index 63548070..0bda8180 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/core/types/DataAPIKeywords.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/core/DataAPIKeywords.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.datastax.astra.client.core.types; +package com.datastax.astra.client.core; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/commands/Command.java b/astra-db-java/src/main/java/com/datastax/astra/client/core/commands/Command.java index ac81d2ca..76b8ffdf 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/core/commands/Command.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/core/commands/Command.java @@ -25,7 +25,7 @@ import com.datastax.astra.client.collections.commands.Update; import com.datastax.astra.client.core.query.Projection; import com.datastax.astra.client.core.query.Sort; -import com.datastax.astra.client.core.types.DataAPIKeywords; +import com.datastax.astra.client.core.DataAPIKeywords; import com.datastax.astra.client.tables.commands.TableUpdateOperation; import com.datastax.astra.internal.utils.Assert; import com.fasterxml.jackson.core.JsonGenerator; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/commands/CommandRunner.java b/astra-db-java/src/main/java/com/datastax/astra/client/core/commands/CommandRunner.java index 2775356b..9883ffad 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/core/commands/CommandRunner.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/core/commands/CommandRunner.java @@ -20,6 +20,7 @@ * #L% */ +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.exceptions.DataAPIResponseException; import com.datastax.astra.internal.api.DataAPIResponse; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/commands/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/core/commands/package-info.java new file mode 100644 index 00000000..d5b0e5d6 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/core/commands/package-info.java @@ -0,0 +1,23 @@ +/** + * Utility classes for commands and operations. + */ +package com.datastax.astra.client.core.commands; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/http/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/core/http/package-info.java new file mode 100644 index 00000000..a575af34 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/core/http/package-info.java @@ -0,0 +1,24 @@ +/** + * Classes to specialize the HTTP Client. + */ +package com.datastax.astra.client.core.http; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/commands/BaseOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/core/options/BaseOptions.java similarity index 98% rename from astra-db-java/src/main/java/com/datastax/astra/client/core/commands/BaseOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/core/options/BaseOptions.java index 62985a0d..a5e5c059 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/core/commands/BaseOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/core/options/BaseOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.core.commands; +package com.datastax.astra.client.core.options; /*- * #%L @@ -22,9 +22,8 @@ import com.datastax.astra.client.core.auth.EmbeddingAPIKeyHeaderProvider; import com.datastax.astra.client.core.auth.EmbeddingHeadersProvider; +import com.datastax.astra.client.core.commands.CommandType; import com.datastax.astra.client.core.http.HttpClientOptions; -import com.datastax.astra.client.core.options.DataAPIClientOptions; -import com.datastax.astra.client.core.options.TimeoutOptions; import com.datastax.astra.internal.command.CommandObserver; import com.datastax.astra.internal.serdes.DataAPISerializer; import com.datastax.astra.internal.utils.Assert; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/options/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/core/options/package-info.java new file mode 100644 index 00000000..68ebd74b --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/core/options/package-info.java @@ -0,0 +1,24 @@ +/** + * Classes for options of the core commands. + */ +package com.datastax.astra.client.core.options; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/core/package-info.java index 9d113eaa..1cfc7fbc 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/core/package-info.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/core/package-info.java @@ -1,5 +1,5 @@ /** - * Domain model classes with {@code Requests}, {@code Results}, {@code Options} and {@code Iterables}. + * Core classes to interact both with Tables and Collections. */ package com.datastax.astra.client.core; /*- diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/paging/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/core/paging/package-info.java new file mode 100644 index 00000000..e2c9b85b --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/core/paging/package-info.java @@ -0,0 +1,24 @@ +/** + * Informations for cursor-based paging. + */ +package com.datastax.astra.client.core.paging; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/query/FilterBuilder.java b/astra-db-java/src/main/java/com/datastax/astra/client/core/query/FilterBuilder.java index 8e770f39..dbf51523 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/core/query/FilterBuilder.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/core/query/FilterBuilder.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.types.DataAPIKeywords; +import com.datastax.astra.client.core.DataAPIKeywords; import java.util.Map; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/query/Sort.java b/astra-db-java/src/main/java/com/datastax/astra/client/core/query/Sort.java index 1fd0b3b3..9d6e8a42 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/core/query/Sort.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/core/query/Sort.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.types.DataAPIKeywords; +import com.datastax.astra.client.core.DataAPIKeywords; import com.datastax.astra.client.core.vector.DataAPIVector; import lombok.Getter; import lombok.Setter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/query/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/core/query/package-info.java new file mode 100644 index 00000000..4844b5e8 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/core/query/package-info.java @@ -0,0 +1,24 @@ +/** + * Classes uses to build queries with Sort and Projection. + */ +package com.datastax.astra.client.core.query; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/vector/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/core/vector/package-info.java new file mode 100644 index 00000000..d91ac4bd --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/core/vector/package-info.java @@ -0,0 +1,23 @@ +/** + * Objects representing Vector options (vector) + */ +package com.datastax.astra.client.core.vector; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/vectorize/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/core/vectorize/package-info.java new file mode 100644 index 00000000..6e19bdef --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/core/vectorize/package-info.java @@ -0,0 +1,23 @@ +/** + * Objects representing Vector Services options (vectorize) + */ +package com.datastax.astra.client.core.vectorize; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/databases/DatabaseOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/databases/DatabaseOptions.java index 07800e3c..56b3eaed 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/databases/DatabaseOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/databases/DatabaseOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.commands.CommandType; import com.datastax.astra.client.core.options.DataAPIClientOptions; import com.datastax.astra.internal.serdes.DataAPISerializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/databases/commands/CreateKeyspaceOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/databases/commands/CreateKeyspaceOptions.java new file mode 100644 index 00000000..12397d09 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/databases/commands/CreateKeyspaceOptions.java @@ -0,0 +1,24 @@ +package com.datastax.astra.client.databases.commands; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ + +public class CreateKeyspaceOptions { +} diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/databases/commands/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/databases/commands/package-info.java new file mode 100644 index 00000000..ffff232d --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/databases/commands/package-info.java @@ -0,0 +1,23 @@ +/** + * Objects representing commands against databases and keyspaces. + */ +package com.datastax.astra.client.databases.commands; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/results/FindEmbeddingProvidersResult.java b/astra-db-java/src/main/java/com/datastax/astra/client/databases/commands/results/FindEmbeddingProvidersResult.java similarity index 94% rename from astra-db-java/src/main/java/com/datastax/astra/client/core/results/FindEmbeddingProvidersResult.java rename to astra-db-java/src/main/java/com/datastax/astra/client/databases/commands/results/FindEmbeddingProvidersResult.java index 3fad1c47..64005ebc 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/core/results/FindEmbeddingProvidersResult.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/databases/commands/results/FindEmbeddingProvidersResult.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.core.results; +package com.datastax.astra.client.databases.commands.results; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/databases/commands/results/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/databases/commands/results/package-info.java new file mode 100644 index 00000000..22dad570 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/databases/commands/results/package-info.java @@ -0,0 +1,23 @@ +/** + * Object representing keyspace level returns objects. + */ +package com.datastax.astra.client.databases.commands.results; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/keyspaces/KeyspaceInformation.java b/astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/keyspaces/KeyspaceInformation.java similarity index 97% rename from astra-db-java/src/main/java/com/datastax/astra/client/keyspaces/KeyspaceInformation.java rename to astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/keyspaces/KeyspaceInformation.java index dc2603f7..ec10addc 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/keyspaces/KeyspaceInformation.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/keyspaces/KeyspaceInformation.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.keyspaces; +package com.datastax.astra.client.databases.definition.keyspaces; /*- * #%L diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/keyspaces/KeyspaceOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/keyspaces/KeyspaceOptions.java similarity index 86% rename from astra-db-java/src/main/java/com/datastax/astra/client/keyspaces/KeyspaceOptions.java rename to astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/keyspaces/KeyspaceOptions.java index ccd46b12..e8ebd1bf 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/keyspaces/KeyspaceOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/keyspaces/KeyspaceOptions.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.keyspaces; +package com.datastax.astra.client.databases.definition.keyspaces; /*- * #%L @@ -25,8 +25,8 @@ import java.util.HashMap; import java.util.Map; -import static com.datastax.astra.client.keyspaces.KeyspaceInformation.ReplicationStrategy.NETWORK_TOPOLOGY_STRATEGY; -import static com.datastax.astra.client.keyspaces.KeyspaceInformation.ReplicationStrategy.SIMPLE_STRATEGY; +import static com.datastax.astra.client.databases.definition.keyspaces.KeyspaceInformation.ReplicationStrategy.NETWORK_TOPOLOGY_STRATEGY; +import static com.datastax.astra.client.databases.definition.keyspaces.KeyspaceInformation.ReplicationStrategy.SIMPLE_STRATEGY; /** * Options to create a Namespace. diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/keyspaces/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/keyspaces/package-info.java new file mode 100644 index 00000000..48dcaf95 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/keyspaces/package-info.java @@ -0,0 +1,23 @@ +/** + * Object representing the keyspaces. + */ +package com.datastax.astra.client.databases.definition.keyspaces; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/package-info.java new file mode 100644 index 00000000..448d2cc6 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/databases/definition/package-info.java @@ -0,0 +1,23 @@ +/** + * Objects the informations of databases + */ +package com.datastax.astra.client.databases.definition; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/databases/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/databases/package-info.java new file mode 100644 index 00000000..e1fe4bcb --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/databases/package-info.java @@ -0,0 +1,24 @@ +/** + * Top package to interact with Databases and Keyspaces. + */ +package com.datastax.astra.client.databases; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/devops/exceptions/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/devops/exceptions/package-info.java new file mode 100644 index 00000000..9c070165 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/devops/exceptions/package-info.java @@ -0,0 +1,23 @@ +/** + * Exceptions specialized checked and unchecked thrown with devops API + */ +package com.datastax.astra.client.devops.exceptions; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/devops/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/devops/package-info.java new file mode 100644 index 00000000..eb900687 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/devops/package-info.java @@ -0,0 +1,23 @@ +/** + * Implementations of admin operation through devops API. + */ +package com.datastax.astra.client.devops; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/Table.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/Table.java index 60200a59..f71dc891 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/Table.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/Table.java @@ -23,10 +23,10 @@ import com.datastax.astra.client.collections.commands.options.CollectionFindOptions; import com.datastax.astra.client.collections.definition.CollectionDefinition; import com.datastax.astra.client.collections.definition.documents.Document; -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.commands.Command; import com.datastax.astra.client.core.paging.Page; -import com.datastax.astra.client.core.paging.TableCursor; +import com.datastax.astra.client.tables.cursor.TableCursor; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.databases.Database; import com.datastax.astra.client.exceptions.DataAPIException; @@ -85,7 +85,7 @@ import static com.datastax.astra.client.core.options.DataAPIClientOptions.MAX_CHUNK_SIZE; import static com.datastax.astra.client.core.options.DataAPIClientOptions.MAX_COUNT; -import static com.datastax.astra.client.core.types.DataAPIKeywords.SORT_VECTOR; +import static com.datastax.astra.client.core.DataAPIKeywords.SORT_VECTOR; import static com.datastax.astra.client.exceptions.DataAPIException.ERROR_CODE_INTERRUPTED; import static com.datastax.astra.client.exceptions.DataAPIException.ERROR_CODE_TIMEOUT; import static com.datastax.astra.internal.utils.AnsiUtils.cyan; @@ -253,11 +253,47 @@ public String getName() { // --- alterTable ---- // -------------------------- - public final void alter(AlterTableOperation operation) { - alter(operation, null); + /** + * Performs an alteration operation on the table with default options. + * + * This method delegates to {@link #alter(AlterTableOperation, AlterTableOptions)} + * with {@code options} set to {@code null}. + * + * @param operation the alteration operation to be performed; must not be {@code null}. + * @return a new {@link Table} instance representing the altered table. + */ + public final Table
alter(AlterTableOperation operation) { + return alter(operation, null); + } + + /** + * Performs an alteration operation on the table with the specified options. + * + * This method delegates to {@link #alter(AlterTableOperation, AlterTableOptions, Class)} + * using the row class of the current table. + * + * @param operation the alteration operation to be performed; must not be {@code null}. + * @param options the options for the alteration operation; may be {@code null}. + * @return a new {@link Table} instance representing the altered table. + */ + public final Table
alter(AlterTableOperation operation, AlterTableOptions options) { + return alter(operation, options, getRowClass()); } - public final void alter(AlterTableOperation operation, AlterTableOptions options) { + /** + * Performs an alteration operation on the table with the specified options and row class. + * + * This is the most granular method for altering a table. It builds and executes the command + * to perform the specified alteration operation, with optional parameters and custom row class. + * + * @param operation the alteration operation to be performed; must not be {@code null}. + * @param options the options for the alteration operation; may be {@code null}. + * @param clazz the class representing the row type for the altered table; must not be {@code null}. + * @param
the type of the rows in the altered table. + * @return a new {@link Table} instance of the specified row class representing the altered table. + * @throws NullPointerException if {@code operation} or {@code clazz} is {@code null}. + */ + public final Table alter(AlterTableOperation operation, AlterTableOptions options, Class clazz) { notNull(operation, "operation"); Command alterTable = Command.create("alterTable") .append("operation", new Document().append(operation.getOperationName(), operation)); @@ -265,10 +301,6 @@ public final void alter(AlterTableOperation operation, AlterTableOptions options alterTable.append("options", options); } runCommand(alterTable, this.options); - } - - public final Table alter(AlterTableOperation operation, AlterTableOptions options, Class clazz) { - alter(operation, options); return new Table<>(database, tableName, this.options, clazz); } diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableOptions.java index 3613010f..696a49e0 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/TableOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.options.DataAPIClientOptions; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableAddColumns.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableAddColumns.java index 3d22bf79..687f1ed6 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableAddColumns.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableAddColumns.java @@ -27,7 +27,6 @@ import com.datastax.astra.client.tables.definition.columns.ColumnDefinitionVector; import com.datastax.astra.client.tables.definition.columns.ColumnTypes; import lombok.Getter; -import lombok.NoArgsConstructor; import lombok.Setter; import java.util.LinkedHashMap; @@ -58,12 +57,6 @@ @Setter @Getter public final class AlterTableAddColumns implements AlterTableOperation { - /** - * Indicates whether the "IF NOT EXISTS" clause should be used in the operation. - * Defaults to {@code null}, meaning the clause is not applied. - */ - Boolean ifNotExists = null; - /** * A map of column names to their definitions. * The map preserves the order of added columns. @@ -177,14 +170,4 @@ public AlterTableAddColumns addColumnMap(String name, ColumnTypes keyType, Colum columns.put(name, new ColumnDefinitionMap(keyType, valueType)); return this; } - - /** - * Specifies that the "IF NOT EXISTS" clause should be applied to this operation. - * - * @return the current instance for chaining. - */ - public AlterTableAddColumns ifNotExists() { - this.ifNotExists = true; - return this; - } } diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableAddVectorize.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableAddVectorize.java index e006236b..5bccf9f1 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableAddVectorize.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableAddVectorize.java @@ -47,12 +47,6 @@ @Setter @Getter public class AlterTableAddVectorize implements AlterTableOperation { - /** - * Flag indicating whether to include an "IF NOT EXISTS" clause in the operation. - * If {@code true}, the operation will not fail if the specified columns already exist. - */ - private Boolean ifNotExists = null; - /** * A map of column names to their respective {@link VectorServiceOptions} configurations. * Represents the vectorized columns to be added to the table. @@ -98,15 +92,4 @@ public AlterTableAddVectorize columns(Map columns) this.columns = columns; return this; } - - /** - * Enables the "IF NOT EXISTS" clause for the add operation. - * Ensures the operation does not fail if the specified columns already exist. - * - * @return this {@code AlterTableAddVectorize} instance - */ - public AlterTableAddVectorize ifNotExists() { - this.ifNotExists = true; - return this; - } } diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableDropColumns.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableDropColumns.java index 58f72f84..e5c9c026 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableDropColumns.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableDropColumns.java @@ -49,12 +49,6 @@ @NoArgsConstructor public final class AlterTableDropColumns implements AlterTableOperation { - /** - * Flag indicating whether to include an "IF EXISTS" clause in the drop operation. - * If {@code true}, the operation will proceed only if the specified columns exist. - */ - private Boolean ifExists = null; - /** * A set of column names to be dropped. * Ensures that column names are stored in insertion order with no duplicates. @@ -99,15 +93,4 @@ public AlterTableDropColumns columns(String... columns) { public String getOperationName() { return "drop"; } - - /** - * Enables the "IF EXISTS" clause for the drop operation. - * Ensures the operation only proceeds if the specified columns exist. - * - * @return this {@code AlterTableDropColumns} instance - */ - public AlterTableDropColumns ifExists() { - this.ifExists = true; - return this; - } } diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableDropVectorize.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableDropVectorize.java index 06490364..728c15a9 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableDropVectorize.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/AlterTableDropVectorize.java @@ -49,12 +49,6 @@ @Getter public class AlterTableDropVectorize implements AlterTableOperation { - /** - * Flag indicating whether to include an "IF EXISTS" clause in the drop operation. - * If {@code true}, the operation will proceed only if the specified columns exist. - */ - private Boolean ifExists = null; - /** * A set of column names to be dropped. * Ensures that column names are stored in insertion order and no duplicates are included. @@ -95,17 +89,6 @@ public AlterTableDropVectorize columns(String... columns) { return this; } - /** - * Enables the "IF EXISTS" clause for the drop operation. - * Ensures the operation only proceeds if the specified columns exist. - * - * @return this {@code AlterTableDropVectorize} instance - */ - public AlterTableDropVectorize ifExists() { - this.ifExists = true; - return this; - } - /** * Returns the name of this operation, which is "dropVectorize". * diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/AlterTableOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/AlterTableOptions.java index 32c40b0d..0fa62c35 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/AlterTableOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/AlterTableOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.commands.CommandType; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CountRowsOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CountRowsOptions.java index c1ae963a..779d1787 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CountRowsOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CountRowsOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateIndexOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateIndexOptions.java index 3ea563f4..76438f6a 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateIndexOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateIndexOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateTableOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateTableOptions.java index 628f433c..7dcfdada 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateTableOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateTableOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.commands.CommandType; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateVectorIndexOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateVectorIndexOptions.java index e283f427..6f131c1d 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateVectorIndexOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/CreateVectorIndexOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import lombok.Getter; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/DropTableIndexOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/DropTableIndexOptions.java index 42509617..6e5b455f 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/DropTableIndexOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/DropTableIndexOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/DropTableOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/DropTableOptions.java index dab4e765..ab6f7ebb 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/DropTableOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/DropTableOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import lombok.Setter; import lombok.experimental.Accessors; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/EstimatedCountRowsOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/EstimatedCountRowsOptions.java index 1d5cee4d..d47729cf 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/EstimatedCountRowsOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/EstimatedCountRowsOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/ListIndexesOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/ListIndexesOptions.java index 3cd9cd30..8029efa4 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/ListIndexesOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/ListIndexesOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.internal.serdes.tables.RowSerializer; import static com.datastax.astra.client.core.commands.CommandType.TABLE_ADMIN; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/ListTablesOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/ListTablesOptions.java index 26f4e7c9..3b7e6893 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/ListTablesOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/ListTablesOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.internal.serdes.tables.RowSerializer; import static com.datastax.astra.client.core.commands.CommandType.TABLE_ADMIN; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableDeleteManyOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableDeleteManyOptions.java index 2b6000dd..ff7c7dc1 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableDeleteManyOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableDeleteManyOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableDeleteOneOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableDeleteOneOptions.java index 794ab1a3..93a458fb 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableDeleteOneOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableDeleteOneOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.query.Sort; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableFindOneOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableFindOneOptions.java index b7f3e0dd..75d876fd 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableFindOneOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableFindOneOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.query.Projection; import com.datastax.astra.client.core.query.Sort; import lombok.Getter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableFindOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableFindOptions.java index 76bd9b34..3602b3d1 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableFindOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableFindOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.query.Projection; import com.datastax.astra.client.core.query.Sort; import lombok.Getter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableInsertManyOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableInsertManyOptions.java index 26f0b46b..e6688458 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableInsertManyOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableInsertManyOptions.java @@ -21,7 +21,7 @@ */ import com.datastax.astra.client.core.options.DataAPIClientOptions; -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableInsertOneOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableInsertOneOptions.java index 8120a369..9d81daae 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableInsertOneOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableInsertOneOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableUpdateOneOptions.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableUpdateOneOptions.java index b61b963f..3d56df65 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableUpdateOneOptions.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/TableUpdateOneOptions.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.query.Sort; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/package-info.java new file mode 100644 index 00000000..9b0887e2 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/options/package-info.java @@ -0,0 +1,23 @@ +/** + * Options and Inputs for Tables commands. + */ +package com.datastax.astra.client.tables.commands.options; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/package-info.java new file mode 100644 index 00000000..671f4f71 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/package-info.java @@ -0,0 +1,23 @@ +/** + * Command Definitions for operating on Tables. + */ +package com.datastax.astra.client.tables.commands; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/results/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/results/package-info.java new file mode 100644 index 00000000..103e9251 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/commands/results/package-info.java @@ -0,0 +1,23 @@ +/** + * Outputs and DTO for Tables Commands. + */ +package com.datastax.astra.client.tables.commands.results; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/core/paging/TableCursor.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/cursor/TableCursor.java similarity index 98% rename from astra-db-java/src/main/java/com/datastax/astra/client/core/paging/TableCursor.java rename to astra-db-java/src/main/java/com/datastax/astra/client/tables/cursor/TableCursor.java index 2ebf0274..8de505f3 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/core/paging/TableCursor.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/cursor/TableCursor.java @@ -1,4 +1,4 @@ -package com.datastax.astra.client.core.paging; +package com.datastax.astra.client.tables.cursor; /*- * #%L @@ -20,6 +20,8 @@ * #L% */ +import com.datastax.astra.client.core.paging.CursorState; +import com.datastax.astra.client.core.paging.Page; import com.datastax.astra.client.core.query.Filter; import com.datastax.astra.client.core.query.Projection; import com.datastax.astra.client.core.query.Sort; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/cursor/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/cursor/package-info.java new file mode 100644 index 00000000..eba66b1b --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/cursor/package-info.java @@ -0,0 +1,23 @@ +/** + * Objects representing cursors working with find tables commands. + */ +package com.datastax.astra.client.tables.cursor; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/package-info.java new file mode 100644 index 00000000..368d68cd --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/columns/package-info.java @@ -0,0 +1,23 @@ +/** + * Objects representing Table Columns + */ +package com.datastax.astra.client.tables.definition.columns; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/package-info.java new file mode 100644 index 00000000..0c8a8b06 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/indexes/package-info.java @@ -0,0 +1,23 @@ +/** + * Objects representing Table Indexes. + */ +package com.datastax.astra.client.tables.definition.indexes; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/package-info.java new file mode 100644 index 00000000..3909e4cd --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/package-info.java @@ -0,0 +1,23 @@ +/** + * Objects describing the structure of a Table. + */ +package com.datastax.astra.client.tables.definition; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/rows/Row.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/rows/Row.java index 063da771..6247ddfe 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/rows/Row.java +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/rows/Row.java @@ -21,7 +21,7 @@ */ import com.datastax.astra.client.collections.definition.documents.Document; -import com.datastax.astra.client.core.types.DataAPIKeywords; +import com.datastax.astra.client.core.DataAPIKeywords; import com.datastax.astra.client.core.vector.DataAPIVector; import com.datastax.astra.client.tables.definition.TableDuration; import com.datastax.astra.internal.serdes.DataAPISerializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/rows/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/rows/package-info.java new file mode 100644 index 00000000..b8d4fc4a --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/definition/rows/package-info.java @@ -0,0 +1,23 @@ +/** + * Objects representing Table Rows, like primary key. + */ +package com.datastax.astra.client.tables.definition.rows; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/exceptions/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/exceptions/package-info.java new file mode 100644 index 00000000..fd3dd08b --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/exceptions/package-info.java @@ -0,0 +1,23 @@ +/** + * Specializations of the exceptions to work with Tables. + */ +package com.datastax.astra.client.tables.exceptions; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/package-info.java new file mode 100644 index 00000000..a1e02c93 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/mapping/package-info.java @@ -0,0 +1,23 @@ +/** + * Annotations Set to map objects as Row Entities. + */ +package com.datastax.astra.client.tables.mapping; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/client/tables/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/client/tables/package-info.java new file mode 100644 index 00000000..c659a154 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/client/tables/package-info.java @@ -0,0 +1,24 @@ +/** + * Top package to interact with Tables. + */ +package com.datastax.astra.client.tables; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/command/AbstractCommandRunner.java b/astra-db-java/src/main/java/com/datastax/astra/internal/command/AbstractCommandRunner.java index 42fd0851..8a4c7f2d 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/command/AbstractCommandRunner.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/command/AbstractCommandRunner.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.client.core.commands.Command; import com.datastax.astra.client.core.commands.CommandRunner; import com.datastax.astra.client.core.http.HttpClientOptions; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/command/ExecutionInfos.java b/astra-db-java/src/main/java/com/datastax/astra/internal/command/ExecutionInfos.java index a531ab6a..88ca81c7 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/command/ExecutionInfos.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/command/ExecutionInfos.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.commands.BaseOptions; +import com.datastax.astra.client.core.options.BaseOptions; import com.datastax.astra.internal.api.DataAPIResponse; import com.datastax.astra.internal.api.ApiResponseHttp; import com.datastax.astra.client.core.commands.Command; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/reflection/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/internal/reflection/package-info.java new file mode 100644 index 00000000..4391237d --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/reflection/package-info.java @@ -0,0 +1,23 @@ +/** + * Utilities for reflection at runtime + */ +package com.datastax.astra.internal.reflection; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/DocumentSerializer.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/DocumentSerializer.java index 35085f54..fc17f037 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/DocumentSerializer.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/DocumentSerializer.java @@ -37,9 +37,9 @@ */ import com.datastax.astra.client.collections.definition.CollectionDefaultIdTypes; -import com.datastax.astra.client.core.types.ObjectId; -import com.datastax.astra.client.core.types.UUIDv6; -import com.datastax.astra.client.core.types.UUIDv7; +import com.datastax.astra.client.collections.definition.documents.types.ObjectId; +import com.datastax.astra.client.collections.definition.documents.types.UUIDv6; +import com.datastax.astra.client.collections.definition.documents.types.UUIDv7; import com.datastax.astra.client.core.vector.DataAPIVector; import com.datastax.astra.client.core.vector.SimilarityMetric; import com.datastax.astra.internal.serdes.DataAPISerializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/ObjectIdDeserializer.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/ObjectIdDeserializer.java index 2ae6e820..d4c28ad3 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/ObjectIdDeserializer.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/ObjectIdDeserializer.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.types.ObjectId; +import com.datastax.astra.client.collections.definition.documents.types.ObjectId; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/ObjectIdSerializer.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/ObjectIdSerializer.java index b1d05a70..7d344347 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/ObjectIdSerializer.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/ObjectIdSerializer.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.types.ObjectId; +import com.datastax.astra.client.collections.definition.documents.types.ObjectId; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.std.StdSerializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/UUID6Serializer.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/UUID6Serializer.java index aa15de61..377787e2 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/UUID6Serializer.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/UUID6Serializer.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.types.UUIDv6; +import com.datastax.astra.client.collections.definition.documents.types.UUIDv6; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.std.StdSerializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/UUID7Serializer.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/UUID7Serializer.java index 47a890e7..eb940b19 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/UUID7Serializer.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/UUID7Serializer.java @@ -20,7 +20,7 @@ * #L% */ -import com.datastax.astra.client.core.types.UUIDv7; +import com.datastax.astra.client.collections.definition.documents.types.UUIDv7; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.std.StdSerializer; diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/package-info.java new file mode 100644 index 00000000..9e137d9c --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/collections/package-info.java @@ -0,0 +1,24 @@ +/** + * Custom Serializers to work with Collections. + */ +package com.datastax.astra.internal.serdes.collections; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/package-info.java new file mode 100644 index 00000000..20875da9 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/package-info.java @@ -0,0 +1,23 @@ +/** + * Utilities classes for Serialization and Deserialization + */ +package com.datastax.astra.internal.serdes; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/shared/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/shared/package-info.java new file mode 100644 index 00000000..537eeb15 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/shared/package-info.java @@ -0,0 +1,24 @@ +/** + * Custom Serializers applied for both tables and collections. + */ +package com.datastax.astra.internal.serdes.shared; + +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/package-info.java b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/package-info.java new file mode 100644 index 00000000..f3686d67 --- /dev/null +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/serdes/tables/package-info.java @@ -0,0 +1,23 @@ +/** + * Custom Serializers to work with Tables + */ +package com.datastax.astra.internal.serdes.tables; +/*- + * #%L + * Data API Java Client + * -- + * Copyright (C) 2024 DataStax + * -- + * Licensed under the Apache License, Version 2.0 + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * #L% + */ diff --git a/astra-db-java/src/main/java/com/datastax/astra/internal/utils/OptionsUtils.java b/astra-db-java/src/main/java/com/datastax/astra/internal/utils/OptionsUtils.java index 7e75009b..0db58e56 100644 --- a/astra-db-java/src/main/java/com/datastax/astra/internal/utils/OptionsUtils.java +++ b/astra-db-java/src/main/java/com/datastax/astra/internal/utils/OptionsUtils.java @@ -22,7 +22,7 @@ import com.datastax.astra.client.core.query.Projection; import com.datastax.astra.client.core.query.Sort; -import com.datastax.astra.client.core.types.DataAPIKeywords; +import com.datastax.astra.client.core.DataAPIKeywords; import java.util.Arrays; import java.util.LinkedHashMap; diff --git a/astra-db-java/src/main/java/overview.html b/astra-db-java/src/main/java/overview.html index 32499351..008ff5d4 100644 --- a/astra-db-java/src/main/java/overview.html +++ b/astra-db-java/src/main/java/overview.html @@ -40,7 +40,7 @@ Installation
@@ -85,7 +85,5 @@<dependency> <groupId>com.datastax.astra</groupId> <artifactId>astra-db-java</artifactId> - <version>1.0.0-SNAPSHOT</version> + <version>2.0.0-PREVIEW</version> </dependency>QuickStart
}