package com.echo5bravo.govre.DAL;
import java.util.ArrayList;
import com.echo5bravo.govre.INFO.CalDates;
import com.echo5bravo.govre.INFO.Vehicle;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteException;
public abstract class BusinessBaseCalDates{
// LOCAL VARIABLES AND PROPERTIES
private static final String TAG = BusinessBaseCalDates.class.getSimpleName();
CalDates currentCalDates = new CalDates();
static SQLiteFactoryAdapter dbAdapter;
// DATABASE
/** Keep track of context so that we can load SQL from string resources */
private final Context myContext;
public final CalDates getCurrentCalDates()
{
return currentCalDates;
}
public final void setCurrentPerson(CalDates value)
{
currentCalDates = value;
}
public BusinessBaseCalDates(Context context) {
this.myContext = context;
SQLiteFactoryAdapter dbAdapter = SQLiteFactoryAdapter.getSQLiteFactoryAdapterInstance(myContext);
try
{
dbAdapter.createOrUseDataBase();
}
catch (Exception e) {
//Log.e(TAG, "Error " + e.toString());
}
}
/***
* Public Function: getAllCalDates()
*
* @return ArrayList<CalDates> : All CalDatess
*/
public static synchronized ArrayList<CalDates> getAllCalDates(Context context)
{
//Create SQLFactoryAdapter instance
SQLiteFactoryAdapter dbAdapter = SQLiteFactoryAdapter.getSQLiteFactoryAdapterInstance(context);
//Logic to create or use the existing database
try
{
dbAdapter.createOrUseDataBase();
}
catch (Exception e) {
//Log.e(TAG, "Error " + e.toString());
}
//Populate SQL
String sql = "SELECT service_id " +
" ,[date] " +
" ,exception_type " +
" FROM calendar_dates; ";
//Open Database
dbAdapter.openDataBase();
//Log.e(TAG, "BusinessBaseCalDates: getAllCalDates() database OPEN");
//Create SQLite Cursor
Cursor cur = dbAdapter.selectRecordsFromDB(sql, null);
//Our container objects
ArrayList<CalDates> curCalDatesList = new ArrayList<CalDates>();
CalDates currentCalDates = new CalDates();
//If anything returned, LOOP through cursor and populate our container objects
try
{
while (cur.moveToNext())
{
//Initiate local variables
String _SERVICE_ID = cur.getString(cur.getColumnIndex("service_id"));
String _CALDATES_DATE = cur.getString(cur.getColumnIndex("date"));
Integer _CALDATES_EXCEPTION_TYPE = cur.getInt(cur.getColumnIndex("exception_type"));
//Create new instance of object
currentCalDates = new CalDates();
currentCalDates.SERVICE_ID(_SERVICE_ID);
currentCalDates.CALDATES_DATE(_CALDATES_DATE);
currentCalDates.CALDATES_EXCEPTION_TYPE(_CALDATES_EXCEPTION_TYPE);
//Add newly populated object to ArrayList
curCalDatesList.add(currentCalDates);
}
}
catch (Exception e) {
//Log.e(TAG, "Error " + e.toString());
}
finally{
//House Keeping
cur.close();
cur.deactivate();
dbAdapter.close();
//Log.e(TAG, "BusinessBaseCalDates: getAllCalDates() database CLOSED");
}
return curCalDatesList;
}
/***
* Public Function: Insert(Context context)
*/
public static void Insert(Context context, ArrayList<CalDates> allCalDates) {
//Create SQLFactoryAdapter instance
SQLiteFactoryAdapter dbAdapter = SQLiteFactoryAdapter.getSQLiteFactoryAdapterInstance(context);
try {
//Open Database
dbAdapter.openDataBase();
//Log.e(TAG, "BusinessBaseVehicle: Insert() database OPEN");
for (CalDates each : allCalDates) {
String _SERVICE_ID = ((each.SERVICE_ID() == null) ? "" : each.SERVICE_ID());
String _CALDATES_DATE = ((each.CALDATES_DATE() == null) ? "" : each.CALDATES_DATE());
Integer _CALDATES_EXCEPTION_TYPE = ((each.CALDATES_EXCEPTION_TYPE() == null) ? 0 : each.CALDATES_EXCEPTION_TYPE());
//LOAD VALUES
ContentValues cv = new ContentValues();
cv.clear();
cv.put("service_id", _SERVICE_ID);
cv.put("date", _CALDATES_DATE);
cv.put("exception_type", _CALDATES_EXCEPTION_TYPE);
//dbAdapter.deleteRecordInDB("vehicles", null, null);
dbAdapter.insertRecordsInDB("calendar_dates", cv);
}
} catch (SQLiteException e) {
//Log.d(TAG, "Insert Calander_Dates Database Error: " + e.toString());
} catch (Exception ex) {
//Log.d(TAG, "Insert Calander_Dates non-SQL Error: " + ex.toString());
} finally {
//House Keeping
dbAdapter.close();
//Log.e(TAG, "BusinessBaseCalDates: Insert() database CLOSED");
}
}
/***
* Public Function: DeleteAll(Context context)
*/
public static void DeleteAll(Context context) {
//Create SQLFactoryAdapter instance
SQLiteFactoryAdapter dbAdapter = SQLiteFactoryAdapter.getSQLiteFactoryAdapterInstance(context);
try {
//Open Database
dbAdapter.openDataBase();
//Log.e(TAG, "BusinessBaseCalDates: DeleteAll() database OPEN");
dbAdapter.deleteRecordInDB("calendar_dates", null, null);
} catch (SQLiteException e) {
//Log.d(TAG, "Delete Calendar Dates Database Error: " + e.toString());
} catch (Exception ex) {
//Log.d(TAG, "Delete Calendar Dates non-SQL Error: " + ex.toString());
} finally {
//House Keeping
dbAdapter.close();
//Log.e(TAG, "BusinessBaseCalDates: DeleteAll() database CLOSED");
}
}
}