package org.wikipedia.search;
import android.content.ContentValues;
import android.database.Cursor;
import android.support.annotation.NonNull;
import org.wikipedia.database.DatabaseTable;
import org.wikipedia.database.column.Column;
import org.wikipedia.database.contract.SearchHistoryContract;
import org.wikipedia.database.contract.SearchHistoryContract.Col;
import java.util.Date;
public class RecentSearchDatabaseTable extends DatabaseTable<RecentSearch> {
private static final int DB_VER_INTRODUCED = 5;
public RecentSearchDatabaseTable() {
super(SearchHistoryContract.TABLE, SearchHistoryContract.Query.URI);
}
@Override
public RecentSearch fromCursor(Cursor cursor) {
String title = Col.TEXT.val(cursor);
Date timestamp = Col.TIMESTAMP.val(cursor);
return new RecentSearch(title, timestamp);
}
@Override
protected ContentValues toContentValues(RecentSearch obj) {
ContentValues contentValues = new ContentValues();
contentValues.put(Col.TEXT.getName(), obj.getText());
contentValues.put(Col.TIMESTAMP.getName(), obj.getTimestamp().getTime());
return contentValues;
}
@Override
protected int getDBVersionIntroducedAt() {
return DB_VER_INTRODUCED;
}
@NonNull
@Override
public Column<?>[] getColumnsAdded(int version) {
switch (version) {
case DB_VER_INTRODUCED:
return new Column<?>[] {Col.ID, Col.TEXT, Col.TIMESTAMP};
default:
return super.getColumnsAdded(version);
}
}
@Override
protected String getPrimaryKeySelection(@NonNull RecentSearch obj, @NonNull String[] selectionArgs) {
return super.getPrimaryKeySelection(obj, Col.SELECTION);
}
@Override
protected String[] getUnfilteredPrimaryKeySelectionArgs(@NonNull RecentSearch obj) {
return new String[] {obj.getText()};
}
}