From 7dc3364d8e786145107281eaafe37fe1bf36e9f4 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 1 Aug 2017 15:54:43 +0200 Subject: [PATCH] DATACASS-482 - Polishing. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reduce method visibility on protected types. Remove deprecated methods. Formatting, reorder methods, Javadoc. Introduce CqlIdentifier.of(…) and KeyspaceIdentifier.of(…) methods and deprecate CqlIdentifier.cqlId(…) and KeyspaceIdentifier.ksId(…) methods. --- .../AbstractCassandraConfiguration.java | 1 - .../config/AbstractClusterConfiguration.java | 4 +- .../AbstractCqlTemplateConfiguration.java | 3 - ...bstractReactiveCassandraConfiguration.java | 4 +- .../config/AbstractSessionConfiguration.java | 1 - .../cassandra/config/BeanDefinitionUtils.java | 1 - .../config/CassandraCqlClusterParser.java | 25 +-- .../CassandraCqlSessionFactoryBean.java | 7 +- .../config/CassandraCqlSessionParser.java | 40 +++-- .../config/CassandraEntityClassScanner.java | 18 ++- ...sandraMappingBeanFactoryPostProcessor.java | 4 +- .../config/CassandraMappingContextParser.java | 10 +- .../config/CassandraSessionFactoryBean.java | 17 ++- ...eyspaceActionSpecificationFactoryBean.java | 2 +- .../data/cassandra/config/ParsingUtils.java | 65 -------- .../config/PoolingOptionsFactoryBean.java | 2 +- .../config/SocketOptionsFactoryBean.java | 79 +++------- ...assandraPersistentEntitySchemaDropper.java | 4 +- .../core/convert/CassandraConverter.java | 2 +- .../core/convert/CassandraConverters.java | 2 +- .../convert/CassandraJsr310Converters.java | 11 -- .../cassandra/core/convert/ColumnReader.java | 14 +- .../convert/MappingCassandraConverter.java | 7 +- .../cassandra/core/convert/QueryMapper.java | 8 +- .../cql/ArgumentPreparedStatementBinder.java | 2 +- .../cassandra/core/cql/CqlIdentifier.java | 38 ++++- .../cassandra/core/cql/CqlOperations.java | 4 - .../data/cassandra/core/cql/CqlProvider.java | 5 +- .../cassandra/core/cql/CqlStringUtils.java | 136 ----------------- .../data/cassandra/core/cql/Ordering.java | 22 +-- .../cassandra/core/cql/PrimaryKeyType.java | 24 +-- .../data/cassandra/core/cql/RowUtils.java | 2 + .../generator/ColumnChangeCqlGenerator.java | 9 +- .../generator/CreateIndexCqlGenerator.java | 2 +- .../cql/generator/IndexNameCqlGenerator.java | 4 +- .../generator/KeyspaceNameCqlGenerator.java | 4 +- .../core/cql/generator/OptionRenderUtil.java | 5 +- .../cql/generator/TableNameCqlGenerator.java | 4 +- .../generator/UserTypeNameCqlGenerator.java | 4 +- .../cql/keyspace/AddColumnSpecification.java | 2 +- .../keyspace/AlterColumnSpecification.java | 2 +- .../cql/keyspace/AlterTableSpecification.java | 10 +- .../keyspace/AlterUserTypeSpecification.java | 8 +- .../cql/keyspace/ColumnSpecification.java | 2 +- .../core/cql/keyspace/CqlStringUtils.java | 41 +++++ .../keyspace/CreateIndexSpecification.java | 142 +++++++++--------- .../keyspace/CreateTableSpecification.java | 2 +- .../keyspace/CreateUserTypeSpecification.java | 2 +- .../core/cql/keyspace/DefaultOption.java | 2 +- .../cql/keyspace/DropColumnSpecification.java | 2 +- .../cql/keyspace/DropIndexSpecification.java | 2 +- .../cql/keyspace/DropTableSpecification.java | 2 +- .../keyspace/DropUserTypeSpecification.java | 2 +- .../core/cql/keyspace/FieldSpecification.java | 2 +- .../core/cql/keyspace/KeyspaceAttributes.java | 15 +- .../core/cql/keyspace/KeyspaceOption.java | 4 +- .../KeyspaceOptionsSpecification.java | 3 +- .../keyspace/RenameColumnSpecification.java | 12 -- .../core/cql/keyspace/TableOption.java | 10 +- .../keyspace/TableOptionsSpecification.java | 3 +- .../core/cql/keyspace/TableSpecification.java | 10 +- .../cql/keyspace/UserTypeSpecification.java | 2 +- .../BasicCassandraPersistentEntity.java | 8 +- .../BasicCassandraPersistentProperty.java | 6 +- .../CassandraColumnAnnotationComparator.java | 8 +- .../core/mapping/CassandraMappingContext.java | 6 +- ...CassandraPersistentPropertyComparator.java | 8 +- ...aPrimaryKeyColumnAnnotationComparator.java | 16 +- .../mapping/CassandraSimpleTypeHolder.java | 11 +- .../core/mapping/PropertyMapping.java | 37 +---- .../core/mapping/SimpleUserTypeResolver.java | 1 + .../cassandra/core/mapping/UserTypeUtil.java | 4 +- .../data/cassandra/core/query/Columns.java | 4 +- .../query/AbstractCassandraQuery.java | 110 +------------- ...assandraAdminTemplateIntegrationTests.java | 10 +- ...ersistentEntitySchemaDropperUnitTests.java | 16 +- .../core/convert/ColumnReaderUnitTests.java | 4 +- ...CassandraConverterUDTIntegrationTests.java | 2 +- .../core/convert/QueryMapperUnitTests.java | 2 +- .../core/cql/CqlIdentifierUnitTests.java | 10 +- .../CqlTableSpecificationAssertions.java | 2 +- .../CreateTableCqlGeneratorUnitTests.java | 32 ++-- ...sicCassandraPersistentEntityUnitTests.java | 4 +- ...cCassandraPersistentPropertyUnitTests.java | 9 +- .../CassandraMappingContextUnitTests.java | 28 ++-- ...PersistentPropertyComparatorUnitTests.java | 4 +- ...ndraUserTypePersistentEntityUnitTests.java | 14 +- ...BasicCassandraMappingContextUnitTests.java | 2 +- .../ForceQuotedPropertiesSimpleUnitTests.java | 12 +- .../IndexSpecificationFactoryUnitTests.java | 15 +- .../core/query/ColumnNameUnitTests.java | 10 +- .../core/query/ColumnsUnitTests.java | 2 +- .../ParameterConversionTestSupport.java | 2 +- .../PartTreeCassandraQueryUnitTests.java | 2 +- .../StringBasedCassandraQueryUnitTests.java | 2 +- .../SimpleCassandraRepositoryUnitTests.java | 2 +- .../cassandra/support/UserTypeBuilder.java | 2 +- 97 files changed, 428 insertions(+), 857 deletions(-) delete mode 100644 spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlStringUtils.java create mode 100644 spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/CqlStringUtils.java diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCassandraConfiguration.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCassandraConfiguration.java index ecbc63f3a..c25a8c5fd 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCassandraConfiguration.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCassandraConfiguration.java @@ -220,5 +220,4 @@ public abstract class AbstractCassandraConfiguration extends AbstractClusterConf public SchemaAction getSchemaAction() { return SchemaAction.NONE; } - } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractClusterConfiguration.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractClusterConfiguration.java index c6f6d37d5..e84f3bcc6 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractClusterConfiguration.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractClusterConfiguration.java @@ -221,7 +221,7 @@ public abstract class AbstractClusterConfiguration { } /** - * Returns the Cassandra port. Defaults to {@code 9042} + * Returns the Cassandra port. Defaults to {@code 9042}. * * @return the Cassandra port * @see CassandraClusterFactoryBean#DEFAULT_PORT @@ -231,7 +231,7 @@ public abstract class AbstractClusterConfiguration { } /** - * Returns the {@link ProtocolVersion}. Defaults to {@link ProtocolVersion#NEWEST_SUPPORTED} + * Returns the {@link ProtocolVersion}. Defaults to {@link ProtocolVersion#NEWEST_SUPPORTED}. * * @return the {@link ProtocolVersion}. * @see ProtocolVersion#NEWEST_SUPPORTED. diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCqlTemplateConfiguration.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCqlTemplateConfiguration.java index 7f38bad51..46e8a2801 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCqlTemplateConfiguration.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCqlTemplateConfiguration.java @@ -24,10 +24,7 @@ import org.springframework.data.cassandra.core.cql.CqlTemplate; * * @author Matthew T. Adams * @author Mark Paluch - * @see AbstractClusterConfiguration * @see AbstractSessionConfiguration - * @see com.datastax.driver.core.Session - * @see com.datastax.driver.core.Cluster * @see CqlTemplate */ public abstract class AbstractCqlTemplateConfiguration extends AbstractSessionConfiguration { diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractReactiveCassandraConfiguration.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractReactiveCassandraConfiguration.java index 815f9dffd..bd932bba5 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractReactiveCassandraConfiguration.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractReactiveCassandraConfiguration.java @@ -66,7 +66,7 @@ public abstract class AbstractReactiveCassandraConfiguration extends AbstractCas /** * Creates a {@link CassandraAdminTemplate}. * - * @return + * @return the {@link ReactiveCassandraOperations}. * @see #reactiveSessionFactory() * @see #cassandraConverter() */ @@ -78,7 +78,7 @@ public abstract class AbstractReactiveCassandraConfiguration extends AbstractCas /** * Creates a {@link ReactiveCqlTemplate} using the configured {@link ReactiveSessionFactory}. * - * @return + * @return the {@link ReactiveCqlOperations}. * @see #reactiveSessionFactory() */ @Bean diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractSessionConfiguration.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractSessionConfiguration.java index efac4e6ac..58ada8ae5 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractSessionConfiguration.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractSessionConfiguration.java @@ -89,5 +89,4 @@ public abstract class AbstractSessionConfiguration extends AbstractClusterConfig * @return must not be {@literal null}. */ protected abstract String getKeyspaceName(); - } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/BeanDefinitionUtils.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/BeanDefinitionUtils.java index 66ebd6366..0687ae96c 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/BeanDefinitionUtils.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/BeanDefinitionUtils.java @@ -41,7 +41,6 @@ class BeanDefinitionUtils { * @param type The required {@link BeanDefinition}'s type. * @param includeNonSingletons Whether to include beans with scope other than {@code singleton} * @param allowEagerInit Whether to allow eager initialization of beans. - * @param required Whether to allow the return of null if none were found. * @return The {@link BeanDefinitionHolder}s -- never returns null. * @see BeanFactoryUtils#beanNamesForTypeIncludingAncestors(ListableBeanFactory, Class, boolean, boolean) */ diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraCqlClusterParser.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraCqlClusterParser.java index 7314a5e9b..c8a463c17 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraCqlClusterParser.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraCqlClusterParser.java @@ -164,11 +164,8 @@ class CassandraCqlClusterParser extends AbstractBeanDefinitionParser { } } - builder.addPropertyValue("keyspaceSpecifications", - newKeyspaceSetFlattenerBeanDefinition(element, parserContext, keyspaceActionSpecificationBeanDefinitions)); - + builder.addPropertyValue("keyspaceActions", keyspaceActionSpecificationBeanDefinitions); builder.addPropertyValue("poolingOptions", getSourceBeanDefinition(poolingOptionsBuilder, parserContext, element)); - builder.addPropertyValue("startupScripts", startupScripts); builder.addPropertyValue("shutdownScripts", shutdownScripts); } @@ -229,26 +226,6 @@ class CassandraCqlClusterParser extends AbstractBeanDefinitionParser { builder.addPropertyValue("networkTopologyReplicationFactors", networkTopologyReplicationFactors); } - /** - * Create the Single Factory Bean that will flatten all Set> - * - * @param element {@link Element} to parse. - * @param parserContext XML parser context and state. - * @param keyspaceActionSpecificationBeanDefinitions The List of Definitions to flatten - * @return A single level List of KeyspaceActionSpecifications - */ - private Object newKeyspaceSetFlattenerBeanDefinition(Element element, ParserContext parserContext, - ManagedSet keyspaceActionSpecificationBeanDefinitions) { - - BeanDefinitionBuilder builder = BeanDefinitionBuilder - .genericBeanDefinition(MultiLevelSetFlattenerFactoryBean.class); - - // TODO: introduce a typed reference instead of Set of Sets. - builder.addPropertyValue("multiLevelSet", keyspaceActionSpecificationBeanDefinitions); - - return getSourceBeanDefinition(builder, parserContext, element); - } - /** * Parses local pooling options. * diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraCqlSessionFactoryBean.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraCqlSessionFactoryBean.java index 70ead16ea..7cb46bb42 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraCqlSessionFactoryBean.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraCqlSessionFactoryBean.java @@ -59,7 +59,8 @@ public class CassandraCqlSessionFactoryBean implements FactoryBean, InitializingBean, DisposableBean, PersistenceExceptionTranslator { protected final Logger logger = LoggerFactory.getLogger(getClass()); - protected final PersistenceExceptionTranslator exceptionTranslator = new CassandraExceptionTranslator(); + + private final PersistenceExceptionTranslator exceptionTranslator = new CassandraExceptionTranslator(); private @Nullable Cluster cluster; @@ -140,10 +141,6 @@ public class CassandraCqlSessionFactoryBean } } - /** - * @param session - * @return - */ CqlOperations newCqlOperations(Session session) { return new CqlTemplate(session); } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraCqlSessionParser.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraCqlSessionParser.java index 222f6b55b..de51a956c 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraCqlSessionParser.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraCqlSessionParser.java @@ -33,6 +33,7 @@ import org.w3c.dom.NamedNodeMap; * * @author David Webb * @author Matthew T. Adams + * @author Mark Paluch */ class CassandraCqlSessionParser extends AbstractSingleBeanDefinitionParser { @@ -52,28 +53,10 @@ class CassandraCqlSessionParser extends AbstractSingleBeanDefinitionParser { throws BeanDefinitionStoreException { String id = super.resolveId(element, definition, parserContext); + return StringUtils.hasText(id) ? id : DefaultCqlBeanNames.SESSION; } - /** - * Parse the given element. This method is intended to be overridden by subclasses so that any elements not known to - * this class can be properly parsed. The default implementation throws {@link IllegalStateException}. - */ - protected void parseUnhandledElement(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { - throw new IllegalStateException(String.format("encountered unhandled element [%s]", element.getLocalName())); - } - - /** - * Parse the given session element attribute. This method is intended to be overridden by subclasses so that any - * attributes not known to this class can be properly parsed. The default implementation throws - * {@link IllegalStateException}. - */ - protected void parseUnhandledSessionElementAttribute(Attr attribute, ParserContext parserContext, - BeanDefinitionBuilder builder) { - throw new IllegalStateException( - String.format("encountered unhandled session element attribute [%s]", attribute.getName())); - } - /* (non-Javadoc) * @see org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser#doParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder) */ @@ -90,7 +73,7 @@ class CassandraCqlSessionParser extends AbstractSingleBeanDefinitionParser { addRequiredPropertyReference(builder, "cluster", DefaultCqlBeanNames.CLUSTER); } - protected void parseSessionAttributes(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { + private void parseSessionAttributes(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { NamedNodeMap attributes = element.getAttributes(); int length = attributes.getLength(); @@ -114,8 +97,7 @@ class CassandraCqlSessionParser extends AbstractSingleBeanDefinitionParser { } } - protected void parseSessionChildElements(Element element, ParserContext parserContext, - BeanDefinitionBuilder builder) { + private void parseSessionChildElements(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { for (Element child : DomUtils.getChildElements(element)) { @@ -124,8 +106,20 @@ class CassandraCqlSessionParser extends AbstractSingleBeanDefinitionParser { } else if ("shutdown-cql".equals(child.getLocalName())) { builder.addPropertyValue("shutdownScripts", DomUtils.getTextValue(child)); } else { - parseUnhandledElement(child, parserContext, builder); + throw new IllegalStateException(String.format("encountered unhandled element [%s]", child.getLocalName())); } } } + + /** + * Parse the given session element attribute. This method is intended to be overridden by subclasses so that any + * attributes not known to this class can be properly parsed. The default implementation throws + * {@link IllegalStateException}. + */ + protected void parseUnhandledSessionElementAttribute(Attr attribute, ParserContext parserContext, + BeanDefinitionBuilder builder) { + + throw new IllegalStateException( + String.format("encountered unhandled session element attribute [%s]", attribute.getName())); + } } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraEntityClassScanner.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraEntityClassScanner.java index 828ad5101..6628d40fa 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraEntityClassScanner.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraEntityClassScanner.java @@ -44,14 +44,16 @@ import org.springframework.util.StringUtils; public class CassandraEntityClassScanner { private Set entityBasePackages = new HashSet<>(); + private Set> entityBasePackageClasses = new HashSet<>(); + private @Nullable ClassLoader beanClassLoader; /** * Scan one or more base packages for entity classes. Classes are loaded using the current class loader. * * @param entityBasePackages must not be {@literal null}. - * @return + * @return {@link Set} containing all discovered entity classes. * @throws ClassNotFoundException */ public static Set> scan(String... entityBasePackages) throws ClassNotFoundException { @@ -62,8 +64,8 @@ public class CassandraEntityClassScanner { * Scan one or more base packages for entity classes. Classes are loaded using the current class loader. * * @param entityBasePackageClasses must not be {@literal null}. - * @return - * @throws ClassNotFoundException + * @return {@link Set} containing all discovered entity classes. + * @throws ClassNotFoundException if a discovered class could not be loaded via. */ public static Set> scan(Class... entityBasePackageClasses) throws ClassNotFoundException { return new CassandraEntityClassScanner(entityBasePackageClasses).scanForEntityClasses(); @@ -73,8 +75,8 @@ public class CassandraEntityClassScanner { * Scan one or more base packages for entity classes. Classes are loaded using the current class loader. * * @param entityBasePackages must not be {@literal null}. - * @return - * @throws ClassNotFoundException + * @return {@link Set} containing all discovered entity classes. + * @throws ClassNotFoundException if a discovered class could not be loaded via. */ public static Set> scan(Collection entityBasePackages) throws ClassNotFoundException { return new CassandraEntityClassScanner(entityBasePackages).scanForEntityClasses(); @@ -85,8 +87,8 @@ public class CassandraEntityClassScanner { * * @param entityBasePackages must not be {@literal null}. * @param entityBasePackageClasses must not be {@literal null}. - * @return - * @throws ClassNotFoundException + * @return {@link Set} containing all discovered entity classes. + * @throws ClassNotFoundException if a discovered class could not be loaded via. */ public static Set> scan(Collection entityBasePackages, Collection> entityBasePackageClasses) throws ClassNotFoundException { @@ -185,7 +187,7 @@ public class CassandraEntityClassScanner { * * @see #getEntityBasePackages() * @return {@code Set>} representing the annotated entity classes found. - * @throws ClassNotFoundException + * @throws ClassNotFoundException if a discovered class could not be loaded via. */ public Set> scanForEntityClasses() throws ClassNotFoundException { diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraMappingBeanFactoryPostProcessor.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraMappingBeanFactoryPostProcessor.java index b994258b4..c0321d947 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraMappingBeanFactoryPostProcessor.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraMappingBeanFactoryPostProcessor.java @@ -173,7 +173,7 @@ public class CassandraMappingBeanFactoryPostProcessor implements BeanFactoryPost return converter; } - private BeanDefinitionHolder registerDefaultTemplate(BeanDefinitionRegistry registry, String sessionBeanName, + private void registerDefaultTemplate(BeanDefinitionRegistry registry, String sessionBeanName, String converterBeanName) { BeanDefinition beanDefinition = BeanDefinitionBuilder.genericBeanDefinition(CassandraTemplate.class) // @@ -183,8 +183,6 @@ public class CassandraMappingBeanFactoryPostProcessor implements BeanFactoryPost BeanDefinitionHolder template = new BeanDefinitionHolder(beanDefinition, DefaultBeanNames.DATA_TEMPLATE); registry.registerBeanDefinition(template.getBeanName(), template.getBeanDefinition()); - - return template; } private Collection getNames(Class[] types) { diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraMappingContextParser.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraMappingContextParser.java index 65d153ba7..e32d27275 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraMappingContextParser.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraMappingContextParser.java @@ -76,7 +76,7 @@ class CassandraMappingContextParser extends AbstractSingleBeanDefinitionParser { parseMapping(element, builder); } - protected void parseMapping(Element element, BeanDefinitionBuilder builder) { + private void parseMapping(Element element, BeanDefinitionBuilder builder) { String packages = element.getAttribute("entity-base-packages"); @@ -119,7 +119,7 @@ class CassandraMappingContextParser extends AbstractSingleBeanDefinitionParser { builder.addPropertyValue("mapping", mapping); } - protected EntityMapping parseEntity(Element entity) { + private EntityMapping parseEntity(Element entity) { String className = entity.getAttribute("class"); @@ -136,8 +136,6 @@ class CassandraMappingContextParser extends AbstractSingleBeanDefinitionParser { forceQuote = String.valueOf(Boolean.parseBoolean(table.getAttribute("force-quote"))); } - // TODO: parse future entity mappings here, like table options - Map propertyMappings = parsePropertyMappings(entity); EntityMapping entityMapping = new EntityMapping(className, tableName, forceQuote); @@ -146,7 +144,7 @@ class CassandraMappingContextParser extends AbstractSingleBeanDefinitionParser { return entityMapping; } - protected BeanDefinition parseUserTypeResolver(Element entity) { + private BeanDefinition parseUserTypeResolver(Element entity) { String keyspaceName = entity.getAttribute("keyspace-name"); @@ -161,7 +159,7 @@ class CassandraMappingContextParser extends AbstractSingleBeanDefinitionParser { return builder.getBeanDefinition(); } - protected Map parsePropertyMappings(Element entity) { + private Map parsePropertyMappings(Element entity) { Map propertyMappings = new HashMap<>(); diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraSessionFactoryBean.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraSessionFactoryBean.java index 09a97e4e1..4bf5244f5 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraSessionFactoryBean.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraSessionFactoryBean.java @@ -58,7 +58,7 @@ public class CassandraSessionFactoryBean extends CassandraCqlSessionFactoryBean super.afterPropertiesSet(); - this.admin = new CassandraAdminTemplate(getObject(), this.converter); + this.admin = new CassandraAdminTemplate(getSession(), this.converter); performSchemaAction(); } @@ -116,9 +116,13 @@ public class CassandraSessionFactoryBean extends CassandraCqlSessionFactoryBean /** * @return the {@link CassandraMappingContext}. */ - @Nullable protected CassandraMappingContext getMappingContext() { - return getConverter().getMappingContext(); + + CassandraConverter converter = getConverter(); + + Assert.state(converter != null, "CassandraConverter was not properly initialized"); + + return converter.getMappingContext(); } /** @@ -154,8 +158,8 @@ public class CassandraSessionFactoryBean extends CassandraCqlSessionFactoryBean private void performSchemaActions(boolean drop, boolean dropUnused, boolean ifNotExists) { - CassandraPersistentEntitySchemaCreator schemaCreator = - new CassandraPersistentEntitySchemaCreator(getMappingContext(), getCassandraAdminOperations()); + CassandraPersistentEntitySchemaCreator schemaCreator = new CassandraPersistentEntitySchemaCreator( + getMappingContext(), getCassandraAdminOperations()); if (drop) { @@ -175,6 +179,9 @@ public class CassandraSessionFactoryBean extends CassandraCqlSessionFactoryBean * @return the {@link CassandraAdminOperations}. */ protected CassandraAdminOperations getCassandraAdminOperations() { + + Assert.state(this.admin != null, "CassandraAdminOperations was not properly initialized"); + return this.admin; } } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/KeyspaceActionSpecificationFactoryBean.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/KeyspaceActionSpecificationFactoryBean.java index 27623f36a..8ae80654e 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/KeyspaceActionSpecificationFactoryBean.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/KeyspaceActionSpecificationFactoryBean.java @@ -36,6 +36,7 @@ import org.springframework.util.Assert; * @author David Webb * @author Mark Paluch */ +@SuppressWarnings({ "unused", "WeakerAccess" }) public class KeyspaceActionSpecificationFactoryBean implements FactoryBean, InitializingBean { private KeyspaceAction action = KeyspaceAction.NONE; @@ -236,5 +237,4 @@ public class KeyspaceActionSpecificationFactoryBean implements FactoryBean, I return GET_MAX_QUEUE_SIZE.map(method -> { Integer defaultMaxQueueSize = (Integer) invokeMethod(method, poolingOptions); - return defaultMaxQueueSize.intValue() == maxQueueSize; + return defaultMaxQueueSize != null && defaultMaxQueueSize == maxQueueSize; }).orElse(false); } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/SocketOptionsFactoryBean.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/SocketOptionsFactoryBean.java index d386dbc5d..f65160e58 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/SocketOptionsFactoryBean.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/SocketOptionsFactoryBean.java @@ -15,7 +15,8 @@ */ package org.springframework.data.cassandra.config; -import org.springframework.beans.factory.DisposableBean; +import java.util.Optional; + import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.lang.Nullable; @@ -27,17 +28,25 @@ import com.datastax.driver.core.SocketOptions; * * @author Matthew T. Adams * @author David Webb + * @author Mark Paluch */ @SuppressWarnings({ "unused", "WeakerAccess" }) -public class SocketOptionsFactoryBean implements FactoryBean, InitializingBean, DisposableBean { +public class SocketOptionsFactoryBean implements FactoryBean, InitializingBean { private @Nullable Integer connectTimeoutMillis; + private @Nullable Boolean keepAlive; + private @Nullable Integer readTimeoutMillis; + private @Nullable Boolean reuseAddress; + private @Nullable Integer soLinger; + private @Nullable Boolean tcpNoDelay; + private @Nullable Integer receiveBufferSize; + private @Nullable Integer sendBufferSize; private @Nullable SocketOptions socketOptions; @@ -58,70 +67,22 @@ public class SocketOptionsFactoryBean implements FactoryBean, Ini return SocketOptions.class; } - /* (non-Javadoc) - * @see org.springframework.beans.factory.DisposableBean#destroy() - */ - @Override - public void destroy() throws Exception { - - connectTimeoutMillis = null; - keepAlive = null; - readTimeoutMillis = null; - reuseAddress = null; - soLinger = null; - tcpNoDelay = null; - receiveBufferSize = null; - sendBufferSize = null; - } - /* (non-Javadoc) * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet() */ @Override public void afterPropertiesSet() throws Exception { - socketOptions = new SocketOptions(); + this.socketOptions = new SocketOptions(); - if (connectTimeoutMillis != null) { - socketOptions.setConnectTimeoutMillis(connectTimeoutMillis); - } - - if (keepAlive != null) { - socketOptions.setKeepAlive(keepAlive); - } - - if (readTimeoutMillis != null) { - socketOptions.setReadTimeoutMillis(readTimeoutMillis); - } - - if (reuseAddress != null) { - socketOptions.setReuseAddress(reuseAddress); - } - - if (soLinger != null) { - socketOptions.setSoLinger(soLinger); - } - - if (tcpNoDelay != null) { - socketOptions.setTcpNoDelay(tcpNoDelay); - } - - if (receiveBufferSize != null) { - socketOptions.setReceiveBufferSize(receiveBufferSize); - } - - if (sendBufferSize != null) { - socketOptions.setSendBufferSize(sendBufferSize); - } - - } - - /* (non-Javadoc) - * @see org.springframework.beans.factory.FactoryBean#isSingleton() - */ - @Override - public boolean isSingleton() { - return true; + Optional.ofNullable(this.connectTimeoutMillis).ifPresent(this.socketOptions::setConnectTimeoutMillis); + Optional.ofNullable(this.readTimeoutMillis).ifPresent(this.socketOptions::setReadTimeoutMillis); + Optional.ofNullable(this.keepAlive).ifPresent(this.socketOptions::setKeepAlive); + Optional.ofNullable(this.reuseAddress).ifPresent(this.socketOptions::setReuseAddress); + Optional.ofNullable(this.soLinger).ifPresent(this.socketOptions::setSoLinger); + Optional.ofNullable(this.tcpNoDelay).ifPresent(this.socketOptions::setTcpNoDelay); + Optional.ofNullable(this.receiveBufferSize).ifPresent(this.socketOptions::setReceiveBufferSize); + Optional.ofNullable(this.sendBufferSize).ifPresent(this.socketOptions::setSendBufferSize); } @Nullable diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraPersistentEntitySchemaDropper.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraPersistentEntitySchemaDropper.java index 1c0b3f1cf..0c5a5dd1f 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraPersistentEntitySchemaDropper.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/CassandraPersistentEntitySchemaDropper.java @@ -68,7 +68,7 @@ public class CassandraPersistentEntitySchemaDropper { this.cassandraAdminOperations.getKeyspaceMetadata().getTables() .stream() .map(AbstractTableMetadata::getName) - .map(CqlIdentifier::cqlId) + .map(CqlIdentifier::of) .filter(table -> dropUnused || this.mappingContext.usesTable(table)) .forEach(this.cassandraAdminOperations::dropTable); } @@ -87,7 +87,7 @@ public class CassandraPersistentEntitySchemaDropper { this.cassandraAdminOperations.getKeyspaceMetadata().getUserTypes().forEach(userType -> { - CqlIdentifier typeName = CqlIdentifier.cqlId(userType.getTypeName()); + CqlIdentifier typeName = CqlIdentifier.of(userType.getTypeName()); if (canRecreate.contains(typeName)) { this.cassandraAdminOperations.dropUserType(typeName); diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraConverter.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraConverter.java index d0c4fe670..c85788544 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraConverter.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraConverter.java @@ -60,7 +60,7 @@ public interface CassandraConverter * * @param object must not be {@literal null}. * @param entity must not be {@literal null}. - * @return + * @return the id value or {@literal null}, if the id is not set. */ @Nullable Object getId(Object object, CassandraPersistentEntity entity); diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraConverters.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraConverters.java index de82dd3ba..85999b6b9 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraConverters.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraConverters.java @@ -50,7 +50,7 @@ abstract class CassandraConverters { /** * Returns the converters to be registered. */ - public static Collection getConvertersToRegister() { + static Collection getConvertersToRegister() { List converters = new ArrayList<>(); diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraJsr310Converters.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraJsr310Converters.java index 9b5e617df..caae285a6 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraJsr310Converters.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/CassandraJsr310Converters.java @@ -18,12 +18,9 @@ package org.springframework.data.cassandra.core.convert; import java.time.LocalDate; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; import org.springframework.core.convert.converter.Converter; -import org.springframework.data.convert.Jsr310Converters; -import org.springframework.util.ClassUtils; /** * Helper class to register JodaTime specific {@link Converter} implementations in case the library is present on the @@ -32,12 +29,8 @@ import org.springframework.util.ClassUtils; * @author Mark Paluch * @since 1.5 */ -@SuppressWarnings("Since15") public abstract class CassandraJsr310Converters { - private static final boolean JAVA_8_IS_PRESENT = ClassUtils.isPresent("java.time.LocalDateTime", - Jsr310Converters.class.getClassLoader()); - private CassandraJsr310Converters() {} /** @@ -47,10 +40,6 @@ public abstract class CassandraJsr310Converters { */ public static Collection> getConvertersToRegister() { - if (!JAVA_8_IS_PRESENT) { - return Collections.emptySet(); - } - List> converters = new ArrayList<>(); converters.add(CassandraLocalDateToLocalDateConverter.INSTANCE); diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/ColumnReader.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/ColumnReader.java index df7d0b5c5..5d00a6bce 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/ColumnReader.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/ColumnReader.java @@ -36,8 +36,8 @@ import com.datastax.driver.core.TypeCodec; */ public class ColumnReader { - protected Row row; - protected ColumnDefinitions columns; + private final Row row; + private final ColumnDefinitions columns; private final CodecRegistry codecRegistry; public ColumnReader(Row row) { @@ -60,8 +60,7 @@ public class ColumnReader { */ @Nullable public Object get(String name) { - int indexOf = getColumnIndex(name); - return get(indexOf); + return get(getColumnIndex(name)); } /** @@ -95,7 +94,7 @@ public class ColumnReader { } @Nullable - public Object getCollection(int i, DataType type) { + private Object getCollection(int i, DataType type) { List collectionTypes = type.getTypeArguments(); @@ -111,7 +110,6 @@ public class ColumnReader { if (type.equals(DataType.set(valueType))) { return row.getSet(i, typeCodec.getJavaType().getRawType()); } - } // Map @@ -158,7 +156,6 @@ public class ColumnReader { * @throws ClassCastException if the value cannot be converted to the requested type. */ @Nullable - @SuppressWarnings("unchecked") public T get(int i, Class requestedType) { Object o = get(i); @@ -167,7 +164,7 @@ public class ColumnReader { return null; } - return (T) o; + return requestedType.cast(o); } private int getColumnIndex(String name) { @@ -178,5 +175,4 @@ public class ColumnReader { } return indexOf; } - } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/MappingCassandraConverter.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/MappingCassandraConverter.java index 79207d540..687111cdc 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/MappingCassandraConverter.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/MappingCassandraConverter.java @@ -152,7 +152,6 @@ public class MappingCassandraConverter extends AbstractCassandraConverter * @param row must not be {@literal null}. * @return the converted valued. */ - @Nullable @SuppressWarnings("unchecked") public R readRow(Class type, Row row) { @@ -268,7 +267,6 @@ public class MappingCassandraConverter extends AbstractCassandraConverter propertyAccessor.setProperty(property, getReadValue(valueProvider, property)); } - @SuppressWarnings("unused") protected Object instantiatePrimaryKey(CassandraPersistentEntity entity, CassandraPersistentProperty keyProperty, CassandraValueProvider propertyProvider) { @@ -293,7 +291,6 @@ public class MappingCassandraConverter extends AbstractCassandraConverter * @see org.springframework.data.cassandra.core.convert.CassandraConverter#convertToColumnType(java.lang.Object) */ @Override - @SuppressWarnings("unchecked") public Object convertToColumnType(Object obj) { return convertToColumnType(obj, ClassTypeInformation.from(obj.getClass())); } @@ -358,7 +355,7 @@ public class MappingCassandraConverter extends AbstractCassandraConverter } } - protected void writeInsertFromObject(Object object, Insert insert, CassandraPersistentEntity entity) { + private void writeInsertFromObject(Object object, Insert insert, CassandraPersistentEntity entity) { writeInsertFromWrapper(getConvertingAccessor(object, entity), insert, entity); } @@ -498,7 +495,6 @@ public class MappingCassandraConverter extends AbstractCassandraConverter } } - @SuppressWarnings("unchecked") private Collection getWhereClauses(Object source, CassandraPersistentEntity entity) { Assert.notNull(source, "Id source must not be null"); @@ -547,6 +543,7 @@ public class MappingCassandraConverter extends AbstractCassandraConverter QueryBuilder.eq(idProperty.getColumnName().toCql(), getPotentiallyConvertedSimpleValue(id, targetType))); } + @Nullable private Object extractId(Object source, CassandraPersistentEntity entity) { if (ClassUtils.isAssignableValue(entity.getType(), source)) { diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/QueryMapper.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/QueryMapper.java index 18015690c..ca65484cf 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/QueryMapper.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/convert/QueryMapper.java @@ -314,7 +314,7 @@ public class QueryMapper { } if (column.getColumnName().isPresent()) { - return column.getColumnName().map(CqlIdentifier::cqlId); + return column.getColumnName().map(CqlIdentifier::of); } return column.getCqlIdentifier(); @@ -324,7 +324,7 @@ public class QueryMapper { } } - protected Field createPropertyField(CassandraPersistentEntity entity, ColumnName key) { + Field createPropertyField(CassandraPersistentEntity entity, ColumnName key) { return Optional.of(entity). map(e -> new MetadataBackedField(key, e, getMappingContext())) .orElseGet(() -> new Field(key)); } @@ -397,9 +397,13 @@ public class QueryMapper { protected static class MetadataBackedField extends Field { private final CassandraPersistentEntity entity; + private final MappingContext, CassandraPersistentProperty> mappingContext; + private final Optional> path; + private final @Nullable CassandraPersistentProperty property; + private final Optional optionalProperty; /** diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/ArgumentPreparedStatementBinder.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/ArgumentPreparedStatementBinder.java index baab58548..7a35099ea 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/ArgumentPreparedStatementBinder.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/ArgumentPreparedStatementBinder.java @@ -36,7 +36,7 @@ public class ArgumentPreparedStatementBinder implements PreparedStatementBinder * * @param args the arguments to set. May be empty or {@link null} if no arguments are provided. */ - public ArgumentPreparedStatementBinder(@Nullable Object[] args) { + public ArgumentPreparedStatementBinder(@Nullable Object... args) { this.args = args; } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlIdentifier.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlIdentifier.java index d1f4d4ee5..7520896dc 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlIdentifier.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlIdentifier.java @@ -58,7 +58,7 @@ public final class CqlIdentifier implements Comparable, Serializa /** * Create a new {@link CqlIdentifier} without force-quoting it. It may end up quoted, depending on its value. * - * @see #cqlId(CharSequence) + * @see #of(CharSequence) */ private CqlIdentifier(CharSequence identifier) { this(identifier, false); @@ -74,8 +74,8 @@ public final class CqlIdentifier implements Comparable, Serializa *
  • If the given identifier is illegal, an {@link IllegalArgumentException} is thrown.
  • * * - * @see #cqlId(CharSequence, boolean) - * @see #quotedCqlId(CharSequence) + * @see #of(CharSequence, boolean) + * @see #quoted(CharSequence) */ private CqlIdentifier(CharSequence identifier, boolean forceQuote) { @@ -102,7 +102,9 @@ public final class CqlIdentifier implements Comparable, Serializa * Factory method for {@link CqlIdentifier}. Convenient if imported statically. * * @see #CqlIdentifier(CharSequence) + * @deprecated since 2.0, use {@link #of(CharSequence)} */ + @Deprecated public static CqlIdentifier cqlId(CharSequence identifier) { return new CqlIdentifier(identifier); } @@ -111,20 +113,50 @@ public final class CqlIdentifier implements Comparable, Serializa * Factory method for {@link CqlIdentifier}. Convenient if imported statically. * * @see #CqlIdentifier(CharSequence, boolean) + * @deprecated since 2.0, use {@link #of(CharSequence, boolean)} */ + @Deprecated public static CqlIdentifier cqlId(CharSequence identifier, boolean forceQuote) { return new CqlIdentifier(identifier, forceQuote); } + /** + * Factory method for {@link CqlIdentifier}. + * + * @since 2.0 + */ + public static CqlIdentifier of(CharSequence identifier) { + return new CqlIdentifier(identifier); + } + + /** + * Factory method for {@link CqlIdentifier}. + * + * @since 2.0 + */ + public static CqlIdentifier of(CharSequence identifier, boolean forceQuote) { + return new CqlIdentifier(identifier, forceQuote); + } + /** * Factory method for a force-quoted {@link CqlIdentifier}. Convenient if imported statically. * * @see #CqlIdentifier(CharSequence, boolean) + * @deprecated since 2.0, use {@link #quoted(CharSequence)}. */ public static CqlIdentifier quotedCqlId(CharSequence identifier) { return new CqlIdentifier(identifier, true); } + /** + * Factory method for a force-quoted {@link CqlIdentifier}. + * + * @since 2.0. + */ + public static CqlIdentifier quoted(CharSequence identifier) { + return new CqlIdentifier(identifier, true); + } + /** * Returns {@code true} if the given {@link CharSequence} is a legal unquoted identifier. */ diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlOperations.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlOperations.java index 8dc44fc0e..15545a45e 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlOperations.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlOperations.java @@ -370,7 +370,6 @@ public interface CqlOperations { * @throws DataAccessException if there is any problem executing the query. * @see #queryForObject(String, Class, Object[]) */ - @Nullable T queryForObject(String cql, Class requiredType) throws DataAccessException; /** @@ -390,7 +389,6 @@ public interface CqlOperations { * @throws DataAccessException if there is any problem executing the query. * @see #queryForObject(String, Class) */ - @Nullable T queryForObject(String cql, Class requiredType, Object... args) throws DataAccessException; /** @@ -614,7 +612,6 @@ public interface CqlOperations { * @throws DataAccessException if there is any problem executing the query. * @see #queryForObject(String, Class, Object[]) */ - @Nullable T queryForObject(Statement statement, Class requiredType) throws DataAccessException; /** @@ -631,7 +628,6 @@ public interface CqlOperations { * @throws DataAccessException if there is any problem executing the query. * @see #queryForObject(String, RowMapper, Object[]) */ - @Nullable T queryForObject(Statement statement, RowMapper rowMapper) throws DataAccessException; /** diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlProvider.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlProvider.java index 8d4d32886..69bfb7227 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlProvider.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlProvider.java @@ -15,8 +15,6 @@ */ package org.springframework.data.cassandra.core.cql; -import org.springframework.lang.Nullable; - /** * Interface to be implemented by objects that can provide CQL strings. *

    @@ -35,8 +33,7 @@ public interface CqlProvider { /** * Return the CQL string for this object, i.e. typically the CQL used for creating statements. * - * @return the CQL string, or {@literal null}. + * @return the CQL string. */ - @Nullable String getCql(); } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlStringUtils.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlStringUtils.java deleted file mode 100644 index 87d69a22a..000000000 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/CqlStringUtils.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright 2017 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * 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. - */ -package org.springframework.data.cassandra.core.cql; - -import org.springframework.lang.Nullable; - -import com.datastax.driver.core.DataType; - -public class CqlStringUtils { - - private static final String DOUBLE_QUOTE = "\""; - private static final String DOUBLE_DOUBLE_QUOTE = "\"\""; - private static final String DOUBLE_SINGLE_QUOTE = "\'\'"; - private static final String SINGLE_QUOTE = "\'"; - private static final String EMPTY_STRING = ""; - private static final String TYPE_PARAMETER_PREFIX = "<"; - private static final String TYPE_PARAMETER_SUFFIX = ">"; - - /** - * Renders the given string as a legal Cassandra string column or table option value, by escaping single quotes and - * encasing the result in single quotes. Given {@literal null}, returns null. - */ - @Nullable - public static String valuize(@Nullable String candidate) { - return (candidate != null ? singleQuote(escapeSingle(candidate)) : null); - } - - /** - * Doubles single quote characters (' -> ''). Given {@literal null}, returns null. - */ - @Nullable - public static String escapeSingle(@Nullable Object thing) { - return (thing == null ? null : thing.toString().replace(SINGLE_QUOTE, DOUBLE_SINGLE_QUOTE)); - } - - /** - * Doubles double quote characters (" -> ""). Given {@literal null}, returns null. - */ - @Nullable - public static String escapeDouble(@Nullable Object thing) { - return (thing == null ? null : thing.toString().replace(DOUBLE_QUOTE, DOUBLE_DOUBLE_QUOTE)); - } - - /** - * Surrounds given object's {@link Object#toString()} with single quotes. Given {@literal null}, returns - * {@literal null}. - */ - @Nullable - public static String singleQuote(@Nullable Object thing) { - return (thing == null ? null : SINGLE_QUOTE.concat(thing.toString()).concat(SINGLE_QUOTE)); - } - - /** - * Surrounds given object's {@link Object#toString()} with double quotes. Given {@literal null}, returns - * {@literal null}. - */ - @Nullable - public static String doubleQuote(@Nullable Object thing) { - return (thing == null ? null : DOUBLE_QUOTE.concat(thing.toString()).concat(DOUBLE_QUOTE)); - } - - /** - * Removed single quotes from quoted String option values - */ - @Nullable - public static String removeSingleQuotes(@Nullable Object thing) { - return (thing == null ? null : thing.toString().replaceAll(SINGLE_QUOTE, EMPTY_STRING)); - } - - /** - * Renders the given {@link DataType} as a CQL string. - * - * @param dataType The {@link DataType} to render; must not be null. - */ - public static String toCql(DataType dataType) { - - if (dataType.getTypeArguments().isEmpty()) { - return dataType.getName().name(); - } - - StringBuilder builder = new StringBuilder(); - - builder.append(dataType.getName().name()).append(TYPE_PARAMETER_PREFIX); - - boolean first = true; - - for (DataType argDataType : dataType.getTypeArguments()) { - - if (first) { - first = false; - } else { - builder.append(','); - } - - builder.append(argDataType.getName().name()); - } - - return builder.append(TYPE_PARAMETER_SUFFIX).toString(); - } - - @Nullable - public static String unquote(@Nullable String value) { - return unquote(value, "\""); - } - - @Nullable - public static String unquote(@Nullable String value, String quoteChar) { - - if (value == null) { - return null; - } - - if (!value.startsWith(quoteChar) || !value.endsWith(quoteChar)) { - return value; - } - - if (value.length() <= 2) { - return value; - } - - return value.substring(1, value.length() - 1); - } -} diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/Ordering.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/Ordering.java index 202f1cd08..c7d64bf2a 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/Ordering.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/Ordering.java @@ -15,15 +15,13 @@ */ package org.springframework.data.cassandra.core.cql; -import java.util.Comparator; - /** - * Enum for Cassandra primary key column ordering. Implements {@link Comparator} in that {@link Ordering#ASCENDING} is - * ordered before {@link Ordering#DESCENDING}. + * Enum for Cassandra primary key column ordering. * * @author Matthew T. Adams + * @author Mark Paluch */ -public enum Ordering implements Comparator { +public enum Ordering { /** * Ascending Cassandra column ordering. @@ -47,18 +45,4 @@ public enum Ordering implements Comparator { public String cql() { return cql; } - - @Override - public int compare(Ordering l, Ordering r) { - if (l == r) { - return 0; - } - if (l == null) { - return 1; - } - if (r == null) { - return -1; - } - return (l == ASCENDING && r == DESCENDING) ? 1 : -1; - } } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/PrimaryKeyType.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/PrimaryKeyType.java index 763fecea2..a381a984c 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/PrimaryKeyType.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/PrimaryKeyType.java @@ -15,16 +15,14 @@ */ package org.springframework.data.cassandra.core.cql; -import java.util.Comparator; - /** - * Values representing primary key column types. Implements {@link Comparator} in that - * {@link PrimaryKeyType#PARTITIONED} is ordered before {@link PrimaryKeyType#CLUSTERED}. + * Values representing primary key column types. * * @author Matthew T. Adams * @author Alex Shvid + * @author Mark Paluch */ -public enum PrimaryKeyType implements Comparator { +public enum PrimaryKeyType { /** * Used for a column that is part of the partition key. @@ -34,19 +32,5 @@ public enum PrimaryKeyType implements Comparator { /** * Used for a column that is clustered key. */ - CLUSTERED; - - @Override - public int compare(PrimaryKeyType l, PrimaryKeyType r) { - if (l == r) { - return 0; - } - if (l == null) { - return 1; - } - if (r == null) { - return -1; - } - return l == PARTITIONED && r == CLUSTERED ? 1 : -1; - } + CLUSTERED } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/RowUtils.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/RowUtils.java index c5facca1c..a957f296f 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/RowUtils.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/RowUtils.java @@ -35,6 +35,8 @@ import com.datastax.driver.core.UDTValue; */ public abstract class RowUtils { + private RowUtils() {} + /** * Retrieve a CQL column value from a {@link Row}, using the specified value type. *

    diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/ColumnChangeCqlGenerator.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/ColumnChangeCqlGenerator.java index ed9b98ea2..151e2851f 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/ColumnChangeCqlGenerator.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/ColumnChangeCqlGenerator.java @@ -22,13 +22,14 @@ import org.springframework.util.Assert; * Base class for column change CQL generators. * * @author Matthew T. Adams + * @author Mark Paluch * @param The corresponding {@link ColumnChangeSpecification} type for this CQL generator. */ public abstract class ColumnChangeCqlGenerator { public abstract StringBuilder toCql(StringBuilder cql); - private ColumnChangeSpecification specification; + private final ColumnChangeSpecification specification; public ColumnChangeCqlGenerator(ColumnChangeSpecification specification) { @@ -36,12 +37,6 @@ public abstract class ColumnChangeCqlGenerator> { - public abstract StringBuilder toCql(StringBuilder cql); - private final IndexNameSpecification specification; public IndexNameCqlGenerator(IndexNameSpecification specification) { @@ -51,4 +49,6 @@ public abstract class IndexNameCqlGenerator> public String toCql() { return toCql(new StringBuilder()).toString(); } + + public abstract StringBuilder toCql(StringBuilder cql); } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/KeyspaceNameCqlGenerator.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/KeyspaceNameCqlGenerator.java index c617069d3..d80d9f3a7 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/KeyspaceNameCqlGenerator.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/KeyspaceNameCqlGenerator.java @@ -26,8 +26,6 @@ import org.springframework.util.Assert; */ public abstract class KeyspaceNameCqlGenerator { - public abstract StringBuilder toCql(StringBuilder cql); - private final KeyspaceActionSpecification specification; public KeyspaceNameCqlGenerator(KeyspaceActionSpecification specification) { @@ -51,4 +49,6 @@ public abstract class KeyspaceNameCqlGenerator valueMap) { diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/TableNameCqlGenerator.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/TableNameCqlGenerator.java index 98102b0e1..77d963b12 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/TableNameCqlGenerator.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/TableNameCqlGenerator.java @@ -34,8 +34,6 @@ public abstract class TableNameCqlGenerator { this.specification = specification; } - public abstract StringBuilder toCql(StringBuilder cql); - @SuppressWarnings("unchecked") public T getSpecification() { return (T) specification; @@ -51,4 +49,6 @@ public abstract class TableNameCqlGenerator { public String toCql() { return toCql(new StringBuilder()).toString(); } + + public abstract StringBuilder toCql(StringBuilder cql); } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/UserTypeNameCqlGenerator.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/UserTypeNameCqlGenerator.java index f2b794c2e..50f501532 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/UserTypeNameCqlGenerator.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/generator/UserTypeNameCqlGenerator.java @@ -43,8 +43,6 @@ public abstract class UserTypeNameCqlGeneratornull. + */ + @Nullable + public static String escapeSingle(@Nullable Object thing) { + return (thing == null ? null : thing.toString().replace(SINGLE_QUOTE, DOUBLE_SINGLE_QUOTE)); + } + + /** + * Surrounds given object's {@link Object#toString()} with single quotes. Given {@literal null}, returns + * {@literal null}. + */ + @Nullable + public static String singleQuote(@Nullable Object thing) { + return (thing == null ? null : SINGLE_QUOTE.concat(thing.toString()).concat(SINGLE_QUOTE)); + } +} diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/CreateIndexSpecification.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/CreateIndexSpecification.java index 8a15a6e9c..d65eaf05a 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/CreateIndexSpecification.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/CreateIndexSpecification.java @@ -37,18 +37,18 @@ import org.springframework.util.StringUtils; public class CreateIndexSpecification extends IndexNameSpecification implements IndexDescriptor { - private boolean ifNotExists = false; - - private boolean custom = false; - private @Nullable CqlIdentifier tableName; private @Nullable CqlIdentifier columnName; + private boolean ifNotExists = false; + private ColumnFunction columnFunction = ColumnFunction.NONE; private @Nullable String using; + private boolean custom = false; + private final Map options = new LinkedHashMap<>(); private CreateIndexSpecification() {} @@ -73,7 +73,7 @@ public class CreateIndexSpecification extends IndexNameSpecification newSimpleReplication(long replicationFactor) { + return MapBuilder.map(Option.class, Object.class) .entry(new DefaultOption("class", String.class, true, false, true), ReplicationStrategy.SIMPLE_STRATEGY.getValue()) @@ -71,11 +75,6 @@ public class KeyspaceAttributes { return builder.build(); } - private ReplicationStrategy replicationStrategy = DEFAULT_REPLICATION_STRATEGY; - private long replicationFactor = DEFAULT_REPLICATION_FACTOR; - private boolean durableWrites = DEFAULT_DURABLE_WRITES; - private Map replicasPerNodeByDataCenter = new HashMap<>(); - public ReplicationStrategy getReplicationStrategy() { return replicationStrategy; } @@ -99,8 +98,4 @@ public class KeyspaceAttributes { public void setDurableWrites(boolean durableWrites) { this.durableWrites = durableWrites; } - - public void addReplicasPerNode(String dataCenter, long replicasPerNode) { - replicasPerNodeByDataCenter.put(dataCenter, replicasPerNode); - } } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/KeyspaceOption.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/KeyspaceOption.java index b1881e462..dc9e4d530 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/KeyspaceOption.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/KeyspaceOption.java @@ -17,6 +17,8 @@ package org.springframework.data.cassandra.core.cql.keyspace; import java.util.Map; +import org.springframework.lang.Nullable; + public enum KeyspaceOption implements Option { REPLICATION("replication", Map.class, true, false, false), @@ -65,7 +67,7 @@ public enum KeyspaceOption implements Option { return delegate.toString(); } - public String toString(Object value) { + public String toString(@Nullable Object value) { return delegate.toString(value); } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/KeyspaceOptionsSpecification.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/KeyspaceOptionsSpecification.java index f0ad12bf9..810ee7ddb 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/KeyspaceOptionsSpecification.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/KeyspaceOptionsSpecification.java @@ -15,7 +15,7 @@ */ package org.springframework.data.cassandra.core.cql.keyspace; -import static org.springframework.data.cassandra.core.cql.CqlStringUtils.*; +import static org.springframework.data.cassandra.core.cql.keyspace.CqlStringUtils.*; import lombok.EqualsAndHashCode; @@ -23,7 +23,6 @@ import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; -import org.springframework.data.cassandra.core.cql.CqlStringUtils; import org.springframework.data.cassandra.core.cql.KeyspaceIdentifier; import org.springframework.lang.Nullable; diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/RenameColumnSpecification.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/RenameColumnSpecification.java index 0e99094e9..855ebe46d 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/RenameColumnSpecification.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/RenameColumnSpecification.java @@ -15,8 +15,6 @@ */ package org.springframework.data.cassandra.core.cql.keyspace; -import static org.springframework.data.cassandra.core.cql.CqlIdentifier.*; - import org.springframework.data.cassandra.core.cql.CqlIdentifier; import org.springframework.util.Assert; @@ -31,16 +29,6 @@ public class RenameColumnSpecification extends ColumnChangeSpecification { private final CqlIdentifier targetName; - /** - * Create a new {@link ColumnChangeSpecification}. - * - * @param from must not be {@literal null} or empty. - * @param to must not be {@literal null} or empty. - */ - RenameColumnSpecification(String from, String to) { - this(cqlId(from), cqlId(to)); - } - /** * Create a new {@link ColumnChangeSpecification}. * 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 311f485e5..0fce5bf33 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 @@ -17,6 +17,8 @@ package org.springframework.data.cassandra.core.cql.keyspace; import java.util.Map; +import org.springframework.lang.Nullable; + /** * Enumeration that represents all known table options. If a table option is not listed here, but is supported by * Cassandra, use the method {@link CreateTableSpecification#with(String, Object, boolean, boolean)} to write the raw @@ -124,7 +126,7 @@ public enum TableOption implements Option { } @Override - public String toString(Object value) { + public String toString(@Nullable Object value) { return this.delegate.toString(value); } @@ -219,7 +221,7 @@ public enum TableOption implements Option { } @Override - public String toString(Object value) { + public String toString(@Nullable Object value) { return this.delegate.toString(value); } @@ -321,7 +323,7 @@ public enum TableOption implements Option { } @Override - public String toString(Object value) { + public String toString(@Nullable Object value) { return this.delegate.toString(value); } } @@ -398,7 +400,7 @@ public enum TableOption implements Option { } @Override - public String toString(Object value) { + public String toString(@Nullable Object value) { return this.delegate.toString(value); } } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/TableOptionsSpecification.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/TableOptionsSpecification.java index 5c06fdd7a..2ec9950eb 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/TableOptionsSpecification.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/cql/keyspace/TableOptionsSpecification.java @@ -15,14 +15,13 @@ */ package org.springframework.data.cassandra.core.cql.keyspace; -import static org.springframework.data.cassandra.core.cql.CqlStringUtils.*; +import static org.springframework.data.cassandra.core.cql.keyspace.CqlStringUtils.*; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import org.springframework.data.cassandra.core.cql.CqlIdentifier; -import org.springframework.data.cassandra.core.cql.CqlStringUtils; import org.springframework.lang.Nullable; /** 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 ff4f0308e..d150105cb 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 @@ -72,7 +72,7 @@ public class TableSpecification extends TableOptionsSpecification extends TableOptionsSpecification extends TableOptionsSpecification extends TableOptionsSpecification extends TableOptionsSpecification> extends U * @return {@code this} specification. */ public T field(String name, DataType type) { - return field(cqlId(name), type); + return field(of(name), type); } /** diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/BasicCassandraPersistentEntity.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/BasicCassandraPersistentEntity.java index 525bb371f..4c21e65cc 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/BasicCassandraPersistentEntity.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/BasicCassandraPersistentEntity.java @@ -91,20 +91,20 @@ public class BasicCassandraPersistentEntity extends BasicPersistentEntity String.format("Cannot determine default name for %s", this)); - return cqlId(name, forceQuote); + return of(name, forceQuote); } /* (non-Javadoc) @@ -171,7 +171,7 @@ public class BasicCassandraPersistentEntity extends BasicPersistentEntity { /** * Comparator instance. */ - INSTANCE, - - /** - * @deprecated as of 1.5, use {@link #INSTANCE} - */ - @Deprecated - IT; + INSTANCE; @Override public int compare(Column left, Column right) { diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraMappingContext.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraMappingContext.java index e3cb2aeb7..77649a95d 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraMappingContext.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraMappingContext.java @@ -119,7 +119,7 @@ public class CassandraMappingContext String entityTableName = entityMapping.getTableName(); if (StringUtils.hasText(entityTableName)) { - entity.setTableName(cqlId(entityTableName, Boolean.valueOf(entityMapping.getForceQuote()))); + entity.setTableName(of(entityTableName, Boolean.valueOf(entityMapping.getForceQuote()))); } processMappingOverrides(entity, entityMapping); @@ -150,7 +150,7 @@ public class CassandraMappingContext property.setForceQuote(forceQuote); if (StringUtils.hasText(mapping.getColumnName())) { - property.setColumnName(cqlId(mapping.getColumnName(), forceQuote)); + property.setColumnName(of(mapping.getColumnName(), forceQuote)); } } @@ -354,7 +354,7 @@ public class CassandraMappingContext return getPersistentEntities().stream().flatMap(entity -> StreamSupport.stream(entity.spliterator(), false)) .flatMap(it -> Optionals.toStream(Optional.ofNullable(it.findAnnotation(CassandraType.class)))) - .map(CassandraType::userTypeName).filter(StringUtils::hasText).map(CqlIdentifier::cqlId) + .map(CassandraType::userTypeName).filter(StringUtils::hasText).map(CqlIdentifier::of) .anyMatch(identifier::equals); } diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraPersistentPropertyComparator.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraPersistentPropertyComparator.java index f9a612d87..a002abfbd 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraPersistentPropertyComparator.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraPersistentPropertyComparator.java @@ -42,13 +42,7 @@ public enum CassandraPersistentPropertyComparator implements Comparator @@ -32,9 +29,6 @@ import org.springframework.data.cassandra.core.cql.PrimaryKeyType; * @author Matthew T. Adams * @author John Blum * @author Mark Paluch - * @see PrimaryKeyType#compare(PrimaryKeyType, PrimaryKeyType) - * @see Ordering#compare(Ordering, Ordering) - * @see java.util.Comparator * @see org.springframework.data.cassandra.core.mapping.PrimaryKeyColumn */ public enum CassandraPrimaryKeyColumnAnnotationComparator implements Comparator { @@ -42,13 +36,7 @@ public enum CassandraPrimaryKeyColumnAnnotationComparator implements Comparator< /** * Comparator instance. */ - INSTANCE, - - /** - * @deprecated as of 1.5, use {@link #INSTANCE} - */ - @Deprecated - IT; + INSTANCE; /* (non-Javadoc) * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) @@ -58,7 +46,7 @@ public enum CassandraPrimaryKeyColumnAnnotationComparator implements Comparator< int comparison = left.type().compareTo(right.type()); - comparison = (comparison != 0 ? comparison : Integer.valueOf(left.ordinal()).compareTo(right.ordinal())); + comparison = (comparison != 0 ? comparison : Integer.compare(left.ordinal(), right.ordinal())); comparison = (comparison != 0 ? comparison : left.name().compareTo(right.name())); comparison = (comparison != 0 ? comparison : left.ordering().compareTo(right.ordering())); diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraSimpleTypeHolder.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraSimpleTypeHolder.java index e3a88f7d3..1216e719b 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraSimpleTypeHolder.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/CassandraSimpleTypeHolder.java @@ -44,9 +44,13 @@ import com.google.common.reflect.TypeToken; */ public class CassandraSimpleTypeHolder extends SimpleTypeHolder { + /** + * Set of Cassandra simple types. + */ public static final Set> CASSANDRA_SIMPLE_TYPES; private static final Map, DataType> classToDataType; + private static final Map nameToDataType; static { @@ -146,17 +150,18 @@ public class CassandraSimpleTypeHolder extends SimpleTypeHolder { * Returns the {@link DataType} for a {@link DataType.Name}. * * @param name must not be {@literal null}. - * @return + * @return the {@link DataType} for {@link DataType.Name}. */ public static DataType getDataTypeFor(DataType.Name name) { return nameToDataType.get(name); } /** - * Returns the default {@link DataType} for a {@link Class}. + * Returns the default {@link DataType} for a {@link Class}. This method resolves only simple types to a Cassandra + * {@link DataType}. Other types are resolved to {@literal null}. * * @param javaClass must not be {@literal null}. - * @return + * @return the {@link DataType} for {@code javaClass} if resolvable, otherwise {@literal null}. */ @Nullable public static DataType getDataTypeFor(Class javaClass) { diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/PropertyMapping.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/PropertyMapping.java index afd8083ed..9926b9913 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/PropertyMapping.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/PropertyMapping.java @@ -15,9 +15,10 @@ */ package org.springframework.data.cassandra.core.mapping; +import lombok.EqualsAndHashCode; + import org.springframework.lang.Nullable; import org.springframework.util.Assert; -import org.springframework.util.ObjectUtils; /** * Mapping between a persistent entity's property and its column. @@ -25,6 +26,7 @@ import org.springframework.util.ObjectUtils; * @author Matthew T. Adams * @author John Blum */ +@EqualsAndHashCode public class PropertyMapping { private @Nullable String columnName; @@ -77,39 +79,6 @@ public class PropertyMapping { return propertyName; } - /* (non-Javadoc) - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - - if (!(obj instanceof PropertyMapping)) { - return false; - } - - PropertyMapping that = (PropertyMapping) obj; - - return ObjectUtils.nullSafeEquals(this.getPropertyName(), that.getPropertyName()) - && ObjectUtils.nullSafeEquals(this.getColumnName(), that.getColumnName()) - && ObjectUtils.nullSafeEquals(this.getForceQuote(), that.getForceQuote()); - } - - /* (non-Javadoc) - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - - int hashValue = 17; - hashValue = 37 * hashValue + ObjectUtils.nullSafeHashCode(this.getPropertyName()); - hashValue = 37 * hashValue + ObjectUtils.nullSafeHashCode(this.getColumnName()); - hashValue = 37 * hashValue + ObjectUtils.nullSafeHashCode(this.getForceQuote()); - return hashValue; - } - /* (non-Javadoc) * @see java.lang.Object#toString() */ diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/SimpleUserTypeResolver.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/SimpleUserTypeResolver.java index e80f0eb36..eca93ef21 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/SimpleUserTypeResolver.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/SimpleUserTypeResolver.java @@ -33,6 +33,7 @@ import com.datastax.driver.core.UserType; public class SimpleUserTypeResolver implements UserTypeResolver { private final String keyspaceName; + private final Cluster cluster; /** diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/UserTypeUtil.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/UserTypeUtil.java index e0e89bec5..5c7f63564 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/UserTypeUtil.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/mapping/UserTypeUtil.java @@ -85,10 +85,10 @@ class UserTypeUtil { private static CqlIdentifier getTypeName(DataType dataType) { if (dataType instanceof UserType) { - return CqlIdentifier.cqlId(((UserType) dataType).getTypeName()); + return CqlIdentifier.of(((UserType) dataType).getTypeName()); } - return cqlId(dataType.asFunctionParameterString()); + return of(dataType.asFunctionParameterString()); } private static boolean isNonFrozenUdt(DataType dataType) { diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Columns.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Columns.java index 96c90d194..f04e528b9 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Columns.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/core/query/Columns.java @@ -355,7 +355,7 @@ public class Columns implements Iterable { * @return the aliased {@link ColumnSelector}. */ public ColumnSelector as(String alias) { - return as(CqlIdentifier.cqlId(alias)); + return as(CqlIdentifier.of(alias)); } /** @@ -421,7 +421,7 @@ public class Columns implements Iterable { * @return the aliased {@link ColumnSelector}. */ public FunctionCall as(String alias) { - return as(CqlIdentifier.cqlId(alias)); + return as(CqlIdentifier.of(alias)); } /** diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/query/AbstractCassandraQuery.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/query/AbstractCassandraQuery.java index cc4a0664e..889d1da08 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/query/AbstractCassandraQuery.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/repository/query/AbstractCassandraQuery.java @@ -17,21 +17,12 @@ package org.springframework.data.cassandra.repository.query; import lombok.RequiredArgsConstructor; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; import java.util.Map; -import java.util.Set; -import java.util.SortedSet; -import java.util.TreeSet; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.converter.Converter; import org.springframework.data.cassandra.core.CassandraOperations; -import org.springframework.data.cassandra.core.convert.CassandraConverter; import org.springframework.data.cassandra.repository.query.CassandraQueryExecution.CollectionExecution; import org.springframework.data.cassandra.repository.query.CassandraQueryExecution.ResultProcessingConverter; import org.springframework.data.cassandra.repository.query.CassandraQueryExecution.ResultProcessingExecution; @@ -48,8 +39,6 @@ import org.springframework.lang.Nullable; import org.springframework.util.Assert; import org.springframework.util.ClassUtils; -import com.datastax.driver.core.ResultSet; -import com.datastax.driver.core.Row; import com.datastax.driver.core.Statement; /** @@ -85,27 +74,8 @@ public abstract class AbstractCassandraQuery implements RepositoryQuery { this.instantiators = new EntityInstantiators(); } - /** - * @deprecated as of 1.5, {@link org.springframework.data.cassandra.core.mapping.CassandraMappingContext} handles type - * conversion. - */ - @Deprecated - public void setConversionService(ConversionService conversionService) { - throw new UnsupportedOperationException("setConversionService(ConversionService) is not supported anymore. " - + "Please use CassandraMappingContext instead"); - } - - /** - * @deprecated as of 1.5, {@link org.springframework.data.cassandra.core.mapping.CassandraMappingContext} handles type - * conversion. - */ - @Deprecated - public ConversionService getConversionService() { - return getOperations().getConverter().getConversionService(); - } - /* (non-Javadoc) */ - protected EntityInstantiators getEntityInstantiators() { + private EntityInstantiators getEntityInstantiators() { return this.instantiators; } @@ -169,84 +139,6 @@ public abstract class AbstractCassandraQuery implements RepositoryQuery { } } - /** - * Creates a string query using the given {@link ParameterAccessor}. - * - * @param resultSet - * @param declaredReturnType - * @param returnedUnwrappedObjectType - * @return - * @deprecated as of 1.5, {@link org.springframework.data.cassandra.core.mapping.CassandraMappingContext} handles type - * conversion. - */ - @Deprecated - public Object getCollectionOfEntity(ResultSet resultSet, Class declaredReturnType, - Class returnedUnwrappedObjectType) { - - Collection results; - - if (ClassUtils.isAssignable(SortedSet.class, declaredReturnType)) { - results = new TreeSet<>(); - } else if (ClassUtils.isAssignable(Set.class, declaredReturnType)) { - results = new HashSet<>(); - } else { // List.class, Collection.class, or array - results = new ArrayList<>(); - } - - CassandraConverter converter = getOperations().getConverter(); - - for (Row row : resultSet) { - results.add(converter.read(returnedUnwrappedObjectType, row)); - } - - return results; - } - - /** - * @param resultSet - * @param type - * @return - * @deprecated as of 1.5, {@link org.springframework.data.cassandra.core.mapping.CassandraMappingContext} handles type - * conversion. - */ - @Deprecated - public Object getSingleEntity(ResultSet resultSet, Class type) { - - Object result = (resultSet.isExhausted() ? null : getOperations().getConverter().read(type, resultSet.one())); - - warnIfMoreResults(resultSet); - - return result; - } - - private void warnIfMoreResults(ResultSet resultSet) { - - if (log.isWarnEnabled() && !resultSet.isExhausted()) { - int count = 0; - - while (resultSet.one() != null) { - count++; - } - - log.warn("ignoring extra {} row{}", count, count == 1 ? "" : "s"); - } - } - - @Deprecated - protected void warnIfMoreResults(Iterator iterator) { - - if (log.isWarnEnabled() && iterator.hasNext()) { - int count = 0; - - while (iterator.hasNext()) { - count++; - iterator.next(); - } - - log.warn("ignoring extra {} row{}", count, count == 1 ? "" : "s"); - } - } - /** * Creates a {@link Statement} using the given {@link ParameterAccessor} * diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/CassandraAdminTemplateIntegrationTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/CassandraAdminTemplateIntegrationTests.java index 3bb488e3a..53e815207 100755 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/CassandraAdminTemplateIntegrationTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/CassandraAdminTemplateIntegrationTests.java @@ -64,24 +64,24 @@ public class CassandraAdminTemplateIntegrationTests extends AbstractKeyspaceCrea assertThat(getKeyspaceMetadata().getTables()).hasSize(0); - cassandraAdminTemplate.createTable(true, CqlIdentifier.cqlId("users"), User.class, null); + cassandraAdminTemplate.createTable(true, CqlIdentifier.of("users"), User.class, null); assertThat(getKeyspaceMetadata().getTables()).hasSize(1); - cassandraAdminTemplate.createTable(true, CqlIdentifier.cqlId("users"), User.class, null); + cassandraAdminTemplate.createTable(true, CqlIdentifier.of("users"), User.class, null); assertThat(getKeyspaceMetadata().getTables()).hasSize(1); } @Test public void testDropTable() { - cassandraAdminTemplate.createTable(true, CqlIdentifier.cqlId("users"), User.class, null); + cassandraAdminTemplate.createTable(true, CqlIdentifier.of("users"), User.class, null); assertThat(getKeyspaceMetadata().getTables()).hasSize(1); cassandraAdminTemplate.dropTable(User.class); assertThat(getKeyspaceMetadata().getTables()).hasSize(0); - cassandraAdminTemplate.createTable(true, CqlIdentifier.cqlId("users"), User.class, null); - cassandraAdminTemplate.dropTable(CqlIdentifier.cqlId("users")); + cassandraAdminTemplate.createTable(true, CqlIdentifier.of("users"), User.class, null); + cassandraAdminTemplate.dropTable(CqlIdentifier.of("users")); assertThat(getKeyspaceMetadata().getTables()).hasSize(0); } diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/CassandraPersistentEntitySchemaDropperUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/CassandraPersistentEntitySchemaDropperUnitTests.java index b4e681541..f651ec0fa 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/CassandraPersistentEntitySchemaDropperUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/CassandraPersistentEntitySchemaDropperUnitTests.java @@ -84,9 +84,9 @@ public class CassandraPersistentEntitySchemaDropperUnitTests { schemaDropper.dropUserTypes(true); - verify(operations).dropUserType(CqlIdentifier.cqlId("universetype")); - verify(operations).dropUserType(CqlIdentifier.cqlId("moontype")); - verify(operations).dropUserType(CqlIdentifier.cqlId("planettype")); + verify(operations).dropUserType(CqlIdentifier.of("universetype")); + verify(operations).dropUserType(CqlIdentifier.of("moontype")); + verify(operations).dropUserType(CqlIdentifier.of("planettype")); verify(operations).getKeyspaceMetadata(); verifyNoMoreInteractions(operations); } @@ -104,8 +104,8 @@ public class CassandraPersistentEntitySchemaDropperUnitTests { schemaDropper.dropUserTypes(false); - verify(operations).dropUserType(CqlIdentifier.cqlId("universetype")); - verify(operations).dropUserType(CqlIdentifier.cqlId("moontype")); + verify(operations).dropUserType(CqlIdentifier.of("universetype")); + verify(operations).dropUserType(CqlIdentifier.of("moontype")); verify(operations).getKeyspaceMetadata(); verifyNoMoreInteractions(operations); } @@ -123,8 +123,8 @@ public class CassandraPersistentEntitySchemaDropperUnitTests { schemaDropper.dropTables(true); - verify(operations).dropTable(CqlIdentifier.cqlId("person")); - verify(operations).dropTable(CqlIdentifier.cqlId("contact")); + verify(operations).dropTable(CqlIdentifier.of("person")); + verify(operations).dropTable(CqlIdentifier.of("contact")); verify(operations).getKeyspaceMetadata(); verifyNoMoreInteractions(operations); } @@ -142,7 +142,7 @@ public class CassandraPersistentEntitySchemaDropperUnitTests { schemaDropper.dropTables(false); - verify(operations).dropTable(CqlIdentifier.cqlId("person")); + verify(operations).dropTable(CqlIdentifier.of("person")); verify(operations).getKeyspaceMetadata(); verifyNoMoreInteractions(operations); } diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/ColumnReaderUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/ColumnReaderUnitTests.java index 8b04eaf4e..8a3e0f86f 100755 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/ColumnReaderUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/ColumnReaderUnitTests.java @@ -71,7 +71,7 @@ public class ColumnReaderUnitTests { when(columnDefinitions.getIndexOf(NON_EXISTENT_COLUMN)).thenReturn(-1); try { - underTest.get(CqlIdentifier.cqlId(NON_EXISTENT_COLUMN)); + underTest.get(CqlIdentifier.of(NON_EXISTENT_COLUMN)); fail("Expected illegal argument exception"); } catch (IllegalArgumentException e) { assertThat(e.getMessage()).isEqualTo("Column does not exist in Cassandra table: " + NON_EXISTENT_COLUMN); @@ -84,7 +84,7 @@ public class ColumnReaderUnitTests { when(columnDefinitions.getIndexOf(NON_EXISTENT_COLUMN)).thenReturn(-1); try { - underTest.get(CqlIdentifier.cqlId(NON_EXISTENT_COLUMN), String.class); + underTest.get(CqlIdentifier.of(NON_EXISTENT_COLUMN), String.class); fail("Expected illegal argument exception"); } catch (IllegalArgumentException e) { assertThat(e.getMessage()).isEqualTo("Column does not exist in Cassandra table: " + NON_EXISTENT_COLUMN); diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/MappingCassandraConverterUDTIntegrationTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/MappingCassandraConverterUDTIntegrationTests.java index b43060dfa..e6946f345 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/MappingCassandraConverterUDTIntegrationTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/MappingCassandraConverterUDTIntegrationTests.java @@ -492,7 +492,7 @@ public class MappingCassandraConverterUDTIntegrationTests extends AbstractSpring @Override public UDTValue convert(Currency source) { - UserType userType = userTypeResolver.resolveType(CqlIdentifier.cqlId("currency")); + UserType userType = userTypeResolver.resolveType(CqlIdentifier.of("currency")); UDTValue udtValue = userType.newValue(); udtValue.setString("currency", source.getCurrencyCode()); return udtValue; diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/QueryMapperUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/QueryMapperUnitTests.java index 205c09f96..94f7c1418 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/QueryMapperUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/convert/QueryMapperUnitTests.java @@ -221,7 +221,7 @@ public class QueryMapperUnitTests { CriteriaDefinition mappedCriteriaDefinition = mappedObject.iterator().next(); - assertThat(mappedCriteriaDefinition.getColumnName()).isEqualTo(ColumnName.from(CqlIdentifier.cqlId("first_name"))); + assertThat(mappedCriteriaDefinition.getColumnName()).isEqualTo(ColumnName.from(CqlIdentifier.of("first_name"))); assertThat(mappedCriteriaDefinition.getColumnName().toString()).isEqualTo("first_name"); } diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/CqlIdentifierUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/CqlIdentifierUnitTests.java index 1b045e7ca..4d5b48c4d 100755 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/CqlIdentifierUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/CqlIdentifierUnitTests.java @@ -34,7 +34,7 @@ public class CqlIdentifierUnitTests { String[] ids = new String[] { "foo", "Foo", "FOO", "a_", "a1" }; for (String id : ids) { - CqlIdentifier cqlId = cqlId(id); + CqlIdentifier cqlId = of(id); assertThat(cqlId.isQuoted()).isFalse(); assertThat(cqlId.toCql()).isEqualTo(id.toLowerCase()); } @@ -46,7 +46,7 @@ public class CqlIdentifierUnitTests { String[] ids = new String[] { "foo", "Foo", "FOO", "a_", "a1" }; for (String id : ids) { - CqlIdentifier cqlId = quotedCqlId(id); + CqlIdentifier cqlId = quoted(id); assertThat(cqlId.isQuoted()).isTrue(); assertThat(cqlId.toCql()).isEqualTo("\"" + id + "\""); } @@ -56,11 +56,11 @@ public class CqlIdentifierUnitTests { public void testReservedWordsEndUpQuoted() { for (ReservedKeyword id : ReservedKeyword.values()) { - CqlIdentifier cqlId = cqlId(id.name()); + CqlIdentifier cqlId = of(id.name()); assertThat(cqlId.isQuoted()).isTrue(); assertThat(cqlId.toCql()).isEqualTo("\"" + id.name() + "\""); - cqlId = cqlId(id.name().toLowerCase()); + cqlId = of(id.name().toLowerCase()); assertThat(cqlId.isQuoted()).isTrue(); assertThat(cqlId.toCql()).isEqualTo("\"" + id.name().toLowerCase() + "\""); } @@ -71,7 +71,7 @@ public class CqlIdentifierUnitTests { String[] illegals = new String[] { null, "", "a ", "a a", "a\"", "a'", "a''", "\"\"", "''", "-", "a-", "_", "_a" }; for (String illegal : illegals) { try { - cqlId(illegal); + of(illegal); fail(String.format("identifier [%s] should have caused IllegalArgumentException", illegal)); } catch (IllegalArgumentException x) { // :) diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/generator/CqlTableSpecificationAssertions.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/generator/CqlTableSpecificationAssertions.java index 23746c933..14aeb7e8c 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/generator/CqlTableSpecificationAssertions.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/generator/CqlTableSpecificationAssertions.java @@ -22,8 +22,8 @@ import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.data.cassandra.core.cql.CqlStringUtils; import org.springframework.data.cassandra.core.cql.keyspace.ColumnSpecification; +import org.springframework.data.cassandra.core.cql.keyspace.CqlStringUtils; import org.springframework.data.cassandra.core.cql.keyspace.DropTableSpecification; import org.springframework.data.cassandra.core.cql.keyspace.TableDescriptor; import org.springframework.data.cassandra.core.cql.keyspace.TableOption; diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/generator/CreateTableCqlGeneratorUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/generator/CreateTableCqlGeneratorUnitTests.java index 4e19635d0..a61ff0f4c 100755 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/generator/CreateTableCqlGeneratorUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/cql/generator/CreateTableCqlGeneratorUnitTests.java @@ -120,9 +120,9 @@ public class CreateTableCqlGeneratorUnitTests { public static class BasicTest extends CreateTableTest { - public CqlIdentifier name = cqlId("mytable"); + public CqlIdentifier name = of("mytable"); public DataType partitionKeyType0 = DataType.text(); - public CqlIdentifier partitionKey0 = cqlId("partitionKey0"); + public CqlIdentifier partitionKey0 = of("partitionKey0"); public DataType columnType1 = DataType.text(); public String column1 = "column1"; @@ -144,12 +144,12 @@ public class CreateTableCqlGeneratorUnitTests { public static class CompositePartitionKeyTest extends CreateTableTest { - public CqlIdentifier name = cqlId("composite_partition_key_table"); + public CqlIdentifier name = of("composite_partition_key_table"); public DataType partKeyType0 = DataType.text(); - public CqlIdentifier partKey0 = cqlId("partKey0"); + public CqlIdentifier partKey0 = of("partKey0"); public DataType partKeyType1 = DataType.text(); - public CqlIdentifier partKey1 = cqlId("partKey1"); - public CqlIdentifier column0 = cqlId("column0"); + public CqlIdentifier partKey1 = of("partKey1"); + public CqlIdentifier column0 = of("column0"); public DataType columnType0 = DataType.text(); @Override @@ -177,13 +177,13 @@ public class CreateTableCqlGeneratorUnitTests { */ public static class ReadRepairChanceTest extends CreateTableTest { - public CqlIdentifier name = cqlId("mytable"); + public CqlIdentifier name = of("mytable"); public DataType partitionKeyType0 = DataType.text(); - public CqlIdentifier partitionKey0 = cqlId("partitionKey0"); + public CqlIdentifier partitionKey0 = of("partitionKey0"); public DataType partitionKeyType1 = DataType.timestamp(); - public CqlIdentifier partitionKey1 = cqlId("create_timestamp"); + public CqlIdentifier partitionKey1 = of("create_timestamp"); public DataType columnType1 = DataType.text(); - public CqlIdentifier column1 = cqlId("column1"); + public CqlIdentifier column1 = of("column1"); public Double readRepairChance = 0.5; @Override @@ -212,13 +212,13 @@ public class CreateTableCqlGeneratorUnitTests { */ public static class MultipleOptionsTest extends CreateTableTest { - public CqlIdentifier name = cqlId("timeseries_table"); + public CqlIdentifier name = of("timeseries_table"); public DataType partitionKeyType0 = DataType.timeuuid(); - public CqlIdentifier partitionKey0 = cqlId("tid"); + public CqlIdentifier partitionKey0 = of("tid"); public DataType partitionKeyType1 = DataType.timestamp(); - public CqlIdentifier partitionKey1 = cqlId("create_timestamp"); + public CqlIdentifier partitionKey1 = of("create_timestamp"); public DataType columnType1 = DataType.text(); - public CqlIdentifier column1 = cqlId("data_point"); + public CqlIdentifier column1 = of("data_point"); public Double readRepairChance = 0.5; public Double dcLocalReadRepairChance = 0.7; public Double bloomFilterFpChance = 0.001; @@ -306,7 +306,7 @@ public class CreateTableCqlGeneratorUnitTests { @Override public CreateTableSpecification specification() { - return CreateTableSpecification.createTable(tableName).partitionKeyColumn(cqlId("pk"), DataType.text()); + return CreateTableSpecification.createTable(tableName).partitionKeyColumn(of("pk"), DataType.text()); } /** @@ -315,7 +315,7 @@ public class CreateTableCqlGeneratorUnitTests { */ public void test() { prepare(); - assertPreamble(cqlId(tableName), cql); + assertPreamble(of(tableName), cql); } } } diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/BasicCassandraPersistentEntityUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/BasicCassandraPersistentEntityUnitTests.java index 64f6e8dd7..ab0820e8c 100755 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/BasicCassandraPersistentEntityUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/BasicCassandraPersistentEntityUnitTests.java @@ -89,7 +89,7 @@ public class BasicCassandraPersistentEntityUnitTests { DirectFieldAccessor dfa = new DirectFieldAccessor(entitySpy); - entitySpy.setTableName(CqlIdentifier.cqlId("Messages", false)); + entitySpy.setTableName(CqlIdentifier.of("Messages", false)); assertThat((Optional) dfa.getPropertyValue("forceQuote")).isNotPresent(); @@ -129,7 +129,7 @@ public class BasicCassandraPersistentEntityUnitTests { BasicCassandraPersistentEntity entity = new BasicCassandraPersistentEntity<>( ClassTypeInformation.from(TableWithComposedAnnotation.class)); - assertThat(entity.getTableName()).isEqualTo(CqlIdentifier.cqlId("mytable", true)); + assertThat(entity.getTableName()).isEqualTo(CqlIdentifier.of("mytable", true)); } @Test // DATACASS-259 diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/BasicCassandraPersistentPropertyUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/BasicCassandraPersistentPropertyUnitTests.java index 5f8b12253..c9f33c0b0 100755 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/BasicCassandraPersistentPropertyUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/BasicCassandraPersistentPropertyUnitTests.java @@ -15,7 +15,7 @@ */ package org.springframework.data.cassandra.core.mapping; -import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.*; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -24,7 +24,6 @@ import java.util.Date; import java.util.UUID; import org.junit.Test; - import org.springframework.core.annotation.AliasFor; import org.springframework.data.cassandra.core.cql.CqlIdentifier; import org.springframework.data.mapping.model.Property; @@ -64,7 +63,7 @@ public class BasicCassandraPersistentPropertyUnitTests { CassandraPersistentProperty persistentProperty = getPropertyFor(TypeWithComposedColumnAnnotation.class, "column"); - assertThat(persistentProperty.getColumnName()).isEqualTo(CqlIdentifier.cqlId("mycolumn", true)); + assertThat(persistentProperty.getColumnName()).isEqualTo(CqlIdentifier.of("mycolumn", true)); } @Test // DATACASS-259 @@ -73,7 +72,7 @@ public class BasicCassandraPersistentPropertyUnitTests { CassandraPersistentProperty persistentProperty = getPropertyFor(TypeWithComposedPrimaryKeyAnnotation.class, "column"); - assertThat(persistentProperty.getColumnName()).isEqualTo(CqlIdentifier.cqlId("primary-key", true)); + assertThat(persistentProperty.getColumnName()).isEqualTo(CqlIdentifier.of("primary-key", true)); assertThat(persistentProperty.isIdProperty()).isTrue(); } @@ -83,7 +82,7 @@ public class BasicCassandraPersistentPropertyUnitTests { CassandraPersistentProperty persistentProperty = getPropertyFor(TypeWithComposedPrimaryKeyColumnAnnotation.class, "column"); - assertThat(persistentProperty.getColumnName()).isEqualTo(CqlIdentifier.cqlId("mycolumn", true)); + assertThat(persistentProperty.getColumnName()).isEqualTo(CqlIdentifier.of("mycolumn", true)); assertThat(persistentProperty.isPrimaryKeyColumn()).isTrue(); } diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CassandraMappingContextUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CassandraMappingContextUnitTests.java index 2795b8fe5..5afb48338 100755 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CassandraMappingContextUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CassandraMappingContextUnitTests.java @@ -81,7 +81,7 @@ public class CassandraMappingContextUnitTests { assertThat(mappingContext.getUserDefinedTypeEntities()).isEmpty(); assertThat(mappingContext.getTableEntities()).hasSize(1); assertThat(mappingContext.getPersistentEntities()).hasSize(1); - assertThat(mappingContext.usesTable(CqlIdentifier.cqlId(tableMetadata.getName()))).isTrue(); + assertThat(mappingContext.usesTable(CqlIdentifier.of(tableMetadata.getName()))).isTrue(); } @Test // DATACASS-248 @@ -309,15 +309,15 @@ public class CassandraMappingContextUnitTests { CreateIndexSpecification firstname = getSpecificationFor("first_name", specifications); - assertThat(firstname.getColumnName()).isEqualTo(CqlIdentifier.cqlId("first_name")); - assertThat(firstname.getTableName()).isEqualTo(CqlIdentifier.cqlId("indexedtype")); - assertThat(firstname.getName()).isEqualTo(CqlIdentifier.cqlId("my_index")); + assertThat(firstname.getColumnName()).isEqualTo(CqlIdentifier.of("first_name")); + assertThat(firstname.getTableName()).isEqualTo(CqlIdentifier.of("indexedtype")); + assertThat(firstname.getName()).isEqualTo(CqlIdentifier.of("my_index")); assertThat(firstname.getColumnFunction()).isEqualTo(ColumnFunction.NONE); CreateIndexSpecification phoneNumbers = getSpecificationFor("phoneNumbers", specifications); - assertThat(phoneNumbers.getColumnName()).isEqualTo(CqlIdentifier.cqlId("phoneNumbers")); - assertThat(phoneNumbers.getTableName()).isEqualTo(CqlIdentifier.cqlId("indexedtype")); + assertThat(phoneNumbers.getColumnName()).isEqualTo(CqlIdentifier.of("phoneNumbers")); + assertThat(phoneNumbers.getTableName()).isEqualTo(CqlIdentifier.of("indexedtype")); assertThat(phoneNumbers.getName()).isNull(); assertThat(phoneNumbers.getColumnFunction()).isEqualTo(ColumnFunction.NONE); } @@ -330,16 +330,16 @@ public class CassandraMappingContextUnitTests { CreateIndexSpecification entries = getSpecificationFor("last_name", specifications); - assertThat(entries.getColumnName()).isEqualTo(CqlIdentifier.cqlId("last_name")); - assertThat(entries.getTableName()).isEqualTo(CqlIdentifier.cqlId("compositekeyentity")); - assertThat(entries.getName()).isEqualTo(CqlIdentifier.cqlId("my_index")); + assertThat(entries.getColumnName()).isEqualTo(CqlIdentifier.of("last_name")); + assertThat(entries.getTableName()).isEqualTo(CqlIdentifier.of("compositekeyentity")); + assertThat(entries.getName()).isEqualTo(CqlIdentifier.of("my_index")); assertThat(entries.getColumnFunction()).isEqualTo(ColumnFunction.NONE); } private static CreateIndexSpecification getSpecificationFor(String column, List specifications) { - return specifications.stream().filter(it -> it.getColumnName().equals(CqlIdentifier.cqlId(column))).findFirst() + return specifications.stream().filter(it -> it.getColumnName().equals(CqlIdentifier.of(column))).findFirst() .orElseThrow(() -> new NoSuchElementException(column)); } @@ -446,7 +446,7 @@ public class CassandraMappingContextUnitTests { @Test // DATACASS-172, DATACASS-455 public void usesTypeShouldNotReportTypeUsage() { - assertThat(mappingContext.usesUserType(CqlIdentifier.cqlId("mappedudt"))).isFalse(); + assertThat(mappingContext.usesUserType(CqlIdentifier.of("mappedudt"))).isFalse(); } @Test // DATACASS-172, DATACASS-455 @@ -458,7 +458,7 @@ public class CassandraMappingContextUnitTests { mappingContext.getRequiredPersistentEntity(WithUdt.class); - assertThat(mappingContext.usesUserType(CqlIdentifier.cqlId("mappedudt"))).isTrue(); + assertThat(mappingContext.usesUserType(CqlIdentifier.of("mappedudt"))).isTrue(); } @Test // DATACASS-172, DATACASS-455 @@ -470,7 +470,7 @@ public class CassandraMappingContextUnitTests { mappingContext.getRequiredPersistentEntity(MappedUdt.class); - assertThat(mappingContext.usesUserType(CqlIdentifier.cqlId("mappedudt"))).isTrue(); + assertThat(mappingContext.usesUserType(CqlIdentifier.of("mappedudt"))).isTrue(); } @Test // DATACASS-172 @@ -518,7 +518,7 @@ public class CassandraMappingContextUnitTests { assertThat(mappingContext.getUserDefinedTypeEntities()).isEmpty(); assertThat(mappingContext.getTableEntities()).isEmpty(); assertThat(mappingContext.getPersistentEntities()).isEmpty(); - assertThat(mappingContext.usesTable(CqlIdentifier.cqlId(tableMetadata.getName()))).isFalse(); + assertThat(mappingContext.usesTable(CqlIdentifier.of(tableMetadata.getName()))).isFalse(); } @Table diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CassandraPersistentPropertyComparatorUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CassandraPersistentPropertyComparatorUnitTests.java index 3e7ac07e2..c9073f984 100755 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CassandraPersistentPropertyComparatorUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CassandraPersistentPropertyComparatorUnitTests.java @@ -160,8 +160,8 @@ public class CassandraPersistentPropertyComparatorUnitTests { when(left.isPrimaryKeyColumn()).thenReturn(true); when(right.isCompositePrimaryKey()).thenReturn(true); when(right.isPrimaryKeyColumn()).thenReturn(false); - when(left.getColumnName()).thenReturn(CqlIdentifier.cqlId("left")); - when(right.getColumnName()).thenReturn(CqlIdentifier.cqlId("right")); + when(left.getColumnName()).thenReturn(CqlIdentifier.of("left")); + when(right.getColumnName()).thenReturn(CqlIdentifier.of("right")); assertThat(INSTANCE.compare(left, right)).isLessThan(0); diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CassandraUserTypePersistentEntityUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CassandraUserTypePersistentEntityUnitTests.java index c1c86a7ac..1b0ac002b 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CassandraUserTypePersistentEntityUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CassandraUserTypePersistentEntityUnitTests.java @@ -53,8 +53,8 @@ public class CassandraUserTypePersistentEntityUnitTests { CassandraUserTypePersistentEntity type = getEntity(MappedUdt.class); - assertThat(type.getTableName()).isEqualTo(CqlIdentifier.cqlId("mappedudt")); - assertThat(type.getTableName()).isEqualTo(CqlIdentifier.cqlId("Mappedudt")); + assertThat(type.getTableName()).isEqualTo(CqlIdentifier.of("mappedudt")); + assertThat(type.getTableName()).isEqualTo(CqlIdentifier.of("Mappedudt")); } @Test // DATACASS-172 @@ -62,8 +62,8 @@ public class CassandraUserTypePersistentEntityUnitTests { CassandraUserTypePersistentEntity type = getEntity(WithName.class); - assertThat(type.getTableName()).isEqualTo(CqlIdentifier.cqlId("withname")); - assertThat(type.getTableName()).isEqualTo(CqlIdentifier.cqlId("Withname")); + assertThat(type.getTableName()).isEqualTo(CqlIdentifier.of("withname")); + assertThat(type.getTableName()).isEqualTo(CqlIdentifier.of("Withname")); } @Test // DATACASS-172 @@ -71,8 +71,8 @@ public class CassandraUserTypePersistentEntityUnitTests { CassandraUserTypePersistentEntity type = getEntity(WithForceQuote.class); - assertThat(type.getTableName()).isNotEqualTo(CqlIdentifier.cqlId("upperCase", true)); - assertThat(type.getTableName()).isEqualTo(CqlIdentifier.cqlId("UpperCase", true)); + assertThat(type.getTableName()).isNotEqualTo(CqlIdentifier.of("upperCase", true)); + assertThat(type.getTableName()).isEqualTo(CqlIdentifier.of("UpperCase", true)); } @Test // DATACASS-259 @@ -80,7 +80,7 @@ public class CassandraUserTypePersistentEntityUnitTests { CassandraUserTypePersistentEntity type = getEntity(TypeWithComposedAnnotation.class); - assertThat(type.getTableName()).isEqualTo(CqlIdentifier.cqlId("mytype", true)); + assertThat(type.getTableName()).isEqualTo(CqlIdentifier.of("mytype", true)); } private CassandraUserTypePersistentEntity getEntity(Class entityClass) { diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CreateTableSpecificationBasicCassandraMappingContextUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CreateTableSpecificationBasicCassandraMappingContextUnitTests.java index 0057f2a11..dd335c075 100755 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CreateTableSpecificationBasicCassandraMappingContextUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/CreateTableSpecificationBasicCassandraMappingContextUnitTests.java @@ -312,7 +312,7 @@ public class CreateTableSpecificationBasicCassandraMappingContextUnitTests { private ColumnSpecification getColumn(String columnName, CreateTableSpecification specification) { for (ColumnSpecification columnSpecification : specification.getColumns()) { - if (columnSpecification.getName().equals(CqlIdentifier.cqlId(columnName))) { + if (columnSpecification.getName().equals(CqlIdentifier.of(columnName))) { return columnSpecification; } } diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/ForceQuotedPropertiesSimpleUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/ForceQuotedPropertiesSimpleUnitTests.java index 849054106..2171c019c 100755 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/ForceQuotedPropertiesSimpleUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/ForceQuotedPropertiesSimpleUnitTests.java @@ -108,9 +108,9 @@ public class ForceQuotedPropertiesSimpleUnitTests { CassandraPersistentProperty stringOne = key.getRequiredPersistentProperty("stringOne"); assertThat(stringZero.getColumnName().toCql()).isEqualTo("\"stringZero\""); - assertThat(stringZero.getColumnName()).isEqualTo(quotedCqlId("stringZero")); + assertThat(stringZero.getColumnName()).isEqualTo(quoted("stringZero")); assertThat(stringOne.getColumnName().toCql()).isEqualTo("\"stringOne\""); - assertThat(stringOne.getColumnName()).isEqualTo(quotedCqlId("stringOne")); + assertThat(stringOne.getColumnName()).isEqualTo(quoted("stringOne")); } @PrimaryKeyClass @@ -139,8 +139,8 @@ public class ForceQuotedPropertiesSimpleUnitTests { CassandraPersistentProperty stringZero = key.getRequiredPersistentProperty("stringZero"); CassandraPersistentProperty stringOne = key.getRequiredPersistentProperty("stringOne"); - assertThat(stringZero.getColumnName()).isEqualTo(CqlIdentifier.cqlId("stringZero")); - assertThat(stringOne.getColumnName()).isEqualTo(CqlIdentifier.cqlId("stringOne")); + assertThat(stringZero.getColumnName()).isEqualTo(CqlIdentifier.of("stringZero")); + assertThat(stringOne.getColumnName()).isEqualTo(CqlIdentifier.of("stringOne")); assertThat(stringZero.getColumnName().toCql()).isEqualTo("stringzero"); assertThat(stringOne.getColumnName().toCql()).isEqualTo("stringone"); } @@ -172,8 +172,8 @@ public class ForceQuotedPropertiesSimpleUnitTests { CassandraPersistentProperty stringOne = key.getRequiredPersistentProperty("stringOne"); assertThat(stringZero.getColumnName()) // - .isEqualTo(CqlIdentifier.cqlId("TheFirstKeyField", true)) // - .isNotEqualTo(CqlIdentifier.cqlId("TheFirstKeyField")); + .isEqualTo(CqlIdentifier.of("TheFirstKeyField", true)) // + .isNotEqualTo(CqlIdentifier.of("TheFirstKeyField")); assertThat(stringZero.getColumnName().toCql()).isEqualTo("\"" + EXPLICIT_KEY_0 + "\""); assertThat(stringOne.getColumnName().toCql()).isEqualTo("\"" + EXPLICIT_KEY_1 + "\""); diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/IndexSpecificationFactoryUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/IndexSpecificationFactoryUnitTests.java index 90106b42b..6b150be7d 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/IndexSpecificationFactoryUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/mapping/IndexSpecificationFactoryUnitTests.java @@ -15,13 +15,12 @@ */ package org.springframework.data.cassandra.core.mapping; -import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.*; import java.util.List; import java.util.Map; import org.junit.Test; - import org.springframework.data.annotation.AccessType; import org.springframework.data.annotation.AccessType.Type; import org.springframework.data.cassandra.core.cql.CqlIdentifier; @@ -45,14 +44,14 @@ public class IndexSpecificationFactoryUnitTests { CreateIndexSpecification firstname = createIndexFor(IndexedType.class, "firstname"); - assertThat(firstname.getColumnName()).isEqualTo(CqlIdentifier.cqlId("first_name")); + assertThat(firstname.getColumnName()).isEqualTo(CqlIdentifier.of("first_name")); assertThat(firstname.getTableName()).isNull(); - assertThat(firstname.getName()).isEqualTo(CqlIdentifier.cqlId("my_index")); + assertThat(firstname.getName()).isEqualTo(CqlIdentifier.of("my_index")); assertThat(firstname.getColumnFunction()).isEqualTo(ColumnFunction.NONE); CreateIndexSpecification entries = createIndexFor(IndexedType.class, "entries"); - assertThat(entries.getColumnName()).isEqualTo(CqlIdentifier.cqlId("entries")); + assertThat(entries.getColumnName()).isEqualTo(CqlIdentifier.of("entries")); assertThat(entries.getTableName()).isNull(); assertThat(entries.getName()).isNull(); assertThat(entries.getColumnFunction()).isEqualTo(ColumnFunction.ENTRIES); @@ -63,7 +62,7 @@ public class IndexSpecificationFactoryUnitTests { CreateIndexSpecification entries = createIndexFor(IndexedMapKeyProperty.class, "entries"); - assertThat(entries.getColumnName()).isEqualTo(CqlIdentifier.cqlId("entries")); + assertThat(entries.getColumnName()).isEqualTo(CqlIdentifier.of("entries")); assertThat(entries.getTableName()).isNull(); assertThat(entries.getName()).isNull(); assertThat(entries.getColumnFunction()).isEqualTo(ColumnFunction.KEYS); @@ -74,7 +73,7 @@ public class IndexSpecificationFactoryUnitTests { CreateIndexSpecification entries = createIndexFor(MapValueIndexProperty.class, "entries"); - assertThat(entries.getColumnName()).isEqualTo(CqlIdentifier.cqlId("entries")); + assertThat(entries.getColumnName()).isEqualTo(CqlIdentifier.of("entries")); assertThat(entries.getTableName()).isNull(); assertThat(entries.getName()).isNull(); assertThat(entries.getColumnFunction()).isEqualTo(ColumnFunction.VALUES); @@ -85,7 +84,7 @@ public class IndexSpecificationFactoryUnitTests { CreateIndexSpecification simpleSasi = createIndexFor(IndexedType.class, "simpleSasi"); - assertThat(simpleSasi.getColumnName()).isEqualTo(CqlIdentifier.cqlId("simplesasi")); + assertThat(simpleSasi.getColumnName()).isEqualTo(CqlIdentifier.of("simplesasi")); assertThat(simpleSasi.getTableName()).isNull(); assertThat(simpleSasi.isCustom()).isTrue(); assertThat(simpleSasi.getUsing()).isEqualTo("org.apache.cassandra.index.sasi.SASIIndex"); diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/query/ColumnNameUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/query/ColumnNameUnitTests.java index a6fa7e936..4813737ff 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/query/ColumnNameUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/query/ColumnNameUnitTests.java @@ -46,10 +46,10 @@ public class ColumnNameUnitTests { @Test // DATACASS-343 public void cqlBasedShouldEqual() { - ColumnName first = ColumnName.from(CqlIdentifier.cqlId("foo")); - ColumnName second = ColumnName.from(CqlIdentifier.cqlId("Foo")); + ColumnName first = ColumnName.from(CqlIdentifier.of("foo")); + ColumnName second = ColumnName.from(CqlIdentifier.of("Foo")); - ColumnName different = ColumnName.from(CqlIdentifier.cqlId("Foo", true)); + ColumnName different = ColumnName.from(CqlIdentifier.of("Foo", true)); assertThat(first).isEqualTo(second); assertThat(first.equals(second)).isTrue(); @@ -64,8 +64,8 @@ public class ColumnNameUnitTests { public void stringAndCqlComparisonShouldEqual() { ColumnName first = ColumnName.from("foo"); - ColumnName second = ColumnName.from(CqlIdentifier.cqlId("foo")); - ColumnName different = ColumnName.from(CqlIdentifier.cqlId("one", true)); + ColumnName second = ColumnName.from(CqlIdentifier.of("foo")); + ColumnName different = ColumnName.from(CqlIdentifier.of("one", true)); assertThat(first).isEqualTo(second); assertThat(first.equals(second)).isTrue(); diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/query/ColumnsUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/query/ColumnsUnitTests.java index 909b6d040..e5a5f2761 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/query/ColumnsUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/core/query/ColumnsUnitTests.java @@ -54,7 +54,7 @@ public class ColumnsUnitTests { @Test // DATACASS-343 public void shouldCreateFromCqlIdentifiers() { - Columns columns = Columns.from(CqlIdentifier.cqlId("Foo", true), CqlIdentifier.cqlId("bar")); + Columns columns = Columns.from(CqlIdentifier.of("Foo", true), CqlIdentifier.of("bar")); assertThat(columns.toString()).contains("\"Foo\"").contains("bar"); } diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/conversion/ParameterConversionTestSupport.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/conversion/ParameterConversionTestSupport.java index 8f24e241b..7d57a955c 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/conversion/ParameterConversionTestSupport.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/conversion/ParameterConversionTestSupport.java @@ -167,7 +167,7 @@ abstract class ParameterConversionTestSupport extends AbstractSpringDataEmbedded public UDTValue convert(Phone source) { - UserType userType = userTypeResolver.resolveType(CqlIdentifier.cqlId("phone")); + UserType userType = userTypeResolver.resolveType(CqlIdentifier.of("phone")); UDTValue udtValue = userType.newValue(); udtValue.setString("number", source.getNumber()); diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/query/PartTreeCassandraQueryUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/query/PartTreeCassandraQueryUnitTests.java index 5811df0e2..6b2f86952 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/query/PartTreeCassandraQueryUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/query/PartTreeCassandraQueryUnitTests.java @@ -134,7 +134,7 @@ public class PartTreeCassandraQueryUnitTests { @Test // DATACASS-172 public void shouldDeriveSimpleQueryWithMappedUDT() { - when(userTypeResolverMock.resolveType(CqlIdentifier.cqlId("address"))).thenReturn(userTypeMock); + when(userTypeResolverMock.resolveType(CqlIdentifier.of("address"))).thenReturn(userTypeMock); when(userTypeMock.newValue()).thenReturn(udtValueMock); String query = deriveQueryFromMethod("findByMainAddress", new AddressType()); diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/query/StringBasedCassandraQueryUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/query/StringBasedCassandraQueryUnitTests.java index cc3820a2e..75c022c33 100755 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/query/StringBasedCassandraQueryUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/query/StringBasedCassandraQueryUnitTests.java @@ -310,7 +310,7 @@ public class StringBasedCassandraQueryUnitTests { UserType addressType = UserTypeBuilder.forName("address").withField("city", DataType.varchar()) .withField("country", DataType.varchar()).build(); - when(userTypeResolver.resolveType(CqlIdentifier.cqlId("address"))).thenReturn(addressType); + when(userTypeResolver.resolveType(CqlIdentifier.of("address"))).thenReturn(addressType); StringBasedCassandraQuery cassandraQuery = getQueryMethod("findByMainAddress", AddressType.class); CassandraParameterAccessor accessor = new ConvertingParameterAccessor(converter, diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/support/SimpleCassandraRepositoryUnitTests.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/support/SimpleCassandraRepositoryUnitTests.java index 6d6295800..38bd4fd67 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/support/SimpleCassandraRepositoryUnitTests.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/repository/support/SimpleCassandraRepositoryUnitTests.java @@ -70,7 +70,7 @@ public class SimpleCassandraRepositoryUnitTests { when(cassandraOperations.getConverter()).thenReturn(converter); when(cassandraOperations.getCqlOperations()).thenReturn(cqlOperations); - when(userTypeResolver.resolveType(CqlIdentifier.cqlId("address"))).thenReturn(userType); + when(userTypeResolver.resolveType(CqlIdentifier.of("address"))).thenReturn(userType); } @Test // DATACASS-428 diff --git a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/support/UserTypeBuilder.java b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/support/UserTypeBuilder.java index 8ae29a570..fb127f155 100644 --- a/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/support/UserTypeBuilder.java +++ b/spring-data-cassandra/src/test/java/org/springframework/data/cassandra/support/UserTypeBuilder.java @@ -41,7 +41,7 @@ public class UserTypeBuilder { } public static UserTypeBuilder forName(String typeName) { - return forName(CqlIdentifier.cqlId(typeName)); + return forName(CqlIdentifier.of(typeName)); } public static UserTypeBuilder forName(CqlIdentifier typeName) {