Class Budget

  • All Implemented Interfaces:
    com.infinitekind.tiksync.SyncableItem

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

      • SYNCABLE_TYPE_VALUE

        public static final java.lang.String SYNCABLE_TYPE_VALUE
        See Also:
        Constant Field Values
    • Constructor Detail

      • 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.
    • Method Detail

      • 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
      • 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
      • 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()