KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > claros > chat > utility > RosterComparator


1 package org.claros.chat.utility;
2
3 import java.util.Comparator JavaDoc;
4 import java.util.HashMap JavaDoc;
5
6 import org.claros.chat.models.Contact;
7
8 /**
9  * @author Umut Gokbayrak
10  */

11 public class RosterComparator implements Comparator JavaDoc {
12     private static HashMap JavaDoc map = new HashMap JavaDoc();
13     
14     static {
15         map.put("chat", new Integer JavaDoc(1));
16         map.put("available", new Integer JavaDoc(2));
17         map.put("away", new Integer JavaDoc(3));
18         map.put("extended_away", new Integer JavaDoc(3));
19         map.put("disturb", new Integer JavaDoc(4));
20         map.put("invisible", new Integer JavaDoc(5));
21         map.put("offline", new Integer JavaDoc(6));
22     }
23
24     /* (non-Javadoc)
25      * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
26      */

27     public int compare(Object JavaDoc arg0, Object JavaDoc arg1) {
28         Contact c1 = (Contact)arg0;
29         Contact c2 = (Contact)arg1;
30         Integer JavaDoc p1 = (Integer JavaDoc)map.get(c1.getPresence());
31         Integer JavaDoc p2 = (Integer JavaDoc)map.get(c2.getPresence());
32         if (p1 == null) {
33             p1 = new Integer JavaDoc(10);
34         }
35         if (p2 == null) {
36             p2 = new Integer JavaDoc(10);
37         }
38         if (p1.equals(p2)) {
39             return c1.getName().compareTo(c2.getName());
40         }
41         return p1.compareTo(p2);
42     }
43 }
44
Popular Tags