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