From 1cc85fa68e0f094df41b189d5b597fabdd2cef84 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 5 Jul 2016 09:19:39 +0200 Subject: [PATCH] DATACASS-305 - Polishing. Add generics to list of specifications. Extract CQL generation in own method. Add author tag. Original pull request: #70. --- .../CassandraCqlClusterFactoryBean.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/spring-cql/src/main/java/org/springframework/cassandra/config/CassandraCqlClusterFactoryBean.java b/spring-cql/src/main/java/org/springframework/cassandra/config/CassandraCqlClusterFactoryBean.java index fd03da4aa..f183ffca6 100644 --- a/spring-cql/src/main/java/org/springframework/cassandra/config/CassandraCqlClusterFactoryBean.java +++ b/spring-cql/src/main/java/org/springframework/cassandra/config/CassandraCqlClusterFactoryBean.java @@ -63,6 +63,7 @@ import com.datastax.driver.core.policies.RetryPolicy; * @author Jorge Davison * @author John Blum * @author Mark Paluch + * @author Stefan Birkner * @see org.springframework.beans.factory.InitializingBean * @see org.springframework.beans.factory.DisposableBean * @see org.springframework.beans.factory.FactoryBean @@ -267,20 +268,18 @@ public class CassandraCqlClusterFactoryBean } } - protected void executeSpecsAndScripts(@SuppressWarnings("rawtypes") List specs, List scripts) { + protected void executeSpecsAndScripts(List> specifications, List scripts) { + + if (!CollectionUtils.isEmpty(specifications) || !CollectionUtils.isEmpty(scripts)) { - if (!CollectionUtils.isEmpty(specs) || !CollectionUtils.isEmpty(scripts)) { Session session = cluster.connect(); try { + CqlTemplate template = new CqlTemplate(session); - for (Object spec : specs) { - String cql = (spec instanceof CreateKeyspaceSpecification) - ? new CreateKeyspaceCqlGenerator((CreateKeyspaceSpecification) spec).toCql() - : new DropKeyspaceCqlGenerator((DropKeyspaceSpecification) spec).toCql(); - - template.execute(cql); + for (KeyspaceActionSpecification spec : specifications) { + template.execute(toCql(spec)); } for (String script : scripts) { @@ -294,6 +293,15 @@ public class CassandraCqlClusterFactoryBean } } + private String toCql(KeyspaceActionSpecification spec) { + + if(spec instanceof CreateKeyspaceSpecification) { + return new CreateKeyspaceCqlGenerator((CreateKeyspaceSpecification) spec).toCql(); + } + + return new DropKeyspaceCqlGenerator((DropKeyspaceSpecification) spec).toCql(); + } + /** * Set a comma-delimited string of the contact points (hosts) to connect to. Default is {@code localhost}, see * {@link #DEFAULT_CONTACT_POINTS}.