package org.richfaces.demo.tables.model.expenses; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ExpenseReport { private List<ExpenseReportRecord> records = null; public List<ExpenseReportRecord> getRecords() { if (records == null) { initRecords(); } return records; } public void setRecords(List<ExpenseReportRecord> records) { this.records = records; } public double getTotalMeals() { double ret = 0.0; Iterator<ExpenseReportRecord> it = getRecords().iterator(); while (it.hasNext()) { ExpenseReportRecord record = (ExpenseReportRecord) it.next(); ret += record.getTotalMeals(); } return ret; } public double getTotalHotels() { double ret = 0.0; Iterator<ExpenseReportRecord> it = getRecords().iterator(); while (it.hasNext()) { ExpenseReportRecord record = (ExpenseReportRecord) it.next(); ret += record.getTotalHotels(); } return ret; } public double getTotalTransport() { double ret = 0.0; Iterator<ExpenseReportRecord> it = getRecords().iterator(); while (it.hasNext()) { ExpenseReportRecord record = (ExpenseReportRecord) it.next(); ret += record.getTotalTransport(); } return ret; } public double getGrandTotal() { return getTotalMeals() + getTotalHotels() + getTotalTransport(); } public int getRecordsCount() { return getRecords().size(); } private void initRecords() { records = new ArrayList<ExpenseReportRecord>(); ExpenseReportRecord rec; rec = new ExpenseReportRecord(); rec.setCity("San Jose"); rec.getItems().add(new ExpenseReportRecordItem("25-Aug-97", 37.74, 112.0, 45.0, "San Jose")); rec.getItems().add(new ExpenseReportRecordItem("26-Aug-97", 27.28, 112.0, 45.0, "San Jose")); records.add(rec); rec = new ExpenseReportRecord(); rec.setCity("Seattle"); rec.getItems().add(new ExpenseReportRecordItem("27-Aug-97", 96.25, 109.0, 36.00, "Seattle")); rec.getItems().add(new ExpenseReportRecordItem("28-Aug-97", 35.0, 109.0, 36.0, "Seattle")); records.add(rec); } }