Home | History | Annotate | Download | only in runner
      1 package junit.runner;
      2 
      3 import java.util.*;
      4 
      5 import junit.runner.*;
      6 
      7 /**
      8  * A custom quick sort with support to customize the swap behaviour.
      9  * NOTICE: We can't use the the sorting support from the JDK 1.2 collection
     10  * classes because of the JDK 1.1.7 compatibility.
     11  * {@hide} - Not needed for 1.0 SDK
     12  */
     13 public class Sorter {
     14     public static interface Swapper {
     15         public void swap(Vector values, int left, int right);
     16     }
     17 
     18     public static void sortStrings(Vector values , int left, int right, Swapper swapper) {
     19         int oleft= left;
     20         int oright= right;
     21         String mid= (String)values.elementAt((left + right) / 2);
     22         do {
     23             while (((String)(values.elementAt(left))).compareTo(mid) < 0)
     24                 left++;
     25             while (mid.compareTo((String)(values.elementAt(right))) < 0)
     26                 right--;
     27             if (left <= right) {
     28                 swapper.swap(values, left, right);
     29                 left++;
     30                 right--;
     31             }
     32         } while (left <= right);
     33 
     34         if (oleft < right)
     35             sortStrings(values, oleft, right, swapper);
     36         if (left < oright)
     37             sortStrings(values, left, oright, swapper);
     38     }
     39 }
     40