package com.databases.example.features.plans;
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 Plan implements Parcelable {
public final int id;
public final int acctId;
public final String name;
public final String value;
public final String type;
public final String category;
public final String memo;
public final String offset;
public final String rate;
public final String next;
public final String scheduled;
public final String cleared;
public Plan(int id, int acctId, String name, String value, String type, String category, String memo, String offset, String rate, String next, String scheduled, String cleared) {
this.id = id;
this.acctId = acctId;
this.name = name;
this.value = value;
this.type = type;
this.category = category;
this.memo = memo;
this.offset = offset;
this.rate = rate;
this.next = next;
this.scheduled = scheduled;
this.cleared = cleared;
}
/**
* Method to get plans out of a cursor object
*
* @param cursor the cursor object containing plans
* @return an array list of all the plans in the cursor object
*/
public static ArrayList<Plan> getPlans(Cursor cursor) {
ArrayList<Plan> plans = new ArrayList<>();
Plan plan;
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
plan = new Plan(
cursor.getInt(cursor.getColumnIndex(DatabaseHelper.PLAN_ID)),
cursor.getInt(cursor.getColumnIndex(DatabaseHelper.PLAN_ACCT_ID)),
cursor.getString(cursor.getColumnIndex(DatabaseHelper.PLAN_NAME)),
cursor.getString(cursor.getColumnIndex(DatabaseHelper.PLAN_VALUE)),
cursor.getString(cursor.getColumnIndex(DatabaseHelper.PLAN_TYPE)),
cursor.getString(cursor.getColumnIndex(DatabaseHelper.PLAN_CATEGORY)),
cursor.getString(cursor.getColumnIndex(DatabaseHelper.PLAN_MEMO)),
cursor.getString(cursor.getColumnIndex(DatabaseHelper.PLAN_OFFSET)),
cursor.getString(cursor.getColumnIndex(DatabaseHelper.PLAN_RATE)),
cursor.getString(cursor.getColumnIndex(DatabaseHelper.PLAN_NEXT)),
cursor.getString(cursor.getColumnIndex(DatabaseHelper.PLAN_SCHEDULED)),
cursor.getString(cursor.getColumnIndex(DatabaseHelper.PLAN_CLEARED))
);
plans.add(plan);
}
return plans;
}
@Override
public String toString() {
return "Plan{" +
"id=" + id +
", acctId=" + acctId +
", name='" + name + '\'' +
", value='" + value + '\'' +
", type='" + type + '\'' +
", category='" + category + '\'' +
", memo='" + memo + '\'' +
", offset='" + offset + '\'' +
", rate='" + rate + '\'' +
", next='" + next + '\'' +
", scheduled='" + scheduled + '\'' +
", cleared='" + cleared + '\'' +
'}';
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(this.id);
dest.writeInt(this.acctId);
dest.writeString(this.name);
dest.writeString(this.value);
dest.writeString(this.type);
dest.writeString(this.category);
dest.writeString(this.memo);
dest.writeString(this.offset);
dest.writeString(this.rate);
dest.writeString(this.next);
dest.writeString(this.scheduled);
dest.writeString(this.cleared);
}
protected Plan(Parcel in) {
this.id = in.readInt();
this.acctId = in.readInt();
this.name = in.readString();
this.value = in.readString();
this.type = in.readString();
this.category = in.readString();
this.memo = in.readString();
this.offset = in.readString();
this.rate = in.readString();
this.next = in.readString();
this.scheduled = in.readString();
this.cleared = in.readString();
}
public static final Parcelable.Creator<Plan> CREATOR = new Parcelable.Creator<Plan>() {
@Override
public Plan createFromParcel(Parcel source) {
return new Plan(source);
}
@Override
public Plan[] newArray(int size) {
return new Plan[size];
}
};
}