public List getPortfolio() { List result = new ArrayList(); Map map = new HashMap(); for (Iterator iter2 = getTransactions().iterator(); iter2.hasNext(); ) { Transaction transaction = (Transaction) iter2.next(); PortfolioPosition position = (PortfolioPosition) map.get(transaction.getSecurity()); if (position == null) map.put( transaction.getSecurity(), new PortfolioPosition( this, transaction.getSecurity(), transaction.getQuantity(), transaction.getAmount())); else position.add(transaction.getQuantity(), transaction.getAmount()); } List list = new ArrayList(map.keySet()); Collections.sort( list, new Comparator() { public int compare(Object arg0, Object arg1) { return ((Security) arg0).getDescription().compareTo(((Security) arg1).getDescription()); } }); for (Iterator iter = list.iterator(); iter.hasNext(); ) { Security security = (Security) iter.next(); PortfolioPosition position = (PortfolioPosition) map.get(security); if (position.getQuantity() != 0) result.add(position); } return result; }
public PortfolioPosition getPortfolio(Security security) { PortfolioPosition position = new PortfolioPosition(this, security, 0, 0); for (Iterator iter2 = getTransactions().iterator(); iter2.hasNext(); ) { Transaction transaction = (Transaction) iter2.next(); if (position.getSecurity().equals(transaction.getSecurity())) position.add(transaction.getQuantity(), transaction.getAmount()); } return position; }