Android Open Source - android-sqlite-helper Table Schema Builder






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.schema;
//  ww  w.j  av  a2  s  . c o  m
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class TableSchemaBuilder {

    private final String tableName;
    private final List<TableField> fields;
    private final List<Index> indexes;
    private final List<UniqueField> uniqueFields;

    public TableSchemaBuilder(String tableName) {
        this.tableName = tableName;
        this.fields = new ArrayList<>();
        this.indexes = new ArrayList<>();
        this.uniqueFields = new ArrayList<>();
    }
    
    public TableSchema build() {
        return new TableSchema(tableName, fields, indexes, uniqueFields);
    }

    public TableSchemaBuilder field(TableField[] fields) {
        return field(Arrays.asList(fields));
    }

    public TableSchemaBuilder field(List<TableField> fields) {
        for (TableField field : fields) {
            this.fields.add(field);
            if (field.getAttributes().contains(FieldAttribute.UNIQUE)) {
                unique(field);
            }
        }
        return this;
    }

    public TableSchemaBuilder index(TableField field, TableField... pair) {
        List<TableField> targets = new ArrayList<>();
        targets.add(field);
        targets.addAll(Arrays.asList(pair));
        indexes.add(new Index(tableName, targets));
        return this;
    }
    
    public TableSchemaBuilder unique(TableField field, TableField... pair) {
        uniqueFields.add(new UniqueField(field, pair));
        return this;
    }

}




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