Coverage Report - org.homeunix.thecave.buddi.model.Account
 
Classes in this File Line Coverage Branch Coverage Complexity
Account
N/A
N/A
1
 
 1  
 /*
 2  
  * Created on Jul 30, 2007 by wyatt
 3  
  */
 4  
 package org.homeunix.thecave.buddi.model;
 5  
 
 6  
 import java.util.Date;
 7  
 
 8  
 import org.homeunix.thecave.buddi.plugin.api.exception.InvalidValueException;
 9  
 
 10  
 public interface Account extends Source{
 11  
         
 12  
         /**
 13  
          * Get the account type
 14  
          * @return
 15  
          */
 16  
         public AccountType getAccountType();
 17  
         /**
 18  
          * Returns the current balance.  This is a volatile value, and is 
 19  
          * generated by calling updateBalance().
 20  
          * @return
 21  
          */
 22  
         public long getBalance();        
 23  
         /**
 24  
          * Returns the balance as of the given date.
 25  
          * @param d
 26  
          * @return
 27  
          */
 28  
         public long getBalance(Date d);
 29  
         /**
 30  
          * Returns the starting date of this account.
 31  
          * @return
 32  
          */
 33  
         public Date getStartDate();
 34  
         /**
 35  
          * Sets the starting date of this account. 
 36  
          * @param startDate
 37  
          */
 38  
         public void setStartDate(Date startDate);
 39  
         /**
 40  
          * Returns the starting balance associated with this account.
 41  
          * @return
 42  
          */
 43  
         public long getStartingBalance();
 44  
         /**
 45  
          * Sets the account type
 46  
          * @param accountType
 47  
          * @throws InvalidValueException
 48  
          */
 49  
         public void setAccountType(AccountType accountType) throws InvalidValueException;
 50  
         /**
 51  
          * Sets the starting balance
 52  
          * @param startingBalance
 53  
          * @throws InvalidValueException
 54  
          */
 55  
         public void setStartingBalance(long startingBalance) throws InvalidValueException;
 56  
         /**
 57  
          * Updates the balance for this account, by navigating all associated transactions.
 58  
          * Calling this will also update the balanceTo or balanceFrom fields in 
 59  
          * each transaction, representing the balance at the time of that transaction.
 60  
          */
 61  
         public void updateBalance();
 62  
         
 63  
         /**
 64  
          * Sets the overdraft limit for debit accounts, or the credit limit for credit accounts.
 65  
          * @param overdraftLimit
 66  
          */
 67  
         public void setOverdraftCreditLimit(long overdraftLimit) throws InvalidValueException;
 68  
         
 69  
         /**
 70  
          * Returns the overdraft limit for Debit accounts, or Credit Limit for Credit accounts.  
 71  
          * @return
 72  
          */
 73  
         public long getOverdraftCreditLimit();
 74  
         
 75  
         /**
 76  
          * Returns the interest rate.  The rate is given as a long, to three decimal places;
 77  
          * for instance, 6123 would be 6.123%.  Zero means the rate has not been set (logical
 78  
          * equivalent to null).
 79  
          * @return
 80  
          */
 81  
         public long getInterestRate();
 82  
         
 83  
         /**
 84  
          * Sets the interest rate.  The rate is given as a long, to three decimal places;
 85  
          * for instance, 6123 would be 6.123%.  Zero means the rate has not been set (logical
 86  
          * equivalent to null).
 87  
          * @param interestRate
 88  
          */
 89  
         public void setInterestRate(long interestRate) throws InvalidValueException;
 90  
 }