|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.geronimo.samples.daytrader.direct.TradeDirect
public class TradeDirect
TradeDirect uses direct JDBC and JMS access to a javax.sql.DataSource
to implement the business methods
of the Trade online broker application. These business methods represent the features and operations that
can be performed by customers of the brokerage such as login, logout, get a stock quote, buy or sell a stock, etc.
and are specified in the TradeServices
interface
Note: In order for this class to be thread-safe, a new TradeJDBC must be created
for each call to a method from the TradeInterface interface. Otherwise, pooled
connections may not be released.
TradeServices
,
Trade
Constructor Summary | |
---|---|
TradeDirect()
Zero arg constructor for TradeDirect |
|
TradeDirect(boolean inSession)
|
Method Summary | |
---|---|
OrderDataBean |
buy(String userID,
String symbol,
double quantity,
int orderProcessingMode)
Purchase a stock and create a new holding for the given user. |
void |
cancelOrder(Integer orderID,
boolean twoPhase)
Cancel the Order identefied by orderID The boolean twoPhase specifies to the server implementation whether or not the method is to participate in a global transaction |
void |
cancelOrderOnePhase(Integer orderID)
|
String |
checkDBProductName()
|
OrderDataBean |
completeOrder(Integer orderID,
boolean twoPhase)
Complete the Order identefied by orderID Orders are submitted through JMS to a Trading agent and completed asynchronously. |
OrderDataBean |
completeOrderOnePhase(Integer orderID)
|
QuoteDataBean |
createQuote(String symbol,
String companyName,
BigDecimal price)
Given a market symbol, price, and details, create and return a new QuoteDataBean |
static void |
destroy()
|
AccountDataBean |
getAccountData(int accountID)
|
AccountDataBean |
getAccountData(String userID)
Return an AccountDataBean object for userID describing the account |
AccountProfileDataBean |
getAccountProfileData(String userID)
Return an AccountProfileDataBean for userID providing the users profile |
Collection |
getAllQuotes()
Return a Collection of QuoteDataBean
describing all current quotes |
Collection |
getClosedOrders(String userID)
Get the collection of completed orders for a given account that need to be alerted to the user |
HoldingDataBean |
getHolding(Integer holdingID)
Return a specific user stock holding identifed by the holdingID |
Collection |
getHoldings(String userID)
Return the portfolio of stock holdings for the specified customer as a collection of HoldingDataBeans |
MarketSummaryDataBean |
getMarketSummary()
Compute and return a snapshot of the current market conditions This includes the TSIA - an index of the price of the top 100 Trade stock quotes The openTSIA ( the index at the open) The volume of shares traded, Top Stocks gain and loss |
Collection |
getOrders(String userID)
Get the collection of all orders for a given account |
QuoteDataBean |
getQuote(String symbol)
Return a QuoteDataBean describing a current quote for the given stock symbol |
static void |
init()
|
AccountDataBean |
login(String userID,
String password)
Attempt to authenticate and login a user with the given password |
void |
logout(String userID)
Logout the given user |
void |
orderCompleted(String userID,
Integer orderID)
Signify an order has been completed for the given userID |
void |
queueOrder(Integer orderID,
boolean twoPhase)
Queue the Order identified by orderID to be processed Orders are submitted through JMS to a Trading Broker and completed asynchronously. |
boolean |
recreateDBTables(Object[] sqlBuffer,
PrintWriter out)
|
AccountDataBean |
register(String userID,
String password,
String fullname,
String address,
String email,
String creditcard,
BigDecimal openBalance)
Register a new Trade customer. |
RunStatsDataBean |
resetTrade(boolean deleteAll)
Reset the TradeData by - removing all newly registered users by scenario servlet (i.e. users with userID's beginning with "ru:") * - removing all buy/sell order pairs - setting logoutCount = loginCount return statistics for this benchmark run |
OrderDataBean |
sell(String userID,
Integer holdingID,
int orderProcessingMode)
Sell a stock holding and removed the holding for the given user. |
AccountProfileDataBean |
updateAccountProfile(AccountProfileDataBean profileData)
Update userID's account profile information using the provided AccountProfileDataBean object |
QuoteDataBean |
updateQuotePriceVolume(String symbol,
BigDecimal changeFactor,
double sharesTraded)
Update the stock quote price and volume for the specified stock symbol |
QuoteDataBean |
updateQuotePriceVolumeInt(String symbol,
BigDecimal changeFactor,
double sharesTraded,
boolean publishQuotePriceChange)
Update a quote's price and volume |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public TradeDirect()
public TradeDirect(boolean inSession)
Method Detail |
---|
public MarketSummaryDataBean getMarketSummary() throws Exception
TradeServices
getMarketSummary
in interface TradeServices
Exception
TradeServices.getMarketSummary()
public OrderDataBean buy(String userID, String symbol, double quantity, int orderProcessingMode) throws Exception
TradeServices
buy
in interface TradeServices
userID
- the customer requesting the stock purchasesymbol
- the symbol of the stock being purchasedquantity
- the quantity of shares to purchase
Exception
TradeServices#buy(String, String, double)
public OrderDataBean sell(String userID, Integer holdingID, int orderProcessingMode) throws Exception
TradeServices
sell
in interface TradeServices
userID
- the customer requesting the sellholdingID
- the users holding to be sold
Exception
TradeServices#sell(String, Integer)
public void queueOrder(Integer orderID, boolean twoPhase) throws Exception
TradeServices
queueOrder
in interface TradeServices
orderID
- the Order being queued for processing
Exception
TradeServices#queueOrder(Integer)
public OrderDataBean completeOrder(Integer orderID, boolean twoPhase) throws Exception
TradeServices
completeOrder
in interface TradeServices
orderID
- the Order to complete
Exception
TradeServices#completeOrder(Integer)
public OrderDataBean completeOrderOnePhase(Integer orderID) throws Exception
Exception
public void cancelOrder(Integer orderID, boolean twoPhase) throws Exception
TradeServices
cancelOrder
in interface TradeServices
orderID
- the Order to complete
Exception
TradeServices.cancelOrder(Integer, boolean)
public void cancelOrderOnePhase(Integer orderID) throws Exception
Exception
public void orderCompleted(String userID, Integer orderID) throws Exception
TradeServices
orderCompleted
in interface TradeServices
userID
- the user for which an order has completedorderID
- the order which has completed
Exception
public Collection getOrders(String userID) throws Exception
TradeServices
getOrders
in interface TradeServices
userID
- the customer account to retrieve orders for
Exception
TradeServices.getOrders(String)
public Collection getClosedOrders(String userID) throws Exception
TradeServices
getClosedOrders
in interface TradeServices
userID
- the customer account to retrieve orders for
Exception
TradeServices.getClosedOrders(String)
public QuoteDataBean createQuote(String symbol, String companyName, BigDecimal price) throws Exception
TradeServices
QuoteDataBean
createQuote
in interface TradeServices
symbol
- the symbol of the stockprice
- the current stock price
Exception
TradeServices.createQuote(String, String, BigDecimal)
public QuoteDataBean getQuote(String symbol) throws Exception
TradeServices
QuoteDataBean
describing a current quote for the given stock symbol
getQuote
in interface TradeServices
symbol
- the stock symbol to retrieve the current Quote
Exception
TradeServices.getQuote(String)
public Collection getAllQuotes() throws Exception
TradeServices
Collection
of QuoteDataBean
describing all current quotes
getAllQuotes
in interface TradeServices
Exception
TradeServices#getAllQuotes(String)
public Collection getHoldings(String userID) throws Exception
TradeServices
getHoldings
in interface TradeServices
userID
- the customer requesting the portfolio
Exception
TradeServices.getHoldings(String)
public HoldingDataBean getHolding(Integer holdingID) throws Exception
TradeServices
getHolding
in interface TradeServices
holdingID
- the holdingID to return
Exception
TradeServices.getHolding(Integer)
public AccountDataBean getAccountData(String userID) throws RemoteException
TradeServices
getAccountData
in interface TradeServices
userID
- the account userID to lookup
RemoteException
TradeServices.getAccountData(String)
public AccountDataBean getAccountData(int accountID) throws Exception
Exception
TradeServices.getAccountData(String)
public AccountProfileDataBean getAccountProfileData(String userID) throws Exception
TradeServices
getAccountProfileData
in interface TradeServices
userID
- the account userID to lookup
Exception
TradeServices.getAccountProfileData(String)
public AccountProfileDataBean updateAccountProfile(AccountProfileDataBean profileData) throws Exception
TradeServices
updateAccountProfile
in interface TradeServices
Exception
TradeServices.updateAccountProfile(AccountProfileDataBean)
public QuoteDataBean updateQuotePriceVolume(String symbol, BigDecimal changeFactor, double sharesTraded) throws Exception
TradeServices
updateQuotePriceVolume
in interface TradeServices
symbol
- for stock quote to update
Exception
public QuoteDataBean updateQuotePriceVolumeInt(String symbol, BigDecimal changeFactor, double sharesTraded, boolean publishQuotePriceChange) throws Exception
symbol
- The PK of the quotechangeFactor
- the percent to change the old price by (between 50% and 150%)sharedTraded
- the ammount to add to the current volumepublishQuotePriceChange
- used by the PingJDBCWrite Primitive to ensure no JMS is used, should
be true for all normal calls to this API
Exception
public AccountDataBean login(String userID, String password) throws Exception
TradeServices
login
in interface TradeServices
userID
- the customer to loginpassword
- the password entered by the customer for authentication
Exception
TradeServices.login(String, String)
public void logout(String userID) throws Exception
TradeServices
logout
in interface TradeServices
userID
- the customer to logout
Exception
TradeServices.logout(String)
public AccountDataBean register(String userID, String password, String fullname, String address, String email, String creditcard, BigDecimal openBalance) throws Exception
TradeServices
register
in interface TradeServices
userID
- the new customer to registerpassword
- the customers passwordfullname
- the customers fullnameaddress
- the customers street addressemail
- the customers email addresscreditcard
- the customers creditcard number
Exception
TradeServices#register(String, String, String, String, String, String, BigDecimal, boolean)
public String checkDBProductName() throws Exception
Exception
public boolean recreateDBTables(Object[] sqlBuffer, PrintWriter out) throws Exception
Exception
public RunStatsDataBean resetTrade(boolean deleteAll) throws Exception
TradeServices
resetTrade
in interface TradeServices
Exception
public static void init()
public static void destroy()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |