package com.databases.example.features.checkbook.transactions; import android.database.Cursor; import android.os.Parcel; import android.os.Parcelable; import com.databases.example.database.DatabaseHelper; import java.util.ArrayList; //An Object Class used to hold the data of each transaction record public class Transaction implements Parcelable { public final int id; public final int acctId; public final int planId; public final String name; public final String value; public final String type; public final String category; public final String checknum; public final String memo; public final String date; public final String time; public final String cleared; public Transaction(int id, int acctId, int planId, String name, String value, String type, String category, String checknum, String memo, String date, String time, String cleared) { this.id = id; this.acctId = acctId; this.planId = planId; this.name = name; this.value = value; this.type = type; this.category = category; this.checknum = checknum; this.memo = memo; this.date = date; this.time = time; this.cleared = cleared; } /** * Method to get transactions out of a cursor object * * @param cursor the cursor object containing transactions * @return an array list of all the transactions in the cursor object */ public static ArrayList<Transaction> getTransactions(Cursor cursor) { ArrayList<Transaction> transactions = new ArrayList<>(); Transaction transaction; for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { transaction = new Transaction( cursor.getInt(cursor.getColumnIndex(DatabaseHelper.TRANS_ID)), cursor.getInt(cursor.getColumnIndex(DatabaseHelper.TRANS_ACCT_ID)), cursor.getInt(cursor.getColumnIndex(DatabaseHelper.TRANS_PLAN_ID)), cursor.getString(cursor.getColumnIndex(DatabaseHelper.TRANS_NAME)), cursor.getString(cursor.getColumnIndex(DatabaseHelper.TRANS_VALUE)), cursor.getString(cursor.getColumnIndex(DatabaseHelper.TRANS_TYPE)), cursor.getString(cursor.getColumnIndex(DatabaseHelper.TRANS_CATEGORY)), cursor.getString(cursor.getColumnIndex(DatabaseHelper.TRANS_CHECKNUM)), cursor.getString(cursor.getColumnIndex(DatabaseHelper.TRANS_MEMO)), cursor.getString(cursor.getColumnIndex(DatabaseHelper.TRANS_DATE)), cursor.getString(cursor.getColumnIndex(DatabaseHelper.TRANS_TIME)), cursor.getString(cursor.getColumnIndex(DatabaseHelper.TRANS_CLEARED)) ); transactions.add(transaction); } return transactions; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(this.id); dest.writeInt(this.acctId); dest.writeInt(this.planId); dest.writeString(this.name); dest.writeString(this.value); dest.writeString(this.type); dest.writeString(this.category); dest.writeString(this.checknum); dest.writeString(this.memo); dest.writeString(this.date); dest.writeString(this.time); dest.writeString(this.cleared); } protected Transaction(Parcel in) { this.id = in.readInt(); this.acctId = in.readInt(); this.planId = in.readInt(); this.name = in.readString(); this.value = in.readString(); this.type = in.readString(); this.category = in.readString(); this.checknum = in.readString(); this.memo = in.readString(); this.date = in.readString(); this.time = in.readString(); this.cleared = in.readString(); } public static final Parcelable.Creator<Transaction> CREATOR = new Parcelable.Creator<Transaction>() { @Override public Transaction createFromParcel(Parcel source) { return new Transaction(source); } @Override public Transaction[] newArray(int size) { return new Transaction[size]; } }; }