org.neuclear.ledger.prevalent
Class PrevalentLedger

java.lang.Object
  extended byorg.neuclear.ledger.Ledger
      extended byorg.neuclear.ledger.prevalent.PrevalentLedger
All Implemented Interfaces:
java.io.Serializable

public class PrevalentLedger
extends org.neuclear.ledger.Ledger
implements java.io.Serializable

Created by IntelliJ IDEA. User: pelleb Date: Mar 20, 2004 Time: 1:03:54 PM To change this template use File | Settings | File Templates.

See Also:
Serialized Form

Constructor Summary
PrevalentLedger(java.lang.String id, java.lang.String basedir)
           
 
Method Summary
 void close()
           
 org.neuclear.ledger.PostedHeldTransaction findHeldTransaction(java.lang.String idstring)
          Searches for a Held Transaction based on its Transaction ID
 double getAvailableBalance(java.lang.String book)
          Calculate the available balance at a given time.
 double getBalance(java.lang.String book)
          Calculate the true accounting balance at a given time.
 java.util.Date getTransactionTime(java.lang.String id)
          Searches for a Transaction based on its Transaction ID
 void performCancelHold(org.neuclear.ledger.PostedHeldTransaction hold)
          Cancels a Held Transaction.
 org.neuclear.ledger.PostedTransaction performCompleteHold(org.neuclear.ledger.PostedHeldTransaction hold, double amount, java.lang.String comment)
           
 org.neuclear.ledger.PostedHeldTransaction performHeldTransfer(org.neuclear.ledger.UnPostedHeldTransaction trans)
          The basic interface for creating Transactions in the database.
 org.neuclear.ledger.PostedTransaction performTransaction(org.neuclear.ledger.UnPostedTransaction trans)
          The basic interface for creating Transactions in the database.
 org.neuclear.ledger.PostedTransaction performVerifiedTransfer(org.neuclear.ledger.UnPostedTransaction trans)
          Similar to a transaction but guarantees that there wont be any negative balances left after the transaction.
 
Methods inherited from class org.neuclear.ledger.Ledger
cancel, complete, getId, hold, hold, toString, transfer, transfer, verifiedTransfer, verifiedTransfer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PrevalentLedger

public PrevalentLedger(java.lang.String id,
                       java.lang.String basedir)
                throws java.io.IOException,
                       java.lang.ClassNotFoundException
Method Detail

performTransaction

public org.neuclear.ledger.PostedTransaction performTransaction(org.neuclear.ledger.UnPostedTransaction trans)
                                                         throws org.neuclear.ledger.UnBalancedTransactionException,
                                                                org.neuclear.ledger.LowlevelLedgerException,
                                                                org.neuclear.ledger.InvalidTransactionException
The basic interface for creating Transactions in the database. The implementing class takes this transacion information and stores it with an automatically generated uniqueid. This id is returned as an identifier of the transaction.

Parameters:
trans - Transaction to perform
Returns:
Unique ID
Throws:
org.neuclear.ledger.UnBalancedTransactionException
org.neuclear.ledger.LowlevelLedgerException
org.neuclear.ledger.InvalidTransactionException

performVerifiedTransfer

public org.neuclear.ledger.PostedTransaction performVerifiedTransfer(org.neuclear.ledger.UnPostedTransaction trans)
                                                              throws org.neuclear.ledger.UnBalancedTransactionException,
                                                                     org.neuclear.ledger.LowlevelLedgerException,
                                                                     org.neuclear.ledger.InvalidTransactionException
Similar to a transaction but guarantees that there wont be any negative balances left after the transaction.

Parameters:
trans - Transaction to perform
Returns:
The reference to the transaction
Throws:
org.neuclear.ledger.UnBalancedTransactionException
org.neuclear.ledger.LowlevelLedgerException
org.neuclear.ledger.InvalidTransactionException

performHeldTransfer

public org.neuclear.ledger.PostedHeldTransaction performHeldTransfer(org.neuclear.ledger.UnPostedHeldTransaction trans)
                                                              throws org.neuclear.ledger.UnBalancedTransactionException,
                                                                     org.neuclear.ledger.LowlevelLedgerException,
                                                                     org.neuclear.ledger.InvalidTransactionException
The basic interface for creating Transactions in the database. The implementing class takes this transacion information and stores it with an automatically generated uniqueid. This id is returned as an identifier of the transaction.

Parameters:
trans - Transaction to perform
Returns:
Unique ID
Throws:
org.neuclear.ledger.UnBalancedTransactionException
org.neuclear.ledger.LowlevelLedgerException
org.neuclear.ledger.InvalidTransactionException

getTransactionTime

public java.util.Date getTransactionTime(java.lang.String id)
                                  throws org.neuclear.ledger.LowlevelLedgerException,
                                         org.neuclear.ledger.UnknownTransactionException,
                                         org.neuclear.ledger.InvalidTransactionException,
                                         org.neuclear.ledger.UnknownBookException
Searches for a Transaction based on its Transaction ID

Parameters:
id - A valid ID
Returns:
The Transaction object
Throws:
org.neuclear.ledger.LowlevelLedgerException
org.neuclear.ledger.UnknownTransactionException
org.neuclear.ledger.InvalidTransactionException
org.neuclear.ledger.UnknownBookException

getBalance

public double getBalance(java.lang.String book)
                  throws org.neuclear.ledger.LowlevelLedgerException
Calculate the true accounting balance at a given time. This does not take into account any held transactions, thus may not necessarily show the Available balance.

Example sql for implementors:

 select c.credit - d.debit from
      (
          select sum(amount) as credit
          from ledger
          where transactiondate <= sysdate and end_date is null and credit= 'neu://bob'
       ) c,
      (
          select sum(amount) as debit
          from ledger
          where transactiondate <= sysdate and end_date is null and debit= 'neu://bob'
       ) d
 

Returns:
the balance as a double
Throws:
org.neuclear.ledger.LowlevelLedgerException

getAvailableBalance

public double getAvailableBalance(java.lang.String book)
                           throws org.neuclear.ledger.LowlevelLedgerException
Calculate the available balance at a given time. This DOES take into account any held transactions. Example sql for implementors:
 select c.credit - d.debit from
      (
          select sum(amount) as credit
          from ledger
          where transactiondate <= sysdate and (end_date is null or end_date>= sysdate) and credit= 'neu://bob'
       ) c,
      (
          select sum(amount) as debit
          from ledger
          where transactiondate <= sysdate and end_date is null and debit= 'neu://bob'
       ) d
 

Returns:
the balance as a double
Throws:
org.neuclear.ledger.LowlevelLedgerException

findHeldTransaction

public org.neuclear.ledger.PostedHeldTransaction findHeldTransaction(java.lang.String idstring)
                                                              throws org.neuclear.ledger.LowlevelLedgerException,
                                                                     org.neuclear.ledger.UnknownTransactionException
Searches for a Held Transaction based on its Transaction ID

Parameters:
idstring - A valid ID
Returns:
The Transaction object
Throws:
org.neuclear.ledger.LowlevelLedgerException
org.neuclear.ledger.UnknownTransactionException

performCancelHold

public void performCancelHold(org.neuclear.ledger.PostedHeldTransaction hold)
                       throws org.neuclear.ledger.LowlevelLedgerException,
                              org.neuclear.ledger.UnknownTransactionException
Cancels a Held Transaction.

Parameters:
hold -
Throws:
org.neuclear.ledger.LowlevelLedgerException
org.neuclear.ledger.UnknownTransactionException

performCompleteHold

public org.neuclear.ledger.PostedTransaction performCompleteHold(org.neuclear.ledger.PostedHeldTransaction hold,
                                                                 double amount,
                                                                 java.lang.String comment)
                                                          throws org.neuclear.ledger.InvalidTransactionException,
                                                                 org.neuclear.ledger.LowlevelLedgerException,
                                                                 org.neuclear.ledger.TransactionExpiredException
Throws:
org.neuclear.ledger.InvalidTransactionException
org.neuclear.ledger.LowlevelLedgerException
org.neuclear.ledger.TransactionExpiredException

close

public void close()


Copyright © 2003-2004 Antilles Software Ventures SA. All Rights Reserved.