package com.boardgamegeek.provider; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.net.Uri; import android.text.TextUtils; import com.boardgamegeek.util.SelectionBuilder; import hugo.weaving.DebugLog; public abstract class BasicProvider extends BaseProvider { @DebugLog @Override protected SelectionBuilder buildSimpleSelection(Uri uri) { return new SelectionBuilder().table(getTable()); } @DebugLog protected String getInsertedIdColumn() { return null; } protected abstract String getTable(); @DebugLog @Override protected Uri insert(Context context, SQLiteDatabase db, Uri uri, ContentValues values) { long rowId = db.insert(getTable(), null, values); if (rowId != -1) { return insertedUri(values, rowId); } return null; } @DebugLog protected Uri insertedUri(ContentValues values, long rowId) { if (!TextUtils.isEmpty(getInsertedIdColumn())) { return BggContract.buildBasicUri(getPath(), values.getAsLong(getInsertedIdColumn())); } return BggContract.buildBasicUri(getPath(), rowId); } }