Class BudgetItem
java.lang.Object
com.infinitekind.moneydance.model.MoneydanceSyncableItem
com.infinitekind.moneydance.model.BudgetItem
- All Implemented Interfaces:
com.infinitekind.tiksync.SyncableItem
,java.lang.Comparable
public final class BudgetItem extends MoneydanceSyncableItem implements java.lang.Comparable
Represents one item in a budget
-
Field Summary
Fields Modifier and Type Field Description static int
INDEFINITE_END_DATE
static int
INTERVAL_ANNUALLY
static int
INTERVAL_BI_MONTHLY
static int
INTERVAL_BI_WEEKLY
static int
INTERVAL_DAILY
static int
INTERVAL_MONTHLY
static int
INTERVAL_NO_REPEAT
static int
INTERVAL_ONCE_ANNUALLY
static int
INTERVAL_ONCE_BI_MONTHLY
static int
INTERVAL_ONCE_BI_WEEKLY
static int
INTERVAL_ONCE_MONTHLY
static int
INTERVAL_ONCE_SEMI_ANNUALLY
static int
INTERVAL_ONCE_SEMI_MONTHLY
static int
INTERVAL_ONCE_TRI_MONTHLY
static int
INTERVAL_ONCE_TRI_WEEKLY
static int
INTERVAL_ONCE_WEEKLY
static int
INTERVAL_SEMI_ANNUALLY
static int
INTERVAL_SEMI_MONTHLY
static int
INTERVAL_TRI_MONTHLY
static int
INTERVAL_TRI_WEEKLY
static int
INTERVAL_WEEKLY
static java.lang.String
SYNCABLE_TYPE_VALUE
Fields inherited from class com.infinitekind.moneydance.model.MoneydanceSyncableItem
book, info, SECURITY_SUBTYPES_ITEM_TYPE
-
Method Summary
Modifier and Type Method Description int
compareTo(java.lang.Object itemObj)
boolean
containsDate(int asOfDate)
Determine if the given date is within the overall date range of the budget item.BudgetItem
duplicateAsNew(Budget newBudget)
Account
getAccount()
Returns the specific account, if any, to or from which funds will be moved.long
getAmount()
Returns the amount that was budgeted, specified in the currency of the transfer account.long
getAmountRelativeToPeriod(BudgetPeriod budgetPeriod)
Get the amount of this budget item relative to the give BudgetPeriodlong
getAmountRelativeToPeriod(BudgetPeriod budgetPeriod, CurrencyType inCurrency)
Get the amount of this budget item relative to the given BudgetPeriodBudget
getBudget()
long
getBudgetImpact(AbstractTxn txn)
Returns the amount that the given transaction has on this budget item, if any.CurrencyType
getCurrency()
Returns the currency that applies to this budget item.DateRange
getDateRange()
int
getInterval()
Returns the type of repeating interval.int
getIntervalEnd(int asOfDate)
Returns the last date of the interval that contains the given date.int
getIntervalEndDate()
Returns the ending date for the last interval, if any.float
getIntervalProration(int asOfDate)
Return a float from zero to 1 indicating how far through the interval the current date is.float
getIntervalProration(int startDate, int endDate)
Return a non-negative float value indicating how much the amount of this budget item should be multiplied by in order to get the budgeted amount for the given period.int
getIntervalStart(int asOfDate)
Returns the beginning date of the interval that contains the given date.int
getIntervalStartDate()
Returns the starting date for the first intervaljava.lang.String
getSyncItemType()
Subclasses should override this to return a static string identifying their type of objectAccount
getTransferAccount()
Returns the specific category or account from or to which funds will be moved.boolean
isIncome()
Return true if this item is considered an incomeprotected void
itemWasUpdated()
Read the information from the underlying storagevoid
setAccount(Account newAccount)
Sets the specific account, if any, to or from which funds will be moved.void
setAmount(long newAmount)
Sets the amount that was budgeted, specified in the currency of the transfer account.void
setBudget(Budget b)
void
setBudgetPeriod(BudgetPeriod budgetPeriod)
Sets the interval based on the given BudgetPeriodvoid
setInterval(int interval)
Sets the type of repeating interval.void
setIntervalEndDate(int intervalEnd)
Sets the ending date for the last interval, if any.void
setIntervalStartDate(int intervalStart)
Sets the starting date for the first intervalvoid
setTransferAccount(Account category)
Sets the specific category or account from or to which funds will be moved.java.lang.String
toString()
java.lang.String
toString(CustomDateFormat dateFmt)
Methods inherited from class com.infinitekind.moneydance.model.MoneydanceSyncableItem
addParameters, addTags, autoSyncsChanges, decodeKeywordList, deleteItem, doesParameterExist, duplicate, encodeKeywordList, equals, getAccountParameter, getAddress, getAddressParameter, getBook, getBooleanParameter, getCurrencyParameter, getCurrencyParameter, getCurrencyParameter, getDoubleParameter, getIntParameter, getKeywords, getLongParameter, getOriginalItem, getParameter, getParameter, getParameterCount, getParameterKeys, getPreference, getPreferenceBoolean, getPreferenceDouble, getPreferenceInt, getPreferenceIntArray, getPreferenceLong, getPreferenceStringList, getPreferenceSublist, getPreferenceSubset, getStringListParameter, getSyncInfo, getSyncTimestamp, getUUID, hasBeenSynced, hashCode, hasKeywordSubstring, initialize, isInEditingMode, isSyncable, itemWasUpdated, itemWillSync, itemWillSync, makeSyncableItem, removeParameter, setAccountParameter, setAddress, setAddressParameter, setCurrencyParameter, setCurrencyParameter, setCurrencyParameter, setDirty, setEditingMode, setKeywords, setParameter, setParameter, setParameter, setParameter, setParameter, setParameter, setParameter, setParameterNoNotify, setPreference, setPreference, setPreference, syncItem
-
Field Details
-
SYNCABLE_TYPE_VALUE
public static final java.lang.String SYNCABLE_TYPE_VALUE- See Also:
- Constant Field Values
-
INTERVAL_NO_REPEAT
public static final int INTERVAL_NO_REPEAT- See Also:
- Constant Field Values
-
INTERVAL_DAILY
public static final int INTERVAL_DAILY- See Also:
- Constant Field Values
-
INTERVAL_WEEKLY
public static final int INTERVAL_WEEKLY- See Also:
- Constant Field Values
-
INTERVAL_BI_WEEKLY
public static final int INTERVAL_BI_WEEKLY- See Also:
- Constant Field Values
-
INTERVAL_TRI_WEEKLY
public static final int INTERVAL_TRI_WEEKLY- See Also:
- Constant Field Values
-
INTERVAL_SEMI_MONTHLY
public static final int INTERVAL_SEMI_MONTHLY- See Also:
- Constant Field Values
-
INTERVAL_MONTHLY
public static final int INTERVAL_MONTHLY- See Also:
- Constant Field Values
-
INTERVAL_BI_MONTHLY
public static final int INTERVAL_BI_MONTHLY- See Also:
- Constant Field Values
-
INTERVAL_TRI_MONTHLY
public static final int INTERVAL_TRI_MONTHLY- See Also:
- Constant Field Values
-
INTERVAL_SEMI_ANNUALLY
public static final int INTERVAL_SEMI_ANNUALLY- See Also:
- Constant Field Values
-
INTERVAL_ANNUALLY
public static final int INTERVAL_ANNUALLY- See Also:
- Constant Field Values
-
INTERVAL_ONCE_WEEKLY
public static final int INTERVAL_ONCE_WEEKLY- See Also:
- Constant Field Values
-
INTERVAL_ONCE_BI_WEEKLY
public static final int INTERVAL_ONCE_BI_WEEKLY- See Also:
- Constant Field Values
-
INTERVAL_ONCE_TRI_WEEKLY
public static final int INTERVAL_ONCE_TRI_WEEKLY- See Also:
- Constant Field Values
-
INTERVAL_ONCE_SEMI_MONTHLY
public static final int INTERVAL_ONCE_SEMI_MONTHLY- See Also:
- Constant Field Values
-
INTERVAL_ONCE_MONTHLY
public static final int INTERVAL_ONCE_MONTHLY- See Also:
- Constant Field Values
-
INTERVAL_ONCE_BI_MONTHLY
public static final int INTERVAL_ONCE_BI_MONTHLY- See Also:
- Constant Field Values
-
INTERVAL_ONCE_TRI_MONTHLY
public static final int INTERVAL_ONCE_TRI_MONTHLY- See Also:
- Constant Field Values
-
INTERVAL_ONCE_SEMI_ANNUALLY
public static final int INTERVAL_ONCE_SEMI_ANNUALLY- See Also:
- Constant Field Values
-
INTERVAL_ONCE_ANNUALLY
public static final int INTERVAL_ONCE_ANNUALLY- See Also:
- Constant Field Values
-
INDEFINITE_END_DATE
public static final int INDEFINITE_END_DATE- See Also:
- Constant Field Values
-
-
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 interfacecom.infinitekind.tiksync.SyncableItem
- Overrides:
getSyncItemType
in classMoneydanceSyncableItem
-
itemWasUpdated
protected void itemWasUpdated()Read the information from the underlying storage- Overrides:
itemWasUpdated
in classMoneydanceSyncableItem
-
duplicateAsNew
-
getBudget
-
setBudget
-
getCurrency
Returns the currency that applies to this budget item. Basically just the currency of the transfer account, or the currency of the account if there is no transfer account. If there is account or transfer account then this returns null. -
getAccount
Returns the specific account, if any, to or from which funds will be moved. If this is null, then the budgeted amount applies to all transfers to or from the transfer account. -
setAccount
Sets the specific account, if any, to or from which funds will be moved. If this is null, then the budgeted amount applies to all transfers to or from the transfer account. -
getBudgetImpact
Returns the amount that the given transaction has on this budget item, if any. -
getIntervalStart
public int getIntervalStart(int asOfDate)Returns the beginning date of the interval that contains the given date. If the given date does not fall within the range for this item then return zero. -
compareTo
public int compareTo(java.lang.Object itemObj)- Specified by:
compareTo
in interfacejava.lang.Comparable
-
containsDate
public boolean containsDate(int asOfDate)Determine if the given date is within the overall date range of the budget item.- Parameters:
asOfDate
- The integer date to test.- Returns:
- True if the item is in date, false if it falls outside of the items date range.
-
getIntervalEnd
public int getIntervalEnd(int asOfDate)Returns the last date of the interval that contains the given date. If the given date does not fall within the range for this item then return zero. -
getIntervalProration
public float getIntervalProration(int startDate, int endDate)Return a non-negative float value indicating how much the amount of this budget item should be multiplied by in order to get the budgeted amount for the given period. -
getIntervalProration
public float getIntervalProration(int asOfDate)Return a float from zero to 1 indicating how far through the interval the current date is. -
getTransferAccount
Returns the specific category or account from or to which funds will be moved. -
isIncome
public boolean isIncome()Return true if this item is considered an income -
setTransferAccount
Sets the specific category or account from or to which funds will be moved. -
getAmountRelativeToPeriod
Get the amount of this budget item relative to the give BudgetPeriod- Parameters:
budgetPeriod
-- Returns:
-
getAmountRelativeToPeriod
Get the amount of this budget item relative to the given BudgetPeriod- Parameters:
budgetPeriod
-inCurrency
- the currency to which the result should be converted, or null to not convert- Returns:
-
getAmount
public long getAmount()Returns the amount that was budgeted, specified in the currency of the transfer account. -
setAmount
public void setAmount(long newAmount)Sets the amount that was budgeted, specified in the currency of the transfer account. -
setBudgetPeriod
Sets the interval based on the given BudgetPeriod- Parameters:
budgetPeriod
-
-
getInterval
public int getInterval()Returns the type of repeating interval. Can be any one of the INTERVAL_ constants. -
setInterval
public void setInterval(int interval)Sets the type of repeating interval. Can be any one of the INTERVAL_ constants. -
getIntervalStartDate
public int getIntervalStartDate()Returns the starting date for the first interval -
setIntervalStartDate
public void setIntervalStartDate(int intervalStart)Sets the starting date for the first interval -
getIntervalEndDate
public int getIntervalEndDate()Returns the ending date for the last interval, if any. If the interval is INTERVAL_NO_REPEAT, then this is the ending date for the manually specified interval -
setIntervalEndDate
public void setIntervalEndDate(int intervalEnd)Sets the ending date for the last interval, if any. If the interval is INTERVAL_NO_REPEAT, then this is the ending date for the manually specified interval -
toString
public java.lang.String toString()- Overrides:
toString
in classjava.lang.Object
-
toString
-
getDateRange
-