Android Open Source - android-sqlite-helper Create Index






From Project

Back to project page android-sqlite-helper.

License

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.

Java Source Code

package net.ichigotake.sqlitehelper.ddl;
//ww  w . j ava  2s . co  m
import android.database.sqlite.SQLiteDatabase;
import android.text.TextUtils;

import net.ichigotake.sqlitehelper.schema.Index;
import net.ichigotake.sqlitehelper.schema.TableField;
import net.ichigotake.sqlitehelper.schema.TableSchema;

import java.util.ArrayList;
import java.util.List;

public class CreateIndex {
    
    private final SQLiteDatabase database;
    private final TableSchema schema;

    public CreateIndex(SQLiteDatabase database, TableSchema schema) {
        this.database = database;
        this.schema = schema;
    }

    public void createIndexIfNotExists() {
        for (Index index : schema.getIndexes()) {
            database.execSQL(buildCreateIndexClause(index));
        }
    }

    /* visible for testing */
    String buildCreateIndexClause(Index index) {
        return "CREATE INDEX IF NOT EXISTS " + buildIndexName(index)
                + " ON " + schema.getTableName() + "(" + buildIndexColumnName(index) + ")";
    }

    private String buildIndexName(Index index) {
        return index.getTableName() + "_" + TextUtils.join("_and_", getFieldNames(index));
    }

    private String buildIndexColumnName(Index index) {
        return TextUtils.join(",", getFieldNames(index));
    }

    private List<String> getFieldNames(Index index) {
        List<String> names = new ArrayList<>();
        for (TableField field : index.getFields()) {
            names.add(field.getFieldName());
        }
        return names;
    }
}




Java Source Code List

net.ichigotake.sqlitehelper.Configuration.java
net.ichigotake.sqlitehelper.DatabaseHelperTest.java
net.ichigotake.sqlitehelper.DatabaseHelper.java
net.ichigotake.sqlitehelper.MigrationCallback.java
net.ichigotake.sqlitehelper.MigrationHelper.java
net.ichigotake.sqlitehelper.MockConfiguration.java
net.ichigotake.sqlitehelper.MockTable.java
net.ichigotake.sqlitehelper.NoMigrationCallback.java
net.ichigotake.sqlitehelper.TableCursor.java
net.ichigotake.sqlitehelper.ddl.AlterTableTest.java
net.ichigotake.sqlitehelper.ddl.AlterTable.java
net.ichigotake.sqlitehelper.ddl.CreateIndexTest.java
net.ichigotake.sqlitehelper.ddl.CreateIndex.java
net.ichigotake.sqlitehelper.ddl.CreateTableTest.java
net.ichigotake.sqlitehelper.ddl.CreateTable.java
net.ichigotake.sqlitehelper.dml.Order.java
net.ichigotake.sqlitehelper.dml.SelectTest.java
net.ichigotake.sqlitehelper.dml.Select.java
net.ichigotake.sqlitehelper.dml.WhereTest.java
net.ichigotake.sqlitehelper.dml.Where.java
net.ichigotake.sqlitehelper.schema.DeletableTable.java
net.ichigotake.sqlitehelper.schema.FieldAttribute.java
net.ichigotake.sqlitehelper.schema.Index.java
net.ichigotake.sqlitehelper.schema.InsertableTable.java
net.ichigotake.sqlitehelper.schema.TableFieldType.java
net.ichigotake.sqlitehelper.schema.TableField.java
net.ichigotake.sqlitehelper.schema.TableSchemaBuilder.java
net.ichigotake.sqlitehelper.schema.TableSchema.java
net.ichigotake.sqlitehelper.schema.Table.java
net.ichigotake.sqlitehelper.schema.UniqueField.java
net.ichigotake.sqlitehelper.schema.UpdatableTable.java