Back to project page android-sqlite-helper.
The source code is released under:
Apache License
If you think the Android project android-sqlite-helper listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package net.ichigotake.sqlitehelper.ddl; /* www . j av a2 s . c om*/ import android.database.sqlite.SQLiteDatabase; import android.text.TextUtils; import net.ichigotake.sqlitehelper.schema.FieldAttribute; import net.ichigotake.sqlitehelper.schema.TableField; import net.ichigotake.sqlitehelper.schema.TableSchema; import net.ichigotake.sqlitehelper.schema.UniqueField; import java.util.ArrayList; import java.util.List; public class CreateTable { private final SQLiteDatabase database; private final TableSchema schema; public CreateTable(SQLiteDatabase database, TableSchema schema) { this.database = database; this.schema = schema; } public void createTableIfNotExists() { database.execSQL(buildQueryAsCreateTableIfNotExists()); new CreateIndex(database, schema).createIndexIfNotExists(); } /* visible for testing */ String buildQueryAsCreateTableIfNotExists() { List<String> list = new ArrayList<>(); for (TableField field : schema.getFields()) { String query = field.getFieldName() + " " + field.getFieldType().getReservedName(); if (field.getAttributes().contains(FieldAttribute.PRIMARY_KEY)) { query += " PRIMARY KEY"; } list.add(query); } for (UniqueField field : schema.getUniqueFields()) { list.add(buildQueryAsUnique(field)); } return "CREATE TABLE IF NOT EXISTS " + schema.getTableName() + " (" + TextUtils.join(",", list) + ")"; } /* visible for testing */ String buildQueryAsUnique(UniqueField field) { List<String> names = new ArrayList<>(); for (TableField item : field.getFields()) { names.add(item.getFieldName()); } return "UNIQUE (" + TextUtils.join(",", names) + ")"; } }