/** * This method sums the totals of each accounting line, making an entry in a map for each unique * pay fiscal year and pay period. * * @param accountingLines * @return */ protected Map sumAccountingLineAmountsByPayFYAndPayPeriod(List accountingLines) { ExpenseTransferAccountingLine line = null; KualiDecimal linesAmount = KualiDecimal.ZERO; Map linesMap = new HashMap(); String payFYPeriodKey = null; // go through source lines adding amounts to appropriate place in map for (Iterator i = accountingLines.iterator(); i.hasNext(); ) { // initialize line = (ExpenseTransferAccountingLine) i.next(); linesAmount = KualiDecimal.ZERO; // create hash key payFYPeriodKey = createPayFYPeriodKey( line.getPayrollEndDateFiscalYear(), line.getPayrollEndDateFiscalPeriodCode()); // if entry exists, pull from hash if (linesMap.containsKey(payFYPeriodKey)) { linesAmount = (KualiDecimal) linesMap.get(payFYPeriodKey); } // update and store linesAmount = linesAmount.add(line.getAmount()); linesMap.put(payFYPeriodKey, linesAmount); } return linesMap; }