package se.slide.timy.db;
import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils;
import se.slide.timy.model.Category;
import se.slide.timy.model.Color;
import se.slide.timy.model.Project;
import se.slide.timy.model.Report;
public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
private static final String DATABASE_NAME = "timy.sqlite";
private static final int DATABASE_VERSION = 1;
private Dao<Project, Integer> projectDao = null;
private Dao<Category, Integer> categoryDao = null;
private Dao<Report, Integer> reportDao = null;
private Dao<Color, Integer> colorDao = null;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase arg0, ConnectionSource arg1) {
try {
TableUtils.createTable(connectionSource, Project.class);
TableUtils.createTable(connectionSource, Category.class);
TableUtils.createTable(connectionSource, Report.class);
TableUtils.createTable(connectionSource, Color.class);
} catch (SQLException e) {
Log.e(DatabaseHelper.class.getName(), "Can't create database", e);
throw new RuntimeException(e);
} catch (java.sql.SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase arg0, ConnectionSource arg1, int arg2,
int arg3) {
/*
* try { List<String> allSql = new ArrayList<String>();
* switch(oldVersion) { case 1:
* //allSql.add("alter table AdData add column `new_col` VARCHAR");
* //allSql.add("alter table AdData add column `new_col2` VARCHAR"); }
* for (String sql : allSql) { db.execSQL(sql); } } catch (SQLException
* e) { Log.e(DatabaseHelper.class.getName(),
* "exception during onUpgrade", e); throw new RuntimeException(e); }
*/
}
public Dao<Project, Integer> getProjectDao() {
if (projectDao == null) {
try {
projectDao = getDao(Project.class);
} catch (java.sql.SQLException e) {
e.printStackTrace();
}
}
return projectDao;
}
public Dao<Category, Integer> getCategoryDao() {
if (categoryDao == null) {
try {
categoryDao = getDao(Category.class);
} catch (java.sql.SQLException e) {
e.printStackTrace();
}
}
return categoryDao;
}
public Dao<Report, Integer> getReportDao() {
if (reportDao == null) {
try {
reportDao = getDao(Report.class);
} catch (java.sql.SQLException e) {
e.printStackTrace();
}
}
return reportDao;
}
public Dao<Color, Integer> getColorsDao() {
if (colorDao == null) {
try {
colorDao = getDao(Color.class);
} catch (java.sql.SQLException e) {
e.printStackTrace();
}
}
return colorDao;
}
}