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")));

    }

}

