// Path: library/src/main/java/org/mariotaku/sqliteqb/library/Constraint.java
// public class Constraint implements SQLLang {
//     private final String name;
//     private final String type;
//     private final SQLQuery constraint;
// 
//     public Constraint(String name, String type, SQLQuery constraint) {
//         this.name = name;
//         this.type = type;
//         this.constraint = constraint;
//     }
// 
//     @Override
//     public String getSQL() {
//         final StringBuilder sb = new StringBuilder();
//         if (name != null) {
//             sb.append("CONSTRAINT ");
//             sb.append(name);
//             sb.append(" ");
//         }
//         sb.append(type);
//         sb.append(" ");
//         sb.append(constraint.getSQL());
//         return sb.toString();
//     }
// 
//     public static Constraint unique(String name, Columns columns, OnConflict onConflict) {
//         return new Constraint(name, "UNIQUE", new ColumnConflictConstaint(columns, onConflict));
//     }
// 
//     public static Constraint unique(Columns columns, OnConflict onConflict) {
//         return unique(null, columns, onConflict);
//     }
// 
//     private static final class ColumnConflictConstaint implements SQLQuery {
// 
//         private final Columns columns;
//         private final OnConflict onConflict;
// 
//         public ColumnConflictConstaint(Columns columns, OnConflict onConflict) {
//             this.columns = columns;
//             this.onConflict = onConflict;
//         }
// 
//         @Override
//         public String getSQL() {
//             final StringBuilder sb = new StringBuilder();
//             sb.append("(");
//             sb.append(columns.getSQL());
//             sb.append(") ");
//             sb.append("ON CONFLICT ");
//             sb.append(onConflict.getAction());
//             return sb.toString();
//         }
//     }
// 
// }
// 
// Path: library/src/main/java/org/mariotaku/sqliteqb/library/NewColumn.java
// public class NewColumn implements SQLLang {
// 
//     private final String name;
//     private final String type;
// 
//     public NewColumn(final String name, final String type) {
//         this.name = name;
//         this.type = type;
//     }
// 
//     public static NewColumn[] createNewColumns(final String[] colNames, final String[] colTypes) {
//         if (colNames == null || colTypes == null || colNames.length != colTypes.length)
//             throw new IllegalArgumentException("length of columns and types not match.");
//         final NewColumn[] newColumns = new NewColumn[colNames.length];
//         for (int i = 0, j = colNames.length; i < j; i++) {
//             newColumns[i] = new NewColumn(colNames[i], colTypes[i]);
//         }
//         return newColumns;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     @Override
//     public String getSQL() {
//         if (name == null || type == null)
//             throw new NullPointerException("name and type must not be null!");
//         return name + " " + type;
//     }
// 
//     public String getType() {
//         return type;
//     }
// 
// }
// 
// Path: library/src/main/java/org/mariotaku/sqliteqb/library/SQLQuery.java
// public interface SQLQuery extends SQLLang {
// }
// 
// Path: library/src/main/java/org/mariotaku/sqliteqb/library/Utils.java
// public class Utils {
// 
//     public static String toString(final Object[] array, final char token, final boolean includeSpace) {
//         final StringBuilder builder = new StringBuilder();
//         final int length = array.length;
//         for (int i = 0; i < length; i++) {
//             final String string = objectToString(array[i]);
//             if (string != null) {
//                 if (i > 0) {
//                     builder.append(includeSpace ? token + " " : token);
//                 }
//                 builder.append(string);
//             }
//         }
//         return builder.toString();
//     }
// 
//     public static String toStringForSQL(final int size) {
//         final StringBuilder builder = new StringBuilder();
//         for (int i = 0; i < size; i++) {
//             if (i > 0) {
//                 builder.append(',');
//             }
//             builder.append('?');
//         }
//         return builder.toString();
//     }
// 
//     private static String objectToString(Object o) {
//         if (o instanceof SQLLang)
//             return ((SQLLang) o).getSQL();
//         return o != null ? o.toString() : null;
//     }
// 
//     public static String[] toStringArray(Object[] array) {
//         final String[] strings = new String[array.length];
//         final int length = array.length;
//         for (int i = 0; i < length; i++) {
//             strings[i] = objectToString(array[i]);
//         }
//         return strings;
//     }
// }


import org.mariotaku.sqliteqb.library.Constraint;
import org.mariotaku.sqliteqb.library.NewColumn;
import org.mariotaku.sqliteqb.library.SQLQuery;
import org.mariotaku.sqliteqb.library.Utils;
/*
 * Copyright (c) 2015 mariotaku
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.mariotaku.sqliteqb.library.query;


public class SQLCreateTableQuery implements SQLQuery {

    private boolean temporary;
    private boolean createIfNotExists;
    private String table;
// Path: library/src/main/java/org/mariotaku/sqliteqb/library/Constraint.java
// public class Constraint implements SQLLang {
//     private final String name;
//     private final String type;
//     private final SQLQuery constraint;
// 
//     public Constraint(String name, String type, SQLQuery constraint) {
//         this.name = name;
//         this.type = type;
//         this.constraint = constraint;
//     }
// 
//     @Override
//     public String getSQL() {
//         final StringBuilder sb = new StringBuilder();
//         if (name != null) {
//             sb.append("CONSTRAINT ");
//             sb.append(name);
//             sb.append(" ");
//         }
//         sb.append(type);
//         sb.append(" ");
//         sb.append(constraint.getSQL());
//         return sb.toString();
//     }
// 
//     public static Constraint unique(String name, Columns columns, OnConflict onConflict) {
//         return new Constraint(name, "UNIQUE", new ColumnConflictConstaint(columns, onConflict));
//     }
// 
//     public static Constraint unique(Columns columns, OnConflict onConflict) {
//         return unique(null, columns, onConflict);
//     }
// 
//     private static final class ColumnConflictConstaint implements SQLQuery {
// 
//         private final Columns columns;
//         private final OnConflict onConflict;
// 
//         public ColumnConflictConstaint(Columns columns, OnConflict onConflict) {
//             this.columns = columns;
//             this.onConflict = onConflict;
//         }
// 
//         @Override
//         public String getSQL() {
//             final StringBuilder sb = new StringBuilder();
//             sb.append("(");
//             sb.append(columns.getSQL());
//             sb.append(") ");
//             sb.append("ON CONFLICT ");
//             sb.append(onConflict.getAction());
//             return sb.toString();
//         }
//     }
// 
// }
// 
// Path: library/src/main/java/org/mariotaku/sqliteqb/library/NewColumn.java
// public class NewColumn implements SQLLang {
// 
//     private final String name;
//     private final String type;
// 
//     public NewColumn(final String name, final String type) {
//         this.name = name;
//         this.type = type;
//     }
// 
//     public static NewColumn[] createNewColumns(final String[] colNames, final String[] colTypes) {
//         if (colNames == null || colTypes == null || colNames.length != colTypes.length)
//             throw new IllegalArgumentException("length of columns and types not match.");
//         final NewColumn[] newColumns = new NewColumn[colNames.length];
//         for (int i = 0, j = colNames.length; i < j; i++) {
//             newColumns[i] = new NewColumn(colNames[i], colTypes[i]);
//         }
//         return newColumns;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     @Override
//     public String getSQL() {
//         if (name == null || type == null)
//             throw new NullPointerException("name and type must not be null!");
//         return name + " " + type;
//     }
// 
//     public String getType() {
//         return type;
//     }
// 
// }
// 
// Path: library/src/main/java/org/mariotaku/sqliteqb/library/SQLQuery.java
// public interface SQLQuery extends SQLLang {
// }
// 
// Path: library/src/main/java/org/mariotaku/sqliteqb/library/Utils.java
// public class Utils {
// 
//     public static String toString(final Object[] array, final char token, final boolean includeSpace) {
//         final StringBuilder builder = new StringBuilder();
//         final int length = array.length;
//         for (int i = 0; i < length; i++) {
//             final String string = objectToString(array[i]);
//             if (string != null) {
//                 if (i > 0) {
//                     builder.append(includeSpace ? token + " " : token);
//                 }
//                 builder.append(string);
//             }
//         }
//         return builder.toString();
//     }
// 
//     public static String toStringForSQL(final int size) {
//         final StringBuilder builder = new StringBuilder();
//         for (int i = 0; i < size; i++) {
//             if (i > 0) {
//                 builder.append(',');
//             }
//             builder.append('?');
//         }
//         return builder.toString();
//     }
// 
//     private static String objectToString(Object o) {
//         if (o instanceof SQLLang)
//             return ((SQLLang) o).getSQL();
//         return o != null ? o.toString() : null;
//     }
// 
//     public static String[] toStringArray(Object[] array) {
//         final String[] strings = new String[array.length];
//         final int length = array.length;
//         for (int i = 0; i < length; i++) {
//             strings[i] = objectToString(array[i]);
//         }
//         return strings;
//     }
// }


// Path: library/src/main/java/org/mariotaku/sqliteqb/library/query/SQLCreateTableQuery.java
import org.mariotaku.sqliteqb.library.Constraint;
import org.mariotaku.sqliteqb.library.NewColumn;
import org.mariotaku.sqliteqb.library.SQLQuery;
import org.mariotaku.sqliteqb.library.Utils;

/*
 * Copyright (c) 2015 mariotaku
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.mariotaku.sqliteqb.library.query;


public class SQLCreateTableQuery implements SQLQuery {

    private boolean temporary;
    private boolean createIfNotExists;
    private String table;
    private NewColumn[] newColumns;