aboutsummaryrefslogtreecommitdiff
path: root/WordPress/src/main/java/org/wordpress/android/datasets/SQLTable.java
diff options
context:
space:
mode:
authorChris Warrington <cmw@google.com>2016-10-18 12:29:21 +0100
committerChris Warrington <cmw@google.com>2016-10-18 12:34:18 +0100
commite3780081075c01aa1dff6d1f373cb43192b33e68 (patch)
treefb734615933a39f3d009210dc0d1457160479b35 /WordPress/src/main/java/org/wordpress/android/datasets/SQLTable.java
parent7e05eb7e57827eddc885570bc00aed8a50320dbf (diff)
parent025b8b226c8d8edba2b309ca878572f40512eca7 (diff)
downloadgradle-perf-android-medium-mirror-goog-studio-master-dev.tar.gz
Change-Id: I63f5e16d09297c48432192761b840310935eb903
Diffstat (limited to 'WordPress/src/main/java/org/wordpress/android/datasets/SQLTable.java')
-rw-r--r--WordPress/src/main/java/org/wordpress/android/datasets/SQLTable.java68
1 files changed, 68 insertions, 0 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/datasets/SQLTable.java b/WordPress/src/main/java/org/wordpress/android/datasets/SQLTable.java
new file mode 100644
index 000000000..ba73f9ca3
--- /dev/null
+++ b/WordPress/src/main/java/org/wordpress/android/datasets/SQLTable.java
@@ -0,0 +1,68 @@
+package org.wordpress.android.datasets;
+
+import java.util.Map;
+
+import android.content.ContentValues;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.net.Uri;
+
+/**
+ * A class to represent an database table.
+ */
+
+public abstract class SQLTable {
+ public abstract String getName();
+
+ protected abstract String getUniqueConstraint();
+
+ protected abstract Map<String, String> getColumnMapping();
+
+ protected static class BaseColumns {
+ protected final static String _ID = "_id";
+ }
+
+ public String toCreateQuery() {
+ String createQuery = "CREATE TABLE IF NOT EXISTS " + getName() + " (";
+
+ Map<String, String> columns = getColumnMapping();
+
+ for (String column : columns.keySet()) {
+ createQuery += column + " " + columns.get(column) + ", ";
+ }
+
+ createQuery += getUniqueConstraint() + ");";
+
+ return createQuery;
+ }
+
+ public abstract void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion);
+
+ public Cursor query(final SQLiteDatabase database, final Uri uri, final String[] projection, final String selection, final String[] selectionArgs, final String sortOrder) {
+ return database.query(getName(), projection, selection, selectionArgs, null, null, sortOrder);
+ }
+
+ public long insert(final SQLiteDatabase database, final Uri uri, final ContentValues values) {
+ return database.insert(getName(), null, values);
+ }
+
+ public long insert(final SQLiteDatabase database, final ContentValues values) {
+ return insert(database, null, values);
+ }
+
+ public int update(final SQLiteDatabase database, final Uri uri, final ContentValues values, final String selection, final String[] selectionArgs) {
+ return database.update(getName(), values, selection, selectionArgs);
+ }
+
+ public int update(final SQLiteDatabase database, final ContentValues values, final String selection, final String[] selectionArgs) {
+ return update(database, null, values, selection, selectionArgs);
+ }
+
+ public int delete(final SQLiteDatabase database, final Uri uri, final String selection, final String[] selectionArgs) {
+ return database.delete(getName(), selection, selectionArgs);
+ }
+
+ public int delete(final SQLiteDatabase database, final String selection, final String[] selectionArgs) {
+ return delete(database, null, selection, selectionArgs);
+ }
+}