/* * Created on 21.8.2004 */ package is.idega.idegaweb.marathon.business; import is.idega.idegaweb.marathon.data.Participant; import java.util.Comparator; import java.util.Iterator; import com.idega.util.Counter; import com.idega.util.datastructures.MultivaluedHashMap; /** * @author laddi */ public class RunGroupComparator implements Comparator { private MultivaluedHashMap map; public RunGroupComparator(MultivaluedHashMap map) { this.map = map; } /* (non-Javadoc) * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ public int compare(Object arg0, Object arg1) { RunGroup r0 = (RunGroup) arg0; RunGroup r1 = (RunGroup) arg1; Counter counter1 = initializeCounter(r0, r0.getCounter()); Counter counter2 = initializeCounter(r1, r1.getCounter()); return counter1.compareTo(counter2); } /** * @param r1 * @param counter2 * @return */ private Counter initializeCounter(RunGroup r1, Counter counter2) { if (counter2 == null) { counter2 = new Counter(); int index = 0; Iterator iter = map.getCollection(r1).iterator(); while (iter.hasNext()) { Participant element = (Participant) iter.next(); if (index < 3) { counter2.addSeconds(element.getRunTime()); } else { //iter.remove(); } index++; } r1.setCounter(counter2); } return counter2; } }