package com.jdroid.android.sqlite;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import com.jdroid.android.application.AbstractApplication;
import com.jdroid.java.collections.Sets;
import java.util.Set;
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String TAG = DatabaseHelper.class.getSimpleName();
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "database";
private static final DatabaseHelper INSTANCE = new DatabaseHelper();
private Set<String> createSQLs = Sets.newHashSet();
private Set<String> dropSQLs = Sets.newHashSet();
public static DatabaseHelper get() {
return INSTANCE;
}
private DatabaseHelper() {
super(AbstractApplication.get(), DATABASE_NAME, null, DATABASE_VERSION);
}
public void addCreateSQL(String sql) {
createSQLs.add(sql);
}
public void addDropSQL(String sql) {
dropSQLs.add(sql);
}
@Override
public void onCreate(SQLiteDatabase db) {
for (String createSQL : createSQLs) {
db.execSQL(createSQL);
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion
+ ", which will destroy all old data");
for (String dropSQL : dropSQLs) {
db.execSQL(dropSQL);
}
onCreate(db);
}
}