THRIFT-144. java: Generated classes should implement Comparable

Forgot to add TBaseHelper.java. Oops.



git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@799714 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/java/src/org/apache/thrift/TBaseHelper.java b/lib/java/src/org/apache/thrift/TBaseHelper.java
new file mode 100644
index 0000000..2cc83e0
--- /dev/null
+++ b/lib/java/src/org/apache/thrift/TBaseHelper.java
@@ -0,0 +1,102 @@
+package org.apache.thrift;
+
+import java.util.List;
+
+public class TBaseHelper {
+  
+  public static int compareTo(boolean a, boolean b) {
+    return Boolean.valueOf(a).compareTo(b);
+  }
+  
+  public static int compareTo(byte a, byte b) {
+    if (a < b) {
+      return -1;
+    } else if (b < a) {
+      return 1;
+    } else {
+      return 0;
+    }
+  }
+
+  public static int compareTo(short a, short b) {
+    if (a < b) {
+      return -1;
+    } else if (b < a) {
+      return 1;
+    } else {
+      return 0;
+    }
+  }
+  
+  public static int compareTo(int a, int b) {
+    if (a < b) {
+      return -1;
+    } else if (b < a) {
+      return 1;
+    } else {
+      return 0;
+    }
+  }
+  
+  public static int compareTo(long a, long b) {
+    if (a < b) {
+      return -1;
+    } else if (b < a) {
+      return 1;
+    } else {
+      return 0;
+    }
+  }
+  
+  public static int compareTo(double a, double b) {
+    if (a < b) {
+      return -1;
+    } else if (b < a) {
+      return 1;
+    } else {
+      return 0;
+    }
+  }
+  
+  public static int compareTo(String a, String b) {
+    return a.compareTo(b);
+  }
+  
+  public static int compareTo(byte[] a, byte[] b) {
+    int sizeCompare = compareTo(a.length, b.length);
+    if (sizeCompare != 0) {
+      return sizeCompare;
+    }
+    for (int i = 0; i < a.length; i++) {
+      int byteCompare = compareTo(a, b);
+      if (byteCompare !=0) {
+        return byteCompare;
+      }
+    }
+    return 0;
+  }
+  
+  public static int compareTo(Comparable a, Comparable b) {
+    return a.compareTo(b);
+  }
+  
+  public static int compareTo(List a, List b) {
+    int lastComparison = compareTo(a.size(), b.size());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    for (int i = 0; i < a.size(); i++) {
+      Object oA = a.get(i);
+      Object oB = b.get(i);
+      if (oA instanceof List) {
+        lastComparison = compareTo((List)oA, (List)oB);
+      } else {
+        lastComparison = compareTo((Comparable)oA, (Comparable)oB);
+      }
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+}