// Merchant.java public class Merchant implements Cloneable, Comparable { String firstName; String lastName; int orders; double rating; public void inputFile(String buffer) { String[] tokens = buffer.trim().split(" "); int i=0; while (tokens[i].length()==0) i++; lastName = tokens[i]; i++; while (tokens[i].length()==0) i++; firstName = tokens[i]; i++; while (tokens[i].length()==0) i++; orders = Integer.parseInt(tokens[i]); i++; while (tokens[i].length()==0) i++; rating = Double.parseDouble(tokens[i]); } public Merchant clone() { Merchant m = null; try { m = (Merchant)super.clone(); } catch (Exception e) { System.out.println(e); } return m; } public int compareTo(Merchant another) { int result = lastName.compareTo(another.lastName); if (result!=0) return result; else return firstName.compareTo(another.firstName); } public boolean equals(Object obj) { if (!(obj instanceof Merchant)) return false; Merchant another = (Merchant) obj; if (lastName.equals(another.lastName) && firstName.equals(another.firstName)) return true; return false; } public void displayOutput() { System.out.println(lastName + "\t" + firstName + "\t" + orders + "\t" + rating); } public String toString() { return lastName + " " + firstName + " " + orders + " " + rating; } }