From 0c77ac6ebb6a6c3ee0eff99d635d351010dd2d76 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Wed, 7 Jun 2023 15:58:41 +0200 Subject: [PATCH] Polishing. Add Javadoc. Reformat code. See: #359 Original pull request: #1385 --- .../core/CassandraAdminOperations.java | 1 - .../core/cql/keyspace/TableOption.java | 11 +++++- .../core/cql/keyspace/TableSpecification.java | 2 +- ...assandraAdminTemplateIntegrationTests.java | 34 +++++++++---------- 4 files changed, 27 insertions(+), 21 deletions(-) diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminOperations.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminOperations.java index 5b59d3665..8d28ae2fe 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminOperations.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraAdminOperations.java @@ -55,7 +55,6 @@ public interface CassandraAdminOperations extends CassandraOperations { void createTable(boolean ifNotExists, CqlIdentifier tableName, Class entityClass, Map optionsByName); - /** * Drops a table based on the given {@link Class entity type}. The name of the table is derived from either the simple * name of the {@link Class entity class} or name of the table specified with the {@link Table} mapping annotation. diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/TableOption.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/TableOption.java index fee52fb4e..7aa2fcdd3 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/TableOption.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/TableOption.java @@ -18,7 +18,6 @@ package org.springframework.data.cassandra.core.cql.keyspace; import java.util.Map; import org.springframework.lang.Nullable; -import org.springframework.util.StringUtils; /** * Enumeration that represents all known table options. If a table option is not listed here, but is supported by @@ -86,12 +85,22 @@ public enum TableOption implements Option { this.delegate = new DefaultOption(name, type, requiresValue, escapesValue, quotesValue); } + /** + * Look up {@link TableOption} by name using case-insensitive lookups. + * + * @param optionName name of the option. + * @return the option. + * @throws IllegalArgumentException if the option cannot be determined. + * @since 3.4.13 + */ public static TableOption valueOfIgnoreCase(String optionName) { + for (TableOption value : values()) { if (value.getName().equalsIgnoreCase(optionName)) { return value; } } + throw new IllegalArgumentException(String.format("Unable to recognize specified Table option '%s'", optionName)); } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/TableSpecification.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/TableSpecification.java index 2e8f8a880..61b05c030 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/TableSpecification.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/TableSpecification.java @@ -296,7 +296,7 @@ public class TableSpecification extends TableOptionsSpecification options = new HashMap<>(); - Assertions.assertThat(someTable).isNotNull(); - Assertions.assertThat(someTable.getOptions().get(CqlIdentifier.fromCql(TableOption.COMMENT.getName()))) + options.put(TableOption.COMMENT.getName(), "This is comment for table"); + options.put(TableOption.BLOOM_FILTER_FP_CHANCE.getName(), "0.3"); + + CqlIdentifier tableName = CqlIdentifier.fromCql("someTable"); + cassandraAdminTemplate.createTable(true, tableName, SomeTable.class, options); + + TableMetadata someTable = getKeyspaceMetadata().getTables().get(tableName); + + assertThat(someTable).isNotNull(); + assertThat(someTable.getOptions().get(CqlIdentifier.fromCql(TableOption.COMMENT.getName()))) .isEqualTo("This is comment for table"); - Assertions.assertThat(someTable.getOptions().get(CqlIdentifier.fromCql(TableOption.BLOOM_FILTER_FP_CHANCE.getName()))) + assertThat(someTable.getOptions().get(CqlIdentifier.fromCql(TableOption.BLOOM_FILTER_FP_CHANCE.getName()))) .isEqualTo(0.3); } @@ -117,8 +116,7 @@ class CassandraAdminTemplateIntegrationTests extends AbstractKeyspaceCreatingInt @Table("someTable") private static class SomeTable { - @Id - private String name; + @Id private String name; private Integer number; private LocalDate createdAt; }