package com.ushahidi.android.app.database; import com.ushahidi.android.app.entities.IDbEntity; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; public abstract class DbContentProvider { public SQLiteDatabase mDb; public int delete(String tableName, String selection, String[] selectionArgs) { return mDb.delete(tableName, selection, selectionArgs); } public long insert(String tableName, ContentValues values) { return mDb.insert(tableName, null, values); } protected abstract <T extends IDbEntity> T cursorToEntity(Cursor cursor); public DbContentProvider(SQLiteDatabase db) { this.mDb = db; } public Cursor query(String tableName, String[] columns, String selection, String[] selectionArgs, String sortOrder) { final Cursor cursor = mDb.query(tableName, columns, selection, selectionArgs, null, null, sortOrder); return cursor; } public Cursor query(String tableName, String[] columns, String selection, String[] selectionArgs, String sortOrder, String limit) { return mDb.query(tableName, columns, selection, selectionArgs, null, null, sortOrder, limit); } public Cursor query(String tableName, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) { return mDb.query(tableName, columns, selection, selectionArgs, groupBy, having, orderBy, limit); } public int update(String tableName, ContentValues values, String selection, String[] selectionArgs) { return mDb.update(tableName, values, selection, selectionArgs); } public Cursor rawQuery(String sql, String[] selectionArgs) { return mDb.rawQuery(sql, selectionArgs); } }