KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > archie > impl > SelectionHelper


1 package org.sapia.archie.impl;
2
3 import java.util.Collections JavaDoc;
4 import java.util.Comparator JavaDoc;
5 import java.util.List JavaDoc;
6
7 /**
8  * @author Yanick Duchesne
9  * <dl>
10  * <dt><b>Copyright:</b><dd>Copyright &#169; 2002-2003 <a HREF="http://www.sapia-oss.org">Sapia Open Source Software</a>. All Rights Reserved.</dd></dt>
11  * <dt><b>License:</b><dd>Read the license.txt file of the jar or visit the
12  * <a HREF="http://www.sapia-oss.org/license.html">license page</a> at the Sapia OSS web site</dd></dt>
13  * </dl>
14  */

15 public class SelectionHelper {
16   static final Comparator JavaDoc TIME_COMPARATOR = new TimeComparator();
17   static final Comparator JavaDoc OCCURRENCE_COMPARATOR = new OccurrenceComparator();
18   
19   public static Offer selectLeastRecentlyUsed(List JavaDoc offers){
20     Collections.sort(offers, TIME_COMPARATOR);
21     return ((Offer)offers.get(0)).select();
22   }
23   
24   public static Offer selectLeastUsed(List JavaDoc offers){
25     Collections.sort(offers, OCCURRENCE_COMPARATOR);
26     return ((Offer)offers.get(0)).select();
27   }
28   
29   // INNER CLASSES ///////////////////////////////////////////////
30

31   static final class TimeComparator implements Comparator JavaDoc{
32     
33     /**
34      * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
35      */

36     public int compare(Object JavaDoc comparant, Object JavaDoc comparee) {
37       Offer cmpt, cmpee;
38       cmpt = (Offer)comparant;
39       cmpee = (Offer)comparee;
40       if(cmpt.getLastSelectTime() < cmpee.getLastSelectTime()){
41         return -1;
42       }
43       if(cmpt.getLastSelectTime() > cmpee.getLastSelectTime()){
44         return 1;
45       }
46       return 0;
47     }
48   }
49   
50   static final class OccurrenceComparator implements Comparator JavaDoc{
51     
52     /**
53      * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
54      */

55     public int compare(Object JavaDoc comparant, Object JavaDoc comparee) {
56       Offer cmpt, cmpee;
57       cmpt = (Offer)comparant;
58       cmpee = (Offer)comparee;
59       if(cmpt.getSelectCount() < cmpee.getSelectCount()){
60         return -1;
61       }
62       if(cmpt.getSelectCount() > cmpee.getSelectCount()){
63         return 1;
64       }
65       return 0;
66     }
67   }
68 }
69
Popular Tags