import StringComparator; public class SubjectComparator implements Comparator { //constructor StringComparator comp = new StringComparator(); String subject1; String subject2; public boolean lessThan(Object first, Object second) { subject1 = ((MailMessage)first).getField("subject"); subject2 = ((MailMessage)second).getField("subject"); String tmp1 = subject1; String tmp2 = subject2; if ((tmp1.substring(1,4)).equals("Re: ")) { if ((tmp2.substring(1,4)).equals("Re: ")) return (comp.lessThan(tmp1.substring(5,tmp1.length()),tmp2.substring(5,tmp2.length()))); else return (comp.lessThan(tmp1.substring(5,tmp1.length()),tmp2)); }//if if ((tmp1.substring(1,5)).equals("Fwd: ")) { if ((tmp2.substring(1,4)).equals("Fwd: ")) return (comp.lessThan(tmp2.substring(6,tmp2.length()),tmp2.substring(6,tmp2.length()))); else return (comp.lessThan(tmp1.substring(6,tmp1.length()),tmp2)); }//if if ((tmp2.substring(1,4)).equals("Re: ")) { return comp.lessThan(tmp1,tmp2.substring(5,tmp2.length())); } if ((tmp2.substring(1,4)).equals("Fwd:")) { return comp.lessThan(tmp1,tmp2.substring(5,tmp2.length())); }//if return (comp.lessThan(subject1,subject2)); } public boolean equals(Object first, Object second) { return (comp.equals(((MailMessage)first).getField("subject"), ((MailMessage)second).getField("subject"))); } }