package com.wigwamlabs.utils.db; import android.content.ContentValues; import android.database.sqlite.SQLiteDatabase; import android.os.Parcel; import android.os.Parcelable; import com.commonsware.cwac.loaderex.SQLiteCursorLoader; import com.wigwamlabs.veckify.Debug; public class DatabaseEntry implements Parcelable { protected final ContentValues mValues; private final String mTableName; protected DatabaseEntry(String tableName) { mTableName = tableName; mValues = new ContentValues(); } protected DatabaseEntry(String tableName, Parcel in) { mTableName = tableName; mValues = in.readParcelable(DatabaseEntry.class.getClassLoader()); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeParcelable(mValues, 0); } public void clear() { mValues.clear(); } public ContentValues getValues() { return mValues; } protected void update(SQLiteCursorLoader loader, long id) { loader.update(mTableName, mValues, "_id=" + id, null); } public void update(SQLiteCursorLoader loader, long[] ids) { final StringBuilder sb = new StringBuilder(); for (long id : ids) { if (sb.length() > 0) { sb.append(" OR "); } sb.append("_id="); sb.append(id); } loader.update(mTableName, mValues, sb.toString(), null); } public void insert(SQLiteCursorLoader loader) { loader.insert(mTableName, null, mValues); } public void insert(SQLiteDatabase db) { Debug.logSql("INSERT INTO " + mTableName + " VALUES " + mValues); db.insert(mTableName, null, mValues); } }