package com.orgzly.android.provider.models; import android.content.ContentValues; import android.database.sqlite.SQLiteDatabase; import android.provider.BaseColumns; import com.orgzly.android.provider.DatabaseUtils; public class DbProperty { public static final String TABLE = "properties"; public static final String[] CREATE_SQL = new String[] { "CREATE TABLE IF NOT EXISTS " + TABLE + " (" + "_id INTEGER PRIMARY KEY AUTOINCREMENT," + "name_id INTEGER," + "value_id INTEGER," + "UNIQUE(name_id, value_id))", "CREATE INDEX IF NOT EXISTS i_" + TABLE + "_" + "name_id" + " ON " + TABLE + "(" + "name_id" + ")", "CREATE INDEX IF NOT EXISTS i_" + TABLE + "_" + "value_id" + " ON " + TABLE + "(" + "value_id" + ")", }; public static final String DROP_SQL = "DROP TABLE IF EXISTS " + TABLE; public interface Columns { String NAME_ID = "name_id"; String VALUE_ID = "value_id"; } public static class Column implements Columns, BaseColumns {} public static long getOrInsert(SQLiteDatabase db, long nameId, long valueId) { long id = DatabaseUtils.getId( db, TABLE, "name_id = " + nameId + " AND value_id = " + valueId, null); if (id == 0) { ContentValues values = new ContentValues(); values.put("name_id", nameId); values.put("value_id", valueId); id = db.insertOrThrow(TABLE, null, values); } return id; } }