package com.boardgamegeek.provider;
import android.net.Uri;
import android.text.TextUtils;
import com.boardgamegeek.provider.BggContract.Collection;
import com.boardgamegeek.provider.BggContract.Games;
import com.boardgamegeek.provider.BggContract.Plays;
import com.boardgamegeek.provider.BggDatabase.Tables;
import com.boardgamegeek.util.SelectionBuilder;
public class CollectionProvider extends BasicProvider {
@Override
protected SelectionBuilder buildExpandedSelection(Uri uri) {
SelectionBuilder builder = new SelectionBuilder()
.table(Tables.COLLECTION_JOIN_GAMES_JOIN_PLAYS)
.mapToTable(Collection._ID, Tables.COLLECTION)
.mapToTable(Collection.GAME_ID, Tables.COLLECTION)
.mapToTable(Collection.UPDATED, Tables.COLLECTION)
.mapToTable(Collection.UPDATED_LIST, Tables.COLLECTION)
.mapToTable(Collection.PRIVATE_INFO_QUANTITY, Tables.COLLECTION)
.mapIfNull(Games.GAME_RANK, String.valueOf(Integer.MAX_VALUE))
.mapAsMax(Plays.MAX_DATE, Plays.DATE);
String groupBy = uri.getQueryParameter(BggContract.QUERY_KEY_GROUP_BY);
if (!TextUtils.isEmpty(groupBy)) {
builder.groupBy(groupBy);
} else {
builder.groupBy(Collection.GAME_ID);
}
return builder;
}
@Override
protected String getDefaultSortOrder() {
return Collection.DEFAULT_SORT;
}
@Override
protected String getPath() {
return BggContract.PATH_COLLECTION;
}
@Override
protected String getTable() {
return Tables.COLLECTION;
}
@Override
protected String getType(Uri uri) {
return Collection.CONTENT_TYPE;
}
}