import java.util.ArrayList; public class Customer { private final String name; private final ArrayList rentals = new ArrayList<>(); public Customer( String name ) { this.name = name; } public void addRental( Rental arg ) { rentals.add( arg ); } public String getName() { return name; } public String statement() { // add header StringBuilder result = new StringBuilder(); result.append("Rental Record for ").append(getName()).append("\n"); // add line for each rental for( Rental curRental : rentals ) { // show figures for this rental result.append("\t").append(curRental.getMovie().getTitle()).append("\t days rented: ").append(curRental.getDaysRented()).append(" = ").append(String.valueOf( curRental.calculateFee() )).append("\n"); } // add footer lines result.append("Amount owed is ").append(String.valueOf( getTotalAmount() )).append("\n"); result.append("You earned ").append(String.valueOf( getFrequentRenterPoints() )).append(" frequent renter points"); return result.toString(); } public String htmlStatement() { StringBuilder result = new StringBuilder(); result.append("").append("\n"); result.append("

").append("Rental Record for ").append(getName()).append("

").append("\n"); for(Rental curRental : rentals) { result.append("

"); result.append("\t").append(curRental.getMovie().getTitle()); result.append("\t days rented: ").append(curRental.getDaysRented()); result.append(" = ").append(String.valueOf(curRental.calculateFee())).append("\n"); result.append("

\n"); } result.append("

Amount owed is ").append(String.valueOf(getTotalAmount())).append("

\n"); result.append("

You earned ").append(String.valueOf(getFrequentRenterPoints())).append(" frequent renter points

"); return(result.toString()); } private int getFrequentRenterPoints() { int frequentRenterPoints = 0; for( Rental curRental : rentals ) { // add frequent renter points frequentRenterPoints += curRental.calculateBonus(); } return frequentRenterPoints; } private double getTotalAmount() { double totalAmount = 0; for( Rental curRental : rentals ) { double thisAmount = curRental.calculateFee(); totalAmount += thisAmount; } return totalAmount; } }