// StarterKitHelper
package org.javamoney.examples.ez.money.utility;
import static org.javamoney.examples.ez.money.model.DataManager.getAccounts;
import static org.javamoney.examples.ez.money.model.DataManager.getExpenses;
import static org.javamoney.examples.ez.money.model.DataManager.getIncome;
import static org.javamoney.examples.ez.money.model.DataManager.getReminders;
import static org.javamoney.examples.ez.money.model.persisted.account.AccountTypeKeys.CREDIT;
import static org.javamoney.examples.ez.money.model.persisted.account.AccountTypeKeys.DEPOSIT;
import org.javamoney.examples.ez.money.model.persisted.account.Account;
import org.javamoney.examples.ez.money.model.persisted.category.Category;
import org.javamoney.examples.ez.money.model.persisted.reminder.Reminder;
import org.javamoney.examples.ez.common.utility.I18NHelper;
/**
* This class facilitates creating a starter kit. All methods in this class are
* static.
*/
public
final
class
StarterKitHelper
{
/**
* This method creates some generic accounts and categories to get the user
* started with the least amount of effort.
*/
public
static
void
createStarterKit()
{
// Accounts.
getAccounts().add(new Account(CREDIT, getAccount("credit")));
getAccounts().add(new Account(DEPOSIT, getAccount("checking")));
getAccounts().add(new Account(DEPOSIT, getAccount("savings")));
// Expenses.
Category automotive = createExpense("automotive");
Category bills = createExpense("bills");
Category clothing = createExpense("clothing");
Category computer = createExpense("computer");
Category food = createExpense("food");
Category insurance = createExpense("insurance");
Category leisure = createExpense("leisure");
Category personal = createExpense("personal");
automotive.setBudget(100);
automotive.setIsBudgeted(true);
food.setBudget(500);
food.setIsBudgeted(true);
leisure.setBudget(250);
leisure.setIsBudgeted(true);
personal.setBudget(100);
personal.setIsBudgeted(true);
getExpenses().add(automotive);
getExpenses().add(bills);
getExpenses().add(clothing);
getExpenses().add(computer);
getExpenses().add(food);
getExpenses().add(insurance);
getExpenses().add(leisure);
getExpenses().add(personal);
getExpenses().add(createExpense("cash"));
getExpenses().add(createExpense("gifts"));
getExpenses().add(createExpense("healthcare"));
getExpenses().add(createExpense("other"));
getExpenses().add(createExpense("travel"));
getExpenses().addToGroup(automotive, createExpense("automotive.gas"));
getExpenses().addToGroup(automotive, createExpense("automotive.maintenance"));
getExpenses().addToGroup(clothing, createExpense("clothing.shoes"));
getExpenses().addToGroup(computer, createExpense("computer.hardware"));
getExpenses().addToGroup(computer, createExpense("computer.other"));
getExpenses().addToGroup(computer, createExpense("computer.software"));
getExpenses().addToGroup(bills, createExpense("bills.cable"));
getExpenses().addToGroup(bills, createExpense("bills.energy"));
getExpenses().addToGroup(bills, createExpense("bills.internet"));
getExpenses().addToGroup(bills, createExpense("bills.mortgage"));
getExpenses().addToGroup(bills, createExpense("bills.rent"));
getExpenses().addToGroup(bills, createExpense("bills.telephone"));
getExpenses().addToGroup(bills, createExpense("bills.water"));
getExpenses().addToGroup(insurance, createExpense("insurance.automobile"));
getExpenses().addToGroup(insurance, createExpense("insurance.health"));
getExpenses().addToGroup(insurance, createExpense("insurance.home"));
getExpenses().addToGroup(leisure, createExpense("leisure.books"));
getExpenses().addToGroup(leisure, createExpense("leisure.dining"));
getExpenses().addToGroup(leisure, createExpense("leisure.movies"));
getExpenses().addToGroup(personal, createExpense("personal.body"));
// Income.
Category other = createIncome("other");
getIncome().add(other);
getIncome().add(createIncome("net_pay"));
getIncome().addToGroup(other, createIncome("other.bonus"));
getIncome().addToGroup(other, createIncome("other.gift"));
// Reminders.
getReminders().add(new Reminder(getProperty("reminder.credit"), 0));
}
//////////////////////////////////////////////////////////////////////////////
// Start of private methods.
//////////////////////////////////////////////////////////////////////////////
private
static
Category
createExpense(String key)
{
return new Category(getProperty("expense." + key));
}
private
static
Category
createIncome(String key)
{
return new Category(getProperty("income." + key));
}
private
static
String
getAccount(String key)
{
return getProperty("account." + key);
}
private
static
String
getProperty(String key)
{
return I18NHelper.getProperty("StarterKitHelper." + key);
}
}