home *** CD-ROM | disk | FTP | other *** search
- package netscape.util;
-
- public class Sort {
- private Sort() {
- throw new Error("All methods on Sort are static, do not call new Sort().");
- }
-
- private static Object[] upperCaseStrings(Object[] var0) {
- int var2 = var0.length;
- Object[] var3 = new Object[var2];
-
- for(int var1 = 0; var1 < var2; ++var1) {
- String var4 = (String)var0[var1];
- if (var4 != null) {
- var3[var1] = ((String)var0[var1]).toUpperCase();
- }
- }
-
- return var3;
- }
-
- public static void sort(Object[] var0, Object[] var1, int var2, int var3, boolean var4) {
- if (var3 > 1) {
- if (var0[0] instanceof String) {
- quickSortStrings(var0, var1, var2, var2 + var3 - 1, var4);
- } else {
- quickSort(var0, var1, var2, var2 + var3 - 1, var4);
- }
- }
- }
-
- public static void sortStrings(Object[] var0, int var1, int var2, boolean var3, boolean var4) {
- if (var4) {
- sort(upperCaseStrings(var0), var0, var1, var2, var3);
- } else {
- sort(var0, (Object[])null, var1, var2, var3);
- }
- }
-
- private static void quickSortStrings(Object[] var0, Object[] var1, int var2, int var3, boolean var4) {
- if (var0.length > 1) {
- int var5 = var2;
- int var6 = var3;
- String var7 = (String)var0[(var2 + var3) / 2];
-
- do {
- if (var4) {
- while(var5 < var3 && var7.compareTo((String)var0[var5]) > 0) {
- ++var5;
- }
-
- while(var6 > var2 && var7.compareTo((String)var0[var6]) < 0) {
- --var6;
- }
- } else {
- while(var5 < var3 && var7.compareTo((String)var0[var5]) < 0) {
- ++var5;
- }
-
- while(var6 > var2 && var7.compareTo((String)var0[var6]) > 0) {
- --var6;
- }
- }
-
- if (var5 < var6) {
- Object var8 = var0[var5];
- var0[var5] = var0[var6];
- var0[var6] = var8;
- if (var1 != null) {
- var8 = var1[var5];
- var1[var5] = var1[var6];
- var1[var6] = var8;
- }
- }
-
- if (var5 <= var6) {
- ++var5;
- --var6;
- }
- } while(var5 <= var6);
-
- if (var2 < var6) {
- quickSortStrings(var0, var1, var2, var6, var4);
- }
-
- if (var5 < var3) {
- quickSortStrings(var0, var1, var5, var3, var4);
- }
-
- }
- }
-
- private static void quickSort(Object[] var0, Object[] var1, int var2, int var3, boolean var4) {
- if (var0.length > 1) {
- int var5 = var2;
- int var6 = var3;
- Comparable var7 = (Comparable)var0[(var2 + var3) / 2];
-
- do {
- if (var4) {
- while(var5 < var3 && var7.compareTo((Comparable)var0[var5]) > 0) {
- ++var5;
- }
-
- while(var6 > var2 && var7.compareTo((Comparable)var0[var6]) < 0) {
- --var6;
- }
- } else {
- while(var5 < var3 && var7.compareTo((Comparable)var0[var5]) < 0) {
- ++var5;
- }
-
- while(var6 > var2 && var7.compareTo((Comparable)var0[var6]) > 0) {
- --var6;
- }
- }
-
- if (var5 < var6) {
- Object var8 = var0[var5];
- var0[var5] = var0[var6];
- var0[var6] = var8;
- if (var1 != null) {
- var8 = var1[var5];
- var1[var5] = var1[var6];
- var1[var6] = var8;
- }
- }
-
- if (var5 <= var6) {
- ++var5;
- --var6;
- }
- } while(var5 <= var6);
-
- if (var2 < var6) {
- quickSort(var0, var1, var2, var6, var4);
- }
-
- if (var5 < var3) {
- quickSort(var0, var1, var5, var3, var4);
- }
-
- }
- }
- }
-