コード例 #1
0
  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;
  }
コード例 #2
0
  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;
  }
コード例 #3
0
  /**
   * Return the number of stocks held for the given security.
   *
   * @param security the security to search
   * @return holded quantity
   */
  public int getPosition(Security security) {
    int result = 0;

    Object[] objs = getTransactions().toArray();
    for (int i = 0; i < objs.length; i++) {
      Transaction transaction = (Transaction) objs[i];
      if (transaction.getSecurity().equals(security)) result += transaction.getQuantity();
    }

    return result;
  }
コード例 #4
0
  /**
   * Gets the balance of the account
   *
   * @return the account's balance
   */
  public double getBalance() {
    double result = getInitialBalance();

    Object[] objs = getTransactions().toArray();
    for (int i = 0; i < objs.length; i++) {
      Transaction transaction = (Transaction) objs[i];
      double amount = transaction.getAmount();
      if (getCurrency() != null && !getCurrency().equals(transaction.getSecurity().getCurrency()))
        amount =
            CurrencyConverter.getInstance()
                .convert(
                    transaction.getDate(),
                    amount,
                    transaction.getSecurity().getCurrency(),
                    getCurrency());
      result += amount;
    }

    return result;
  }