// Path: dao/src/main/java/com/hannesdorfmann/sqlbrite/dao/sql/SqlExecuteCompileable.java
// public interface SqlExecuteCompileable extends SqlCompileable {
// 
//   /**
//    * Execute a single SQL statement that is NOT a SELECT or any other SQL
//    * statement that returns data.
//    *
//    * @throws SQLException
//    */
//   void execute(SQLiteDatabase database) throws SQLException;
// }
// 
// Path: dao/src/main/java/com/hannesdorfmann/sqlbrite/dao/sql/SqlRootNode.java
// public abstract class SqlRootNode implements SqlNode {
// 
//   @Override public void buildSql(StringBuilder builder) {
//     builder.insert(0, getSql());
//   }
// 
//   @Override public SqlNode getPrevious() {
//     return null;
//   }
// 
//   @Override public Set<String> getAffectedTables() {
//     return null;
//   }
// }


import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import com.hannesdorfmann.sqlbrite.dao.sql.SqlExecuteCompileable;
import com.hannesdorfmann.sqlbrite.dao.sql.SqlRootNode;
package com.hannesdorfmann.sqlbrite.dao.sql.table;


/**
 * Create a new SQL TABLE
 *
 * @author Hannes Dorfmann
 */
public class CREATE_TABLE extends SqlRootNode implements SqlExecuteCompileable {

  private final String sql;

  public CREATE_TABLE(String tableName, String... columns) {

    if (tableName == null) throw new IllegalArgumentException("The table name is null");

    if (columns.length == 0) {
// Path: dao/src/main/java/com/hannesdorfmann/sqlbrite/dao/sql/SqlExecuteCompileable.java
// public interface SqlExecuteCompileable extends SqlCompileable {
// 
//   /**
//    * Execute a single SQL statement that is NOT a SELECT or any other SQL
//    * statement that returns data.
//    *
//    * @throws SQLException
//    */
//   void execute(SQLiteDatabase database) throws SQLException;
// }
// 
// Path: dao/src/main/java/com/hannesdorfmann/sqlbrite/dao/sql/SqlRootNode.java
// public abstract class SqlRootNode implements SqlNode {
// 
//   @Override public void buildSql(StringBuilder builder) {
//     builder.insert(0, getSql());
//   }
// 
//   @Override public SqlNode getPrevious() {
//     return null;
//   }
// 
//   @Override public Set<String> getAffectedTables() {
//     return null;
//   }
// }


// Path: dao/src/main/java/com/hannesdorfmann/sqlbrite/dao/sql/table/CREATE_TABLE.java
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import com.hannesdorfmann.sqlbrite.dao.sql.SqlExecuteCompileable;
import com.hannesdorfmann.sqlbrite.dao.sql.SqlRootNode;

package com.hannesdorfmann.sqlbrite.dao.sql.table;


/**
 * Create a new SQL TABLE
 *
 * @author Hannes Dorfmann
 */
public class CREATE_TABLE extends SqlRootNode implements SqlExecuteCompileable {

  private final String sql;

  public CREATE_TABLE(String tableName, String... columns) {

    if (tableName == null) throw new IllegalArgumentException("The table name is null");

    if (columns.length == 0) {
      throw new IllegalArgumentException("At least on column definition is required");