package com.echo5bravo.govre.DAL;
import java.util.ArrayList;
import com.echo5bravo.govre.INFO.Agency;
import android.content.Context;
import android.database.Cursor;
public abstract class BusinessBaseAgency{
// LOCAL VARIABLES AND PROPERTIES
private static final String TAG = BusinessBaseAgency.class.getSimpleName();
Agency currentAgency = new Agency();
static SQLiteFactoryAdapter dbAdapter;
// DATABASE
/** Keep track of context so that we can load SQL from string resources */
private final Context myContext;
public final Agency getCurrentAgency()
{
return currentAgency;
}
public final void setCurrentPerson(Agency value)
{
currentAgency = value;
}
public BusinessBaseAgency(Context context) {
this.myContext = context;
SQLiteFactoryAdapter dbAdapter = SQLiteFactoryAdapter.getSQLiteFactoryAdapterInstance(myContext);
try
{
dbAdapter.createOrUseDataBase();
}
catch (Exception e) {
//Log.e(TAG, "Error " + e.toString());
}
}
/***
* Public Function: getAllAgencies()
*
* @return ArrayList<Agency> : All Agencies
*/
public static synchronized ArrayList<Agency> getAllAgencies(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 agency.agency_id " +
" ,agency.agency_name " +
" ,agency.agency_url " +
" ,agency.agency_timezone " +
" ,agency.agency_lang " +
" ,agency.agency_phone " +
" ,agency.agency_fare_url " +
" FROM " +
" agency; ";
//Open Database
dbAdapter.openDataBase();
//Log.e(TAG, "BusinessBaseAgency: getAllAgencys() database OPEN");
//Create SQLite Cursor
Cursor cur = dbAdapter.selectRecordsFromDB(sql, null);
//Our container objects
ArrayList<Agency> curAgencyList = new ArrayList<Agency>();
Agency currentAgency = new Agency();
//If anything returned, LOOP through cursor and populate our container objects
try
{
while (cur.moveToNext())
{
//Initiate local variables
String _AGENCY_ID = cur.getString(cur.getColumnIndex("agency_id"));
String _AGENCY_NAME = cur.getString(cur.getColumnIndex("agency_name"));
String _AGENCY_URL = cur.getString(cur.getColumnIndex("agency_url"));
String _AGENCY_TIMEZONE = cur.getString(cur.getColumnIndex("agency_timezone"));
String _AGENCY_LANG = cur.getString(cur.getColumnIndex("agency_lang"));
String _AGENCY_PHONE = cur.getString(cur.getColumnIndex("agency_phone"));
String _AGENCY_FARE_URL = cur.getString(cur.getColumnIndex("agency_fare_url"));
//Create new instance of object
currentAgency = new Agency();
currentAgency.AGENCY_ID(_AGENCY_ID);
currentAgency.AGENCY_NAME(_AGENCY_NAME);
currentAgency.AGENCY_URL(_AGENCY_URL);
currentAgency.AGENCY_TIMEZONE(_AGENCY_TIMEZONE);
currentAgency.AGENCY_LANG(_AGENCY_LANG);
currentAgency.AGENCY_PHONE(_AGENCY_PHONE);
currentAgency.AGENCY_FARE_URL(_AGENCY_FARE_URL);
//Add newly populated object to ArrayList
curAgencyList.add(currentAgency);
}
}
catch (Exception e) {
//Log.e(TAG, "Error " + e.toString());
}
finally{
//House Keeping
cur.close();
cur.deactivate();
dbAdapter.close();
//Log.e(TAG, "BusinessBaseAgency: getAllAgencies() database CLOSED");
}
return curAgencyList;
}
}