com.moneydance.apps.md.model
Class Budget

java.lang.Object
  extended by com.moneydance.apps.md.model.Budget

public final class Budget
extends java.lang.Object

Represents one item in a budget


Constructor Summary
Budget(BudgetList list, RootAccount root)
          Construct a new budget in the context of the given account.
Budget(BudgetList list, RootAccount root, java.lang.String key, StreamTable info)
           
 
Method Summary
static BudgetCalculationResults calculate(DateRange[] dateRanges, RootAccount rootAccount, java.util.List<BudgetItem> items, boolean showAllCategories, boolean showZeroes)
          Compute budgeted and actual amounts, store them in an object that can be used by various clients including the report, dashboard, and budget bars.
 BudgetCalculationResults calculate(com.moneydance.apps.md.controller.time.GraphInterval[] graphIntervals, boolean showAllCategories, boolean showZeroes)
          Compute budgeted and actual values based upon a series of graph intervals, for this budget.
 BudgetCalculationResults calculate(int startDate, int endDate, boolean showAllCategories, boolean showZeroes)
          Compute budgeted and actual values based upon a single date range, for this budget.
 Budget cloneBudget()
          Create a copy of this budget
 boolean containsDate(int dateInt)
          Determine if this budget contains any items that span the date given.
 BudgetItem createItem()
          Create a new item, add it to the list, and return it
 BudgetList getBudgetList()
          Return the list that contains this budget
static int getIntervalIdx(DateRange[] intervals, int date)
          Given a date range list and a date, find the index of the date range in which the date belongs.
 BudgetItem getItem(int i)
          Get the budget item at the given position in the list
 int getItemCount()
          Get the number of items in this budget
 java.lang.String getKey()
          Return the unique key needed to identify this budget for storage
 java.lang.String getName()
          Get the name of this budget
 int indexOf(BudgetItem item)
          Return the position in the item list of the given item
 boolean removeItem(BudgetItem item)
          Remove the given budget item from the list.
 void setBudgetInfo(Budget budget)
          Copies the information from the given budget into this budget.
 void setName(java.lang.String newName)
          Set the name for this budget
 void sortItems()
          Sort the list of budgets
 BudgetItem[] toArray()
          Get a new array of the budget items contained in this list
 java.lang.String toString()
          Return the string representation of this budget
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Budget

public Budget(BudgetList list,
              RootAccount root)
Construct a new budget in the context of the given account. This budget will also need to be added to the list using the BudgetList.addBudget() method.


Budget

public Budget(BudgetList list,
              RootAccount root,
              java.lang.String key,
              StreamTable info)
Method Detail

setBudgetInfo

public void setBudgetInfo(Budget budget)
Copies the information from the given budget into this budget. This is most useful for applying changes from a "working copy" of a budget. A working copy can be obtained by calling cloneBudget().


cloneBudget

public Budget cloneBudget()
Create a copy of this budget


containsDate

public boolean containsDate(int dateInt)
Determine if this budget contains any items that span the date given.

Parameters:
dateInt - The date to test.
Returns:
True if any item spans the date, false otherwise.

getKey

public final java.lang.String getKey()
Return the unique key needed to identify this budget for storage


getBudgetList

public final BudgetList getBudgetList()
Return the list that contains this budget


sortItems

public final void sortItems()
Sort the list of budgets


getName

public java.lang.String getName()
Get the name of this budget


setName

public void setName(java.lang.String newName)
Set the name for this budget


getItemCount

public int getItemCount()
Get the number of items in this budget


getItem

public BudgetItem getItem(int i)
Get the budget item at the given position in the list


toArray

public BudgetItem[] toArray()
Get a new array of the budget items contained in this list


removeItem

public boolean removeItem(BudgetItem item)
Remove the given budget item from the list. Returns true if the item was in the list.


indexOf

public int indexOf(BudgetItem item)
Return the position in the item list of the given item


createItem

public BudgetItem createItem()
Create a new item, add it to the list, and return it


toString

public java.lang.String toString()
Return the string representation of this budget

Overrides:
toString in class java.lang.Object

calculate

public BudgetCalculationResults calculate(com.moneydance.apps.md.controller.time.GraphInterval[] graphIntervals,
                                          boolean showAllCategories,
                                          boolean showZeroes)
Compute budgeted and actual values based upon a series of graph intervals, for this budget.

Parameters:
graphIntervals - Graphing/reporting intervals representing a series of date ranges.
showAllCategories - True if all categories, including unbudgeted ones, are to be shown.
showZeroes - True if budget items with no spending and no budgeted amount are to be included.
Returns:
Object containing the budget results, including actual and budgeted values.

calculate

public BudgetCalculationResults calculate(int startDate,
                                          int endDate,
                                          boolean showAllCategories,
                                          boolean showZeroes)
Compute budgeted and actual values based upon a single date range, for this budget.

Parameters:
startDate - Starting date to include.
endDate - Ending date to include.
showAllCategories - True if all categories, including unbudgeted ones, are to be shown.
showZeroes - True if budget items with no spending and no budgeted amount are to be included.
Returns:
Object containing the budget results, including actual and budgeted values.

calculate

public static BudgetCalculationResults calculate(DateRange[] dateRanges,
                                                 RootAccount rootAccount,
                                                 java.util.List<BudgetItem> items,
                                                 boolean showAllCategories,
                                                 boolean showZeroes)
Compute budgeted and actual amounts, store them in an object that can be used by various clients including the report, dashboard, and budget bars.

Parameters:
dateRanges - List of date ranges to compute actual and budgeted for.
rootAccount - Root account containing all other accounts.
items - List of budget items to compute with.
showAllCategories - True if all categories, including unbudgeted ones, are to be shown.
showZeroes - True if budget items with no spending and no budgeted amount are to be included.
Returns:
Object containing the budget results, including actual and budgeted values.

getIntervalIdx

public static int getIntervalIdx(DateRange[] intervals,
                                 int date)
Given a date range list and a date, find the index of the date range in which the date belongs.

Parameters:
intervals - A list of date intervals.
date - The date to find.
Returns:
An index into the date range list, or -1 if it doesn't fit in any of the ranges.