package org.wikipedia.edit.summaries; 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.EditHistoryContract; import org.wikipedia.database.contract.EditHistoryContract.Col; import java.util.Date; public class EditSummaryDatabaseTable extends DatabaseTable<EditSummary> { private static final int DB_VER_INTRODUCED = 2; public EditSummaryDatabaseTable() { super(EditHistoryContract.TABLE, EditHistoryContract.Summary.URI); } @Override public EditSummary fromCursor(Cursor cursor) { String summary = Col.SUMMARY.val(cursor); Date lastUsed = Col.LAST_USED.val(cursor); return new EditSummary(summary, lastUsed); } @Override protected ContentValues toContentValues(EditSummary obj) { ContentValues contentValues = new ContentValues(); contentValues.put(Col.SUMMARY.getName(), obj.getSummary()); contentValues.put(Col.LAST_USED.getName(), obj.getLastUsed().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.SUMMARY, Col.LAST_USED}; default: return super.getColumnsAdded(version); } } @Override protected String getPrimaryKeySelection(@NonNull EditSummary obj, @NonNull String[] selectionArgs) { return super.getPrimaryKeySelection(obj, EditHistoryContract.Summary.SELECTION); } @Override protected String[] getUnfilteredPrimaryKeySelectionArgs(@NonNull EditSummary obj) { return new String[] {obj.getSummary()}; } }