package com.daviancorp.android.data.database; import android.database.Cursor; import android.database.CursorWrapper; import com.daviancorp.android.data.classes.Combining; import com.daviancorp.android.data.classes.Item; /** * A convenience class to wrap a cursor that returns rows from the "combining" * table. The {@link getCombining()} method will give you a Combining instance * representing the current row. */ public class CombiningCursor extends CursorWrapper { public CombiningCursor(Cursor c) { super(c); } /** * Returns a Combining objects configured for the current row, or null if the * current row is invalid. */ public Combining getCombining() { if (isBeforeFirst() || isAfterLast()) return null; String created = "crt"; String mat1 = "mat1"; String mat2 = "mat2"; Combining combining = new Combining(); long combiningId = getLong(getColumnIndex(S.COLUMN_COMBINING_ID)); int amount_made_min = getInt(getColumnIndex(S.COLUMN_COMBINING_AMOUNT_MADE_MIN)); int amount_made_max = getInt(getColumnIndex(S.COLUMN_COMBINING_AMOUNT_MADE_MAX)); int percentage = getInt(getColumnIndex(S.COLUMN_COMBINING_PERCENTAGE)); combining.setId(combiningId); combining.setAmountMadeMin(amount_made_min); combining.setAmountMadeMax(amount_made_max); combining.setPercentage(percentage); Item created_item = itemHelper(created); // Get the resulted Item Item item1 = itemHelper(mat1); // Get the first material Item Item item2 = itemHelper(mat2); // Get the second material Item combining.setCreatedItem(created_item); combining.setItem1(item1); combining.setItem2(item2); return combining; } /* * Helper method to get the data for an Item */ private Item itemHelper(String prefix) { Item item = new Item(); long item_id = getLong(getColumnIndex(prefix + S.COLUMN_ITEMS_ID)); String item_name = getString(getColumnIndex(prefix + S.COLUMN_ITEMS_NAME)); String item_jpnName = getString(getColumnIndex(prefix + S.COLUMN_ITEMS_JPN_NAME)); String item_type = getString(getColumnIndex(prefix + S.COLUMN_ITEMS_TYPE)); int item_rarity = getInt(getColumnIndex(prefix + S.COLUMN_ITEMS_RARITY)); int item_carry_capacity = getInt(getColumnIndex(prefix + S.COLUMN_ITEMS_CARRY_CAPACITY)); int item_buy = getInt(getColumnIndex(prefix + S.COLUMN_ITEMS_BUY)); int item_sell = getInt(getColumnIndex(prefix + S.COLUMN_ITEMS_SELL)); String item_description = getString(getColumnIndex(prefix + S.COLUMN_ITEMS_DESCRIPTION)); String item_fileLocation = getString(getColumnIndex(prefix + S.COLUMN_ITEMS_ICON_NAME)); String item_armor_dupe_name_fix = getString(getColumnIndex(prefix + S.COLUMN_ITEMS_ARMOR_DUPE_NAME_FIX)); item.setId(item_id); item.setName(item_name); item.setJpnName(item_jpnName); item.setType(item_type); item.setRarity(item_rarity); item.setCarryCapacity(item_carry_capacity); item.setBuy(item_buy); item.setSell(item_sell); item.setDescription(item_description); item.setFileLocation(item_fileLocation); item.setArmorDupeNameFix(item_armor_dupe_name_fix); return item; } }