package com.boardgamegeek.provider;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import com.boardgamegeek.provider.BggContract.CollectionViewFilters;
import com.boardgamegeek.provider.BggContract.CollectionViews;
import com.boardgamegeek.provider.BggDatabase.Tables;
import com.boardgamegeek.util.SelectionBuilder;
public class CollectionViewIdFiltersProvider extends BaseProvider {
@Override
protected SelectionBuilder buildExpandedSelection(Uri uri) {
return buildSelection(uri, Tables.COLLECTION_VIEW_FILTERS_JOIN_COLLECTION_VIEWS, Tables.COLLECTION_VIEWS + "."
+ CollectionViews._ID);
}
@Override
protected SelectionBuilder buildSimpleSelection(Uri uri) {
return buildSelection(uri, Tables.COLLECTION_VIEW_FILTERS, CollectionViewFilters.VIEW_ID);
}
@Override
protected String getDefaultSortOrder() {
return CollectionViewFilters.DEFAULT_SORT;
}
@Override
protected String getPath() {
return "collectionviews/#/filters";
}
@Override
protected String getType(Uri uri) {
return CollectionViewFilters.CONTENT_TYPE;
}
@Override
protected Uri insert(Context context, SQLiteDatabase db, Uri uri, ContentValues values) {
long filterId = CollectionViews.getViewId(uri);
values.put(CollectionViewFilters.VIEW_ID, filterId);
long rowId = db.insertOrThrow(Tables.COLLECTION_VIEW_FILTERS, null, values);
return CollectionViews.buildViewFilterUri(filterId, rowId);
}
private SelectionBuilder buildSelection(Uri uri, String table, String idColumnName) {
long filterId = CollectionViews.getViewId(uri);
return new SelectionBuilder().table(table)
.mapIfNullToTable(CollectionViewFilters._ID, Tables.COLLECTION_VIEW_FILTERS, "0")
.where(idColumnName + "=?", String.valueOf(filterId));
}
}