Class Budget

java.lang.Object
com.infinitekind.moneydance.model.MoneydanceSyncableItem
com.infinitekind.moneydance.model.Budget
All Implemented Interfaces:
com.infinitekind.tiksync.SyncableItem

public final class Budget
extends MoneydanceSyncableItem
Represents one item in a budget
  • Field Details

  • Constructor Details

    • Budget

      public Budget​(AccountBook book)
      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​(AccountBook book, java.lang.String key, StreamTable infoTable)
  • Method Details

    • getSyncItemType

      public final java.lang.String getSyncItemType()
      Description copied from class: MoneydanceSyncableItem
      Subclasses should override this to return a static string identifying their type of object
      Specified by:
      getSyncItemType in interface com.infinitekind.tiksync.SyncableItem
      Overrides:
      getSyncItemType in class MoneydanceSyncableItem
    • itemWasUpdated

      protected void itemWasUpdated()
      Load the list of budget items from the underlying table.
      Overrides:
      itemWasUpdated in class MoneydanceSyncableItem
    • duplicateAsNew

      public Budget duplicateAsNew​(java.lang.String newBudgetName)
      Make a new budget with the same items as this one and the given name
    • setModified

      public void setModified()
    • isModified

      public boolean isModified()
    • addBudgetListener

      public void addBudgetListener​(BudgetListener listener)
    • removeBudgetListener

      public void removeBudgetListener​(BudgetListener listener)
    • 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().
    • getAllItems

      public java.util.List<BudgetItem> getAllItems()
    • deleteItem

      public boolean deleteItem()
      Deletes this item and writes a remove-item entry to the syncing system. Use with caution!
      Overrides:
      deleteItem in class MoneydanceSyncableItem
    • 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
    • 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
    • createItem

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

      public BudgetItemList getItemList()
    • toString

      public java.lang.String toString()
      Return the string representation of this budget
      Overrides:
      toString in class java.lang.Object
    • calculate

      public Budget.CalculationResults calculate​(DateRange[] intervals, boolean showAllCategories, boolean showZeroes)
      Compute budgeted and actual values based upon a series of graph intervals, for this budget.
      Parameters:
      intervals - 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 Budget.CalculationResults calculate​(DateRange[] intervals, boolean showAllCategories, boolean showZeroes, boolean rollupUnbudgetedCats)
      Compute budgeted and actual values based upon a series of graph intervals, for this budget.
      Parameters:
      intervals - 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 Budget.CalculationResults 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 Budget.CalculationResults calculate​(DateRange[] dateRanges, AccountBook book, 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.
      book - AccountBook containing the main dadtaset.
      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.
    • calculate

      public static Budget.CalculationResults calculate​(DateRange[] dateRanges, AccountBook book, java.util.List<BudgetItem> items, boolean showAllCategories, boolean showZeroes, boolean rollupUnbudgetedCats)
      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.
      book - AccountBook containing the main dadtaset.
      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.
      rollupUnbudgetedCats - Whether or not to rollup unbudgeted category amonts into parent.
      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.
    • isNewStyle

      public boolean isNewStyle()
    • setPeriodType

      public void setPeriodType​(PeriodType periodType)
    • getPeriodType

      public PeriodType getPeriodType()