package com.openfarmanager.android.core.dbadapters;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import com.openfarmanager.android.core.DataStorageHelper;
import com.openfarmanager.android.model.Bookmark;
import static com.openfarmanager.android.core.dbadapters.BookmarkDBAdapter.Columns.*;
public class BookmarkDBAdapter {
public static final String TABLE_NAME = "bookmarks";
public static final class Columns {
public static final String ID = "id";
public static final String LABEL = "label";
public static final String PATH = "path";
public static final String NETWORK_ACCOUNT_ID = "network_account_id";
}
public static final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " ("
+ ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ LABEL + " TEXT not null UNIQUE,"
+ PATH + " TEXT not null,"
+ NETWORK_ACCOUNT_ID + " INTEGER DEFAULT -1);";
public static Cursor getBookmarks() {
SQLiteDatabase db = DataStorageHelper.getDatabase();
if(db == null) return null;
try {
return db.query(TABLE_NAME, null, null, null, null, null, null);
} catch(Exception e) {
e.printStackTrace();
DataStorageHelper.closeDatabase();
return null;
}
}
public static long insert(Bookmark bookmark) throws SQLiteException {
long defaultValue = -1;
ContentValues values = new ContentValues();
values.put(Columns.LABEL, bookmark.getBookmarkLabel());
values.put(Columns.PATH, bookmark.getBookmarkPath());
values.put(Columns.NETWORK_ACCOUNT_ID, bookmark.getNetworkAccount() != null ? bookmark.getNetworkAccount().getId() : -1);
SQLiteDatabase db = DataStorageHelper.getDatabase();
if(db == null) return defaultValue;
try {
return db.insert(TABLE_NAME, null, values);
} catch(Exception e) {
if (e instanceof SQLiteException) throw (SQLiteException) e;
e.printStackTrace();
return defaultValue;
} finally {
DataStorageHelper.closeDatabase();
}
}
public static void delete(Bookmark bookmark) {
SQLiteDatabase db = DataStorageHelper.getDatabase();
if(db == null || bookmark == null) return;
try {
String where = bookmark == null ? null : "ROWID=" + bookmark.getBookmarkId();
db.delete(TABLE_NAME, where, null);
} catch(Exception e) {
e.printStackTrace();
} finally {
DataStorageHelper.closeDatabase();
}
}
}