content: package net.sf.jsqlparser.statement.create.table;
  
  import java.util.List;
  
  import net.sf.jsqlparser.schema.Table;
  import net.sf.jsqlparser.statement.Statement;
  import net.sf.jsqlparser.statement.StatementVisitor;
  import net.sf.jsqlparser.statement.select.PlainSelect;
  
  /**
   * A "CREATE TABLE" statement
   */
  public class CreateTable implements Statement {
  
      private Table table;
      private List tableOptionsStrings;
      private List columnDefinitions;
      private List indexes;
  
      public void accept(StatementVisitor statementVisitor) {
          statementVisitor.visit(this);
      }
  
      /**
       * The name of the table to be created
       */
      public Table getTable() {
          return table;
      }
  
      public void setTable(Table table) {
          this.table = table;
      }
  
      /**
       * A list of {@link ColumnDefinition}s of this table.
       */
      public List getColumnDefinitions() {
          return columnDefinitions;
      }
  
      public void setColumnDefinitions(List list) {
          columnDefinitions = list;
      }
  
      /**
       * A list of options (as simple strings) of this table definition, as ("TYPE", "=", "MYISAM") 
       */
      public List getTableOptionsStrings() {
          return tableOptionsStrings;
      }
  
      public void setTableOptionsStrings(List list) {
          tableOptionsStrings = list;
      }
  
      /**
       * A list of {@link Index}es (for example "PRIMARY KEY") of this table.<br>
       * Indexes created with column definitions (as in mycol INT PRIMARY KEY) are not inserted into this list.  
       */
      public List getIndexes() {
          return indexes;
      }
  
      public void setIndexes(List list) {
          indexes = list;
      }
  
      public String toString() {
          String sql = "";
  
          sql = "CREATE TABLE " + table + " (";
  
          sql += PlainSelect.getStringList(columnDefinitions, true, false);
          if (indexes != null && indexes.size() != 0) {
              sql += ", ";
              sql += PlainSelect.getStringList(indexes);
          }
          sql += ") ";
          sql += PlainSelect.getStringList(tableOptionsStrings, false, false);
  
          return sql;
      }
  }