diff options
author | Chris Warrington <cmw@google.com> | 2016-10-18 12:29:21 +0100 |
---|---|---|
committer | Chris Warrington <cmw@google.com> | 2016-10-18 12:34:18 +0100 |
commit | e3780081075c01aa1dff6d1f373cb43192b33e68 (patch) | |
tree | fb734615933a39f3d009210dc0d1457160479b35 /WordPress/src/main/java/org/wordpress/android/datasets/SQLTable.java | |
parent | 7e05eb7e57827eddc885570bc00aed8a50320dbf (diff) | |
parent | 025b8b226c8d8edba2b309ca878572f40512eca7 (diff) | |
download | gradle-perf-android-medium-mirror-goog-studio-master-dev.tar.gz |
Merge remote-tracking branch 'origin/upstream-master' into masterHEADstudio-3.4.0studio-3.2.1studio-3.1.2studio-3.0studio-2.3gradle_3.4.0gradle_3.1.2gradle_3.0.0gradle_2.3.0studio-master-devmirror-goog-studio-master-devmastermain
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.java | 68 |
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); + } +} |