package org.kvj.bravo7;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
abstract public class DBHelper extends SQLiteOpenHelper {
private static final String TAG = "DBHelper";
private SQLiteDatabase database = null;
private int version = -1;
public DBHelper(Context context, String path, int version) {
super(context, path, null, version);
this.version = version;
}
public boolean open() {
try {
Log.i(TAG, "Opening DB...");
SQLiteDatabase db = this.getWritableDatabase();
if (db != null) {
return true;
}
} catch (Exception e) {
Log.e(TAG, "Error opening DB", e);
}
return false;
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.i("DBHelper", "onCreate called - create table");
onUpgrade(db, 0, version);
}
abstract public void migrate(SQLiteDatabase db, int version);
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.i(TAG, "onUpgrade from " + oldVersion + " to " + newVersion);
for (int i = oldVersion + 1; i <= newVersion; i++) {
migrate(db, i);
}
}
@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
Log.i("DBHelper", "onOpen " + db.getVersion());
this.database = db;
}
public SQLiteDatabase getDatabase() {
return database;
}
@Override
protected void finalize() throws Throwable {
Log.i(TAG, "Closing DB...");
super.finalize();
if (database != null) {
database.close();
}
}
}