/** * */ package semtex.archery.data; import java.sql.SQLException; import semtex.archery.data.dao.*; import semtex.archery.data.entities.*; import android.content.Context; 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.dao.RuntimeExceptionDao; import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.table.TableUtils; /** * @author semteX * */ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { public static final String DATABASE_NAME = "tac.db"; private static final int DATABASE_VERSION = 6; private RuntimeExceptionDao<User, Long> userDao; private TargetRuntimeExceptionDao targetDao; private TargetHitRuntimeExceptionDao targetHitDao; private RuntimeExceptionDao<UserVisit, Long> userVisitDao; private VisitRuntimeExceptionDao visitDao; private RuntimeExceptionDao<Parcour, Long> parcourDao; private VersionRuntimeExceptionDao versionDao; /* * (non-Javadoc) * * @see com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper#onCreate(android.database.sqlite.SQLiteDatabase, * com.j256.ormlite.support.ConnectionSource) */ public DatabaseHelper(final Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(final SQLiteDatabase database, final ConnectionSource connectionSource) { try { TableUtils.createTable(connectionSource, User.class); TableUtils.createTable(connectionSource, Parcour.class); TableUtils.createTable(connectionSource, Version.class); TableUtils.createTable(connectionSource, Visit.class); TableUtils.createTable(connectionSource, UserVisit.class); TableUtils.createTable(connectionSource, Target.class); TableUtils.createTable(connectionSource, TargetHit.class); } catch(final SQLException e) { Log.e(DatabaseHelper.class.getName(), "Unable to create datbases", e); } } /* * (non-Javadoc) * * @see com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper#onUpgrade(android.database.sqlite.SQLiteDatabase, * com.j256.ormlite.support.ConnectionSource, int, int) */ @Override public void onUpgrade(final SQLiteDatabase database, final ConnectionSource connectionSource, final int oldVersion, final int newVersion) { // TODO Auto-generated method stub } public RuntimeExceptionDao<User, Long> getUserDao() { if (userDao == null) { try { final Dao<User, Long> dao = getDao(User.class); userDao = new RuntimeExceptionDao<User, Long>(dao); } catch(final SQLException e) { Log.e(DatabaseHelper.class.getName(), "unable to create dao", e); } } return userDao; } public RuntimeExceptionDao<Parcour, Long> getParcourDao() { if (parcourDao == null) { try { final Dao<Parcour, Long> dao = getDao(Parcour.class); parcourDao = new RuntimeExceptionDao<Parcour, Long>(dao); } catch(final SQLException e) { Log.e(DatabaseHelper.class.getName(), "unable to create dao", e); } } return parcourDao; } public VersionRuntimeExceptionDao getVersionDao() { if (versionDao == null) { try { final IVersionDao dao = getDao(Version.class); versionDao = new VersionRuntimeExceptionDao(dao); } catch(final SQLException e) { Log.e(DatabaseHelper.class.getName(), "unable to create dao", e); } } return versionDao; } public TargetRuntimeExceptionDao getTargetDao() { if (targetDao == null) { try { final ITargetDao dao = getDao(Target.class); targetDao = new TargetRuntimeExceptionDao(dao); } catch(final SQLException e) { Log.e(DatabaseHelper.class.getName(), "unable to create dao", e); } } return targetDao; } public TargetHitRuntimeExceptionDao getTargetHitDao() { if (targetHitDao == null) { try { final ITargetHitDao dao = getDao(TargetHit.class); targetHitDao = new TargetHitRuntimeExceptionDao(dao); } catch(final SQLException e) { Log.e(DatabaseHelper.class.getName(), "unable to create dao", e); } } return targetHitDao; } public RuntimeExceptionDao<UserVisit, Long> getUserVisitDao() { if (userVisitDao == null) { try { final Dao<UserVisit, Long> dao = getDao(UserVisit.class); userVisitDao = new RuntimeExceptionDao<UserVisit, Long>(dao); } catch(final SQLException e) { Log.e(DatabaseHelper.class.getName(), "unable to create dao", e); } } return userVisitDao; } public VisitRuntimeExceptionDao getVisitDao() { if (visitDao == null) { try { final VisitDao dao = getDao(Visit.class); visitDao = new VisitRuntimeExceptionDao(dao); } catch(final SQLException e) { Log.e(DatabaseHelper.class.getName(), "unable to create dao", e); } } return visitDao; } }