package com.echo5bravo.govre.DAL; import java.util.ArrayList; import com.echo5bravo.govre.INFO.Trip; import android.content.Context; import android.database.Cursor; public abstract class BusinessBaseTrip{ // LOCAL VARIABLES AND PROPERTIES private static final String TAG = BusinessBaseTrip.class.getSimpleName(); Trip currentTrip = new Trip(); static SQLiteFactoryAdapter dbAdapter; // DATABASE /** Keep track of context so that we can load SQL from string resources */ private final Context myContext; public final Trip getCurrentTrip() { return currentTrip; } public final void setCurrentPerson(Trip value) { currentTrip = value; } public BusinessBaseTrip(Context context) { this.myContext = context; SQLiteFactoryAdapter dbAdapter = SQLiteFactoryAdapter.getSQLiteFactoryAdapterInstance(myContext); try { dbAdapter.createOrUseDataBase(); } catch (Exception e) { //Log.e(TAG, "Error " + e.toString()); } } /*** * Public Function: getAllTrips() * * @return ArrayList<Trip> : All Trips */ public static synchronized ArrayList<Trip> getAllTrips(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 DISTINCT [route_id] " + " ,[service_id] " + " ,[trip_id] " + " ,[trip_headsign] " + " ,[trip_short_name] " + " ,[direction_id] " + " ,[block_id] " + " ,[shape_id] " + " ,CASE WHEN (SUBSTR([service_id], LENGTH([service_id])-1, 2) = '-S') THEN 'SPECIAL' ELSE 'REGULAR' END AS SCHEDULE_TYPE " + " FROM trips; "; //Open Database dbAdapter.openDataBase(); //Log.e(TAG, "BusinessBaseTrip: getAllTrips() database OPEN"); //Create SQLite Cursor Cursor cur = dbAdapter.selectRecordsFromDB(sql, null); //Our container objects ArrayList<Trip> curTripList = new ArrayList<Trip>(); Trip currentTrip = new Trip(); //If anything returned, LOOP through cursor and populate our container objects try { while (cur.moveToNext()) { //Initiate local variables Integer _ROUTE_ID = cur.getInt(cur.getColumnIndex("route_id")); String _SERVICE_ID = cur.getString(cur.getColumnIndex("service_id")); String _TRIP_ID = cur.getString(cur.getColumnIndex("trip_id")); String _TRIP_HEADSIGN = cur.getString(cur.getColumnIndex("trip_headsign")); String _TRIP_SHORT_NAME = cur.getString(cur.getColumnIndex("trip_short_name")); Integer _TRIP_DIRECTION_ID = cur.getInt(cur.getColumnIndex("direction_id")); String _TRIP_BLOCK_ID = cur.getString(cur.getColumnIndex("block_id")); Integer _TRIP_SHAPE_ID = cur.getInt(cur.getColumnIndex("shape_id")); String _TRIP_SCHEDULE_TYPE = cur.getString(cur.getColumnIndex("SCHEDULE_TYPE")); //Create new instance of object currentTrip = new Trip(); currentTrip.ROUTE_ID(_ROUTE_ID); currentTrip.SERVICE_ID(_SERVICE_ID); currentTrip.TRIP_ID(_TRIP_ID); currentTrip.TRIP_HEADSIGN(_TRIP_HEADSIGN); currentTrip.TRIP_SHORT_NAME(_TRIP_SHORT_NAME); currentTrip.TRIP_DIRECTION_ID(_TRIP_DIRECTION_ID); currentTrip.TRIP_BLOCK_ID(_TRIP_BLOCK_ID); currentTrip.TRIP_SHAPE_ID(_TRIP_SHAPE_ID); currentTrip.TRIP_SCHEDULE_TYPE(_TRIP_SCHEDULE_TYPE); //Add newly populated object to ArrayList curTripList.add(currentTrip); } } catch (Exception e) { //Log.e(TAG, "Error " + e.toString()); } finally{ //House Keeping cur.close(); cur.deactivate(); dbAdapter.close(); //Log.e(TAG, "BusinessBaseTrip: getAllTrips() database CLOSED"); } return curTripList; } }