/** * Retrieve the current portfolio of stock holdings for the given trader Dispatch to the Trade * Portfolio JSP for display * * @param userID The User requesting to view their portfolio * @param ctx the servlet context * @param req the HttpRequest object * @param resp the HttpResponse object * @param results A short description of the results/success of this web request provided on the * web page * @exception javax.servlet.ServletException If a servlet specific exception is encountered * @exception javax.io.IOException If an exception occurs while writing results back to the user */ void doSellRandom( ServletContext ctx, HttpServletRequest req, HttpServletResponse resp, String userID) throws ServletException, IOException { try { // Get the holdiings for this user Collection quoteDataBeans = new ArrayList(); Collection holdingDataBeans = tAction.getHoldings(userID); // Walk through the collection of user // holdings and creating a list of quotes if (holdingDataBeans.size() > 0) { Iterator it = holdingDataBeans.iterator(); while (it.hasNext()) { HoldingDataBean holdingData = (HoldingDataBean) it.next(); this.doSell(ctx, req, resp, userID, holdingData.getHoldingID()); return; } } else { } } catch (java.lang.IllegalArgumentException e) { } catch (Exception e) { } }
public static BigDecimal computeHoldingsTotal(Collection holdingDataBeans) { BigDecimal holdingsTotal = new BigDecimal(0.0).setScale(SCALE); if (holdingDataBeans == null) return holdingsTotal; Iterator it = holdingDataBeans.iterator(); while (it.hasNext()) { HoldingDataBean holdingData = (HoldingDataBean) it.next(); BigDecimal total = holdingData.getPurchasePrice().multiply(new BigDecimal(holdingData.getQuantity())); holdingsTotal = holdingsTotal.add(total); } return holdingsTotal.setScale(SCALE); }
/** * Retrieve the current portfolio of stock holdings for the given trader Dispatch to the Trade * Portfolio JSP for display * * @param userID The User requesting to view their portfolio * @param ctx the servlet context * @param req the HttpRequest object * @param resp the HttpResponse object * @param results A short description of the results/success of this web request provided on the * web page * @exception javax.servlet.ServletException If a servlet specific exception is encountered * @exception javax.io.IOException If an exception occurs while writing results back to the user */ void doPortfolio( ServletContext ctx, HttpServletRequest req, HttpServletResponse resp, String userID, String results) throws ServletException, IOException { try { // Get the holdiings for this user Collection quoteDataBeans = new ArrayList(); Collection holdingDataBeans = tAction.getHoldings(userID); // Walk through the collection of user // holdings and creating a list of quotes if (holdingDataBeans.size() > 0) { Iterator it = holdingDataBeans.iterator(); while (it.hasNext()) { HoldingDataBean holdingData = (HoldingDataBean) it.next(); QuoteDataBean quoteData = tAction.getQuote(holdingData.getQuoteID()); quoteDataBeans.add(quoteData); } } else { results = results + ". Your portfolio is empty."; } req.setAttribute("results", results); req.setAttribute("holdingDataBeans", holdingDataBeans); req.setAttribute("quoteDataBeans", quoteDataBeans); requestDispatch(ctx, req, resp, userID, TradeConfig.getPage(TradeConfig.PORTFOLIO_PAGE)); } catch (java.lang.IllegalArgumentException e) { // this is a user error so I will // forward them to another page rather than throw a 500 req.setAttribute("results", results + "illegal argument:" + e.getMessage()); requestDispatch(ctx, req, resp, userID, TradeConfig.getPage(TradeConfig.PORTFOLIO_PAGE)); // log the exception with an error level of 3 which means, handled exception but would // invalidate a automation run Log.error( e, "TradeServletAction.doPortfolio(...)", "illegal argument, information should be in exception string", "user error"); } catch (Exception e) { // log the exception with error page throw new ServletException( "TradeServletAction.doPortfolio(...)" + " exception user =" + userID, e); } }