package org.wikipedia.database.contract;
import android.net.Uri;
import android.provider.BaseColumns;
import org.wikipedia.database.DbUtil;
import org.wikipedia.database.column.DateColumn;
import org.wikipedia.database.column.IntColumn;
import org.wikipedia.database.column.LongColumn;
import org.wikipedia.database.column.StrColumn;
@SuppressWarnings("checkstyle:interfaceistype")
public final class PageHistoryContract {
public static final String TABLE = "history";
private static final String PATH = "history";
public interface Col {
LongColumn ID = new LongColumn(TABLE, BaseColumns._ID, "integer primary key");
StrColumn SITE = new StrColumn(TABLE, "site", "string");
StrColumn LANG = new StrColumn(TABLE, "lang", "text");
StrColumn TITLE = new StrColumn(TABLE, "title", "string");
StrColumn NAMESPACE = new StrColumn(TABLE, "namespace", "string");
DateColumn TIMESTAMP = new DateColumn(TABLE, "timestamp", "integer");
IntColumn SOURCE = new IntColumn(TABLE, "source", "integer");
IntColumn TIME_SPENT = new IntColumn(TABLE, "timeSpent", "integer"); // seconds
String[] SELECTION = DbUtil.qualifiedNames(SITE, LANG, NAMESPACE, TITLE);
}
public interface Page extends Col {
String TABLES = TABLE;
String PATH = PageHistoryContract.PATH + "/page";
Uri URI = Uri.withAppendedPath(AppContentProviderContract.AUTHORITY_BASE, PATH);
String[] PROJECTION = null;
String ORDER_MRU = TIMESTAMP.qualifiedName() + " desc";
}
public interface PageWithImage extends Page {
String TABLES = (":tbl left outer join :pageImagesTbl "
+ "on (:tbl.site = :pageImagesTbl.site and :tbl.title = :pageImagesTbl.title)")
.replaceAll(":tbl.site", SITE.qualifiedName())
.replaceAll(":pageImagesTbl.site", PageImageHistoryContract.Col.SITE.qualifiedName())
.replaceAll(":tbl.title", TITLE.qualifiedName())
.replaceAll(":pageImagesTbl.title", PageImageHistoryContract.Col.TITLE.qualifiedName())
.replaceAll(":tbl", PageHistoryContract.TABLE)
.replaceAll(":pageImagesTbl", PageImageHistoryContract.TABLE);
String PATH = Page.PATH + "/with_image";
Uri URI = Uri.withAppendedPath(AppContentProviderContract.AUTHORITY_BASE, PATH);
StrColumn IMAGE_NAME = PageImageHistoryContract.Col.IMAGE_NAME;
String[] PROJECTION = DbUtil.qualifiedNames(ID, SITE, LANG, TITLE, NAMESPACE, TIMESTAMP,
SOURCE, TIME_SPENT, IMAGE_NAME);
}
private PageHistoryContract() { }
}