diff --git a/src/main/java/org/springframework/cassandra/core/cql/builder/AbstractTableOperationCqlGenerator.java b/src/main/java/org/springframework/cassandra/core/cql/generator/AbstractTableOperationCqlGenerator.java similarity index 88% rename from src/main/java/org/springframework/cassandra/core/cql/builder/AbstractTableOperationCqlGenerator.java rename to src/main/java/org/springframework/cassandra/core/cql/generator/AbstractTableOperationCqlGenerator.java index b958e89db..89b94bf5f 100644 --- a/src/main/java/org/springframework/cassandra/core/cql/builder/AbstractTableOperationCqlGenerator.java +++ b/src/main/java/org/springframework/cassandra/core/cql/generator/AbstractTableOperationCqlGenerator.java @@ -1,4 +1,4 @@ -package org.springframework.cassandra.core.cql.builder; +package org.springframework.cassandra.core.cql.generator; import static org.springframework.cassandra.core.cql.CqlStringUtils.escapeSingle; import static org.springframework.cassandra.core.cql.CqlStringUtils.noNull; @@ -11,14 +11,14 @@ import org.springframework.cassandra.core.keyspace.Option; import org.springframework.util.Assert; /** - * Base class that contains behavior common to table operations. + * Base class that contains behavior common to CQL generation for table operations. * * @author Matthew T. Adams - * @param T The subtype of AbstractTableSpecification for which this is a CQL generator. + * @param T The subtype of this class for which this is a CQL generator. */ public abstract class AbstractTableOperationCqlGenerator> { - protected abstract StringBuilder toCql(StringBuilder cql); + public abstract StringBuilder toCql(StringBuilder cql); private AbstractTableSpecification specification; diff --git a/src/main/java/org/springframework/cassandra/core/cql/builder/AddColumnCqlGenerator.java b/src/main/java/org/springframework/cassandra/core/cql/generator/AddColumnCqlGenerator.java similarity index 72% rename from src/main/java/org/springframework/cassandra/core/cql/builder/AddColumnCqlGenerator.java rename to src/main/java/org/springframework/cassandra/core/cql/generator/AddColumnCqlGenerator.java index 72c8b529b..e64d1acf7 100644 --- a/src/main/java/org/springframework/cassandra/core/cql/builder/AddColumnCqlGenerator.java +++ b/src/main/java/org/springframework/cassandra/core/cql/generator/AddColumnCqlGenerator.java @@ -1,16 +1,20 @@ -package org.springframework.cassandra.core.cql.builder; +package org.springframework.cassandra.core.cql.generator; import static org.springframework.cassandra.core.cql.CqlStringUtils.noNull; import org.springframework.cassandra.core.keyspace.AddColumnSpecification; +/** + * CQL generator for generating an ADD clause of an ALTER TABLE statement. + * + * @author Matthew T. Adams + */ public class AddColumnCqlGenerator extends ColumnChangeCqlGenerator { public AddColumnCqlGenerator(AddColumnSpecification specification) { super(specification); } - @Override public StringBuilder toCql(StringBuilder cql) { return noNull(cql).append("ADD ").append(spec().getNameAsIdentifier()).append(" TYPE ") .append(spec().getType().getName()); diff --git a/src/main/java/org/springframework/cassandra/core/cql/builder/AlterColumnCqlGenerator.java b/src/main/java/org/springframework/cassandra/core/cql/generator/AlterColumnCqlGenerator.java similarity index 72% rename from src/main/java/org/springframework/cassandra/core/cql/builder/AlterColumnCqlGenerator.java rename to src/main/java/org/springframework/cassandra/core/cql/generator/AlterColumnCqlGenerator.java index 8f6db5a44..51759379e 100644 --- a/src/main/java/org/springframework/cassandra/core/cql/builder/AlterColumnCqlGenerator.java +++ b/src/main/java/org/springframework/cassandra/core/cql/generator/AlterColumnCqlGenerator.java @@ -1,9 +1,14 @@ -package org.springframework.cassandra.core.cql.builder; +package org.springframework.cassandra.core.cql.generator; import static org.springframework.cassandra.core.cql.CqlStringUtils.noNull; import org.springframework.cassandra.core.keyspace.AlterColumnSpecification; +/** + * CQL generator for generating an ALTER column clause of an ALTER TABLE statement. + * + * @author Matthew T. Adams + */ public class AlterColumnCqlGenerator extends ColumnChangeCqlGenerator { public AlterColumnCqlGenerator(AlterColumnSpecification specification) { diff --git a/src/main/java/org/springframework/cassandra/core/cql/builder/AlterTableCqlGenerator.java b/src/main/java/org/springframework/cassandra/core/cql/generator/AlterTableCqlGenerator.java similarity index 94% rename from src/main/java/org/springframework/cassandra/core/cql/builder/AlterTableCqlGenerator.java rename to src/main/java/org/springframework/cassandra/core/cql/generator/AlterTableCqlGenerator.java index 0eb367edf..cbb920656 100644 --- a/src/main/java/org/springframework/cassandra/core/cql/builder/AlterTableCqlGenerator.java +++ b/src/main/java/org/springframework/cassandra/core/cql/generator/AlterTableCqlGenerator.java @@ -1,4 +1,4 @@ -package org.springframework.cassandra.core.cql.builder; +package org.springframework.cassandra.core.cql.generator; import static org.springframework.cassandra.core.cql.CqlStringUtils.noNull; @@ -11,13 +11,17 @@ import org.springframework.cassandra.core.keyspace.ColumnChangeSpecification; import org.springframework.cassandra.core.keyspace.DropColumnSpecification; import org.springframework.cassandra.core.keyspace.Option; +/** + * CQL generator for generating ALTER TABLE statements. + * + * @author Matthew T. Adams + */ public class AlterTableCqlGenerator extends AbstractTableOperationCqlGenerator { public AlterTableCqlGenerator(AlterTableSpecification specification) { super(specification); } - @Override public StringBuilder toCql(StringBuilder cql) { cql = noNull(cql); diff --git a/src/main/java/org/springframework/cassandra/core/cql/builder/ColumnChangeCqlGenerator.java b/src/main/java/org/springframework/cassandra/core/cql/generator/ColumnChangeCqlGenerator.java similarity index 75% rename from src/main/java/org/springframework/cassandra/core/cql/builder/ColumnChangeCqlGenerator.java rename to src/main/java/org/springframework/cassandra/core/cql/generator/ColumnChangeCqlGenerator.java index 66236816b..ee1402f13 100644 --- a/src/main/java/org/springframework/cassandra/core/cql/builder/ColumnChangeCqlGenerator.java +++ b/src/main/java/org/springframework/cassandra/core/cql/generator/ColumnChangeCqlGenerator.java @@ -1,8 +1,14 @@ -package org.springframework.cassandra.core.cql.builder; +package org.springframework.cassandra.core.cql.generator; import org.springframework.cassandra.core.keyspace.ColumnChangeSpecification; import org.springframework.util.Assert; +/** + * Base class for column change CQL generators. + * + * @author Matthew T. Adams + * @param The corresponding {@link ColumnChangeSpecification} type for this CQL generator. + */ public abstract class ColumnChangeCqlGenerator { public abstract StringBuilder toCql(StringBuilder cql); diff --git a/src/main/java/org/springframework/cassandra/core/cql/builder/CreateTableCqlGenerator.java b/src/main/java/org/springframework/cassandra/core/cql/generator/CreateTableCqlGenerator.java similarity index 96% rename from src/main/java/org/springframework/cassandra/core/cql/builder/CreateTableCqlGenerator.java rename to src/main/java/org/springframework/cassandra/core/cql/generator/CreateTableCqlGenerator.java index 06554e891..38f21b6fc 100644 --- a/src/main/java/org/springframework/cassandra/core/cql/builder/CreateTableCqlGenerator.java +++ b/src/main/java/org/springframework/cassandra/core/cql/generator/CreateTableCqlGenerator.java @@ -1,4 +1,4 @@ -package org.springframework.cassandra.core.cql.builder; +package org.springframework.cassandra.core.cql.generator; import static org.springframework.cassandra.core.cql.CqlStringUtils.noNull; import static org.springframework.data.cassandra.mapping.KeyType.PARTITION; @@ -13,7 +13,7 @@ import org.springframework.cassandra.core.keyspace.CreateTableSpecification; import org.springframework.cassandra.core.keyspace.Option; /** - * Builder class to construct CQL for a CREATE TABLE statement. Not threadsafe. + * CQL generator for generating a CREATE TABLE statement. * * @author Matthew T. Adams */ diff --git a/src/main/java/org/springframework/cassandra/core/cql/builder/DropColumnCqlGenerator.java b/src/main/java/org/springframework/cassandra/core/cql/generator/DropColumnCqlGenerator.java similarity index 70% rename from src/main/java/org/springframework/cassandra/core/cql/builder/DropColumnCqlGenerator.java rename to src/main/java/org/springframework/cassandra/core/cql/generator/DropColumnCqlGenerator.java index 8fa3a1129..1f10f6a30 100644 --- a/src/main/java/org/springframework/cassandra/core/cql/builder/DropColumnCqlGenerator.java +++ b/src/main/java/org/springframework/cassandra/core/cql/generator/DropColumnCqlGenerator.java @@ -1,9 +1,14 @@ -package org.springframework.cassandra.core.cql.builder; +package org.springframework.cassandra.core.cql.generator; import static org.springframework.cassandra.core.cql.CqlStringUtils.noNull; import org.springframework.cassandra.core.keyspace.DropColumnSpecification; +/** + * CQL generator for generating a DROP column clause of an ALTER TABLE statement. + * + * @author Matthew T. Adams + */ public class DropColumnCqlGenerator extends ColumnChangeCqlGenerator { public DropColumnCqlGenerator(DropColumnSpecification specification) { diff --git a/src/main/java/org/springframework/cassandra/core/cql/builder/DropTableCqlGenerator.java b/src/main/java/org/springframework/cassandra/core/cql/generator/DropTableCqlGenerator.java similarity index 82% rename from src/main/java/org/springframework/cassandra/core/cql/builder/DropTableCqlGenerator.java rename to src/main/java/org/springframework/cassandra/core/cql/generator/DropTableCqlGenerator.java index 0a82d6668..9f8a66ec1 100644 --- a/src/main/java/org/springframework/cassandra/core/cql/builder/DropTableCqlGenerator.java +++ b/src/main/java/org/springframework/cassandra/core/cql/generator/DropTableCqlGenerator.java @@ -1,10 +1,15 @@ -package org.springframework.cassandra.core.cql.builder; +package org.springframework.cassandra.core.cql.generator; import static org.springframework.cassandra.core.cql.CqlStringUtils.noNull; import org.springframework.cassandra.core.keyspace.DropTableSpecification; import org.springframework.util.Assert; +/** + * CQL generator for generating a DROP TABLE statement. + * + * @author Matthew T. Adams + */ public class DropTableCqlGenerator { protected DropTableSpecification specification; diff --git a/src/main/java/org/springframework/cassandra/core/keyspace/CqlBuilder.java b/src/main/java/org/springframework/cassandra/core/keyspace/CqlBuilder.java deleted file mode 100644 index 8180f730e..000000000 --- a/src/main/java/org/springframework/cassandra/core/keyspace/CqlBuilder.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.springframework.cassandra.core.keyspace; - -public class CqlBuilder { - - /** - * Entry point into the {@link CqlBuilder}'s fluent API to create a table. Convenient if imported statically. - */ - public static CreateTableSpecification createTable() { - return new CreateTableSpecification(); - } - - /** - * Entry point into the {@link CqlBuilder}'s fluent API to create a table. Convenient if imported statically. - */ - public static CreateTableSpecification createTable(String name) { - return new CreateTableSpecification().name(name); - } - - /** - * Entry point into the {@link CqlBuilder}'s fluent API to alter a table. Convenient if imported statically. - */ - public static AlterTableSpecification alterTable() { - return new AlterTableSpecification(); - } - - /** - * Entry point into the {@link CqlBuilder}'s fluent API to alter a table. Convenient if imported statically. - */ - public static AlterTableSpecification alterTable(String name) { - return new AlterTableSpecification().name(name); - } - - /** - * Entry point into the {@link CqlBuilder}'s fluent API to drop a table. Convenient if imported statically. - */ - public static DropTableSpecification dropTable() { - return new DropTableSpecification(); - } - - /** - * Entry point into the {@link CqlBuilder}'s fluent API to drop a table. Convenient if imported statically. - */ - public static DropTableSpecification dropTable(String name) { - return new DropTableSpecification().name(name); - } -} \ No newline at end of file diff --git a/src/main/java/org/springframework/cassandra/core/keyspace/TableOperations.java b/src/main/java/org/springframework/cassandra/core/keyspace/TableOperations.java new file mode 100644 index 000000000..0f85aa421 --- /dev/null +++ b/src/main/java/org/springframework/cassandra/core/keyspace/TableOperations.java @@ -0,0 +1,34 @@ +package org.springframework.cassandra.core.keyspace; + +/** + * Class that offers static methods as entry points into the fluent API for building create, drop and alter table + * specifications. These methods are most convenient when imported statically. + * + * @author Matthew T. Adams + */ +public class TableOperations { + + /** + * Entry point into the {@link CreateTableSpecification}'s fluent API to create a table. Convenient if imported + * statically. + */ + public static CreateTableSpecification createTable() { + return new CreateTableSpecification(); + } + + /** + * Entry point into the {@link DropTableSpecification}'s fluent API to drop a table. Convenient if imported + * statically. + */ + public static DropTableSpecification dropTable() { + return new DropTableSpecification(); + } + + /** + * Entry point into the {@link AlterTableSpecification}'s fluent API to alter a table. Convenient if imported + * statically. + */ + public static AlterTableSpecification alterTable() { + return new AlterTableSpecification(); + } +} \ No newline at end of file diff --git a/src/test/java/org/springframework/cassandra/cql/builder/AlterTableBuilderTest.java b/src/test/java/org/springframework/cassandra/cql/builder/AlterTableBuilderTest.java index 4a935393a..e5046729c 100644 --- a/src/test/java/org/springframework/cassandra/cql/builder/AlterTableBuilderTest.java +++ b/src/test/java/org/springframework/cassandra/cql/builder/AlterTableBuilderTest.java @@ -1,9 +1,9 @@ package org.springframework.cassandra.cql.builder; -import static org.springframework.cassandra.core.keyspace.CqlBuilder.alterTable; +import static org.springframework.cassandra.core.keyspace.TableOperations.alterTable; import org.junit.Test; -import org.springframework.cassandra.core.cql.builder.AlterTableCqlGenerator; +import org.springframework.cassandra.core.cql.generator.AlterTableCqlGenerator; import org.springframework.cassandra.core.keyspace.AlterTableSpecification; import com.datastax.driver.core.DataType; diff --git a/src/test/java/org/springframework/cassandra/cql/builder/CreateTableBuilderTest.java b/src/test/java/org/springframework/cassandra/cql/builder/CreateTableBuilderTest.java index 29ddf89b0..c01a1d442 100644 --- a/src/test/java/org/springframework/cassandra/cql/builder/CreateTableBuilderTest.java +++ b/src/test/java/org/springframework/cassandra/cql/builder/CreateTableBuilderTest.java @@ -1,7 +1,7 @@ package org.springframework.cassandra.cql.builder; import static junit.framework.Assert.assertEquals; -import static org.springframework.cassandra.core.keyspace.CqlBuilder.createTable; +import static org.springframework.cassandra.core.keyspace.TableOperations.createTable; import static org.springframework.cassandra.core.keyspace.MapBuilder.map; import static org.springframework.cassandra.core.keyspace.TableOption.BLOOM_FILTER_FP_CHANCE; import static org.springframework.cassandra.core.keyspace.TableOption.CACHING; @@ -10,7 +10,7 @@ import static org.springframework.cassandra.core.keyspace.TableOption.COMPACTION import static org.springframework.cassandra.core.keyspace.TableOption.CompactionOption.TOMBSTONE_THRESHOLD; import org.junit.Test; -import org.springframework.cassandra.core.cql.builder.CreateTableCqlGenerator; +import org.springframework.cassandra.core.cql.generator.CreateTableCqlGenerator; import org.springframework.cassandra.core.keyspace.CreateTableSpecification; import org.springframework.cassandra.core.keyspace.TableOption.CachingOption; diff --git a/src/test/java/org/springframework/cassandra/cql/builder/DropTableBuilderTest.java b/src/test/java/org/springframework/cassandra/cql/builder/DropTableBuilderTest.java index 97719ec9d..29133304a 100644 --- a/src/test/java/org/springframework/cassandra/cql/builder/DropTableBuilderTest.java +++ b/src/test/java/org/springframework/cassandra/cql/builder/DropTableBuilderTest.java @@ -1,9 +1,9 @@ package org.springframework.cassandra.cql.builder; -import static org.springframework.cassandra.core.keyspace.CqlBuilder.dropTable; +import static org.springframework.cassandra.core.keyspace.TableOperations.dropTable; import org.junit.Test; -import org.springframework.cassandra.core.cql.builder.DropTableCqlGenerator; +import org.springframework.cassandra.core.cql.generator.DropTableCqlGenerator; import org.springframework.cassandra.core.keyspace.DropTableSpecification; public class DropTableBuilderTest {