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;
+ }
+}