1 package org.sapia.archie.impl; 2 3 import java.util.Collections ; 4 import java.util.Comparator ; 5 import java.util.List ; 6 7 15 public class SelectionHelper { 16 static final Comparator TIME_COMPARATOR = new TimeComparator(); 17 static final Comparator OCCURRENCE_COMPARATOR = new OccurrenceComparator(); 18 19 public static Offer selectLeastRecentlyUsed(List offers){ 20 Collections.sort(offers, TIME_COMPARATOR); 21 return ((Offer)offers.get(0)).select(); 22 } 23 24 public static Offer selectLeastUsed(List offers){ 25 Collections.sort(offers, OCCURRENCE_COMPARATOR); 26 return ((Offer)offers.get(0)).select(); 27 } 28 29 31 static final class TimeComparator implements Comparator { 32 33 36 public int compare(Object comparant, Object 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 { 51 52 55 public int compare(Object comparant, Object 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 |