diff --git a/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/AlterKeyspaceSpecification.java b/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/AlterKeyspaceSpecification.java index 9898d98a2..dcaa537b8 100644 --- a/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/AlterKeyspaceSpecification.java +++ b/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/AlterKeyspaceSpecification.java @@ -1,5 +1,5 @@ package org.springframework.cassandra.core.keyspace; -public class AlterKeyspaceSpecification extends KeyspaceSpecification { +public class AlterKeyspaceSpecification extends KeyspaceOptionsSpecification { } diff --git a/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/CreateKeyspaceSpecification.java b/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/CreateKeyspaceSpecification.java index 08ca26625..c62e8411a 100644 --- a/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/CreateKeyspaceSpecification.java +++ b/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/CreateKeyspaceSpecification.java @@ -2,4 +2,29 @@ package org.springframework.cassandra.core.keyspace; public class CreateKeyspaceSpecification extends KeyspaceSpecification { + private boolean ifNotExists = false; + + /** + * Causes the inclusion of an IF NOT EXISTS clause. + * + * @return this + */ + public CreateKeyspaceSpecification ifNotExists() { + return ifNotExists(true); + } + + /** + * Toggles the inclusion of an IF NOT EXISTS clause. + * + * @return this + */ + public CreateKeyspaceSpecification ifNotExists(boolean ifNotExists) { + this.ifNotExists = ifNotExists; + return this; + } + + public boolean getIfNotExists() { + return ifNotExists; + } + } diff --git a/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/DropKeyspaceSpecification.java b/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/DropKeyspaceSpecification.java index 020b15c9c..6bda160c7 100644 --- a/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/DropKeyspaceSpecification.java +++ b/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/DropKeyspaceSpecification.java @@ -2,4 +2,19 @@ package org.springframework.cassandra.core.keyspace; public class DropKeyspaceSpecification extends KeyspaceNameSpecification { + private boolean ifExists; + + public DropKeyspaceSpecification ifExists() { + return ifExists(true); + } + + public DropKeyspaceSpecification ifExists(boolean ifExists) { + this.ifExists = ifExists; + return this; + } + + public boolean getIfExists() { + return ifExists; + } + } diff --git a/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/KeyspaceOptionsSpecification.java b/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/KeyspaceOptionsSpecification.java index 650c384a9..574e166a6 100644 --- a/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/KeyspaceOptionsSpecification.java +++ b/spring-cassandra/src/main/java/org/springframework/cassandra/core/keyspace/KeyspaceOptionsSpecification.java @@ -22,10 +22,12 @@ import org.springframework.cassandra.core.cql.CqlStringUtils; * @author John McPeek * @param The subtype of the {@link KeyspaceOptionsSpecification}. */ -public abstract class KeyspaceOptionsSpecification> extends KeyspaceNameSpecification { +public abstract class KeyspaceOptionsSpecification> extends + KeyspaceNameSpecification> { protected Map options = new LinkedHashMap(); + @SuppressWarnings( "unchecked" ) public T name(String name) { return (T) super.name(name); }