package com.databases.example.features.categories; 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 sub-category record public class Subcategory implements Parcelable { public final int id; public final int catId; public final boolean isDefault; public final String name; public final String note; public Subcategory(int id, int catId, boolean isDefault, String name, String note) { this.id = id; this.catId = catId; this.isDefault = isDefault; this.name = name; this.note = note; } /** * Method to get subcategories out of a cursor object * * @param cursor the cursor object containing subcategory * @return an array list of all the subcategories in the cursor object */ public static ArrayList<Subcategory> getSubcategories(Cursor cursor) { ArrayList<Subcategory> subcategories = new ArrayList<>(); Subcategory subcategory; for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { subcategory = new Subcategory( cursor.getInt(cursor.getColumnIndex(DatabaseHelper.SUBCATEGORY_ID)), cursor.getInt(cursor.getColumnIndex(DatabaseHelper.SUBCATEGORY_CAT_ID)), Boolean.parseBoolean(cursor.getString(cursor.getColumnIndex(DatabaseHelper.SUBCATEGORY_IS_DEFAULT))), cursor.getString(cursor.getColumnIndex(DatabaseHelper.SUBCATEGORY_NAME)), cursor.getString(cursor.getColumnIndex(DatabaseHelper.SUBCATEGORY_NOTE)) ); subcategories.add(subcategory); } return subcategories; } @Override public String toString() { return "Subcategory{" + "id=" + id + ", catId=" + catId + ", isDefault=" + isDefault + ", name='" + name + '\'' + ", note='" + note + '\'' + '}'; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(this.id); dest.writeInt(this.catId); dest.writeByte(this.isDefault ? (byte) 1 : (byte) 0); dest.writeString(this.name); dest.writeString(this.note); } protected Subcategory(Parcel in) { this.id = in.readInt(); this.catId = in.readInt(); this.isDefault = in.readByte() != 0; this.name = in.readString(); this.note = in.readString(); } public static final Parcelable.Creator<Subcategory> CREATOR = new Parcelable.Creator<Subcategory>() { @Override public Subcategory createFromParcel(Parcel source) { return new Subcategory(source); } @Override public Subcategory[] newArray(int size) { return new Subcategory[size]; } }; }