From: Bryan Duxbury Date: Fri, 31 Jul 2009 19:32:34 +0000 (+0000) Subject: THRIFT-144. java: Generated classes should implement Comparable X-Git-Tag: 0.2.0~49 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=82e96f5d96833d0af5495405444bace82b2214d7;p=common%2Fthrift.git 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 00000000..2cc83e08 --- /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; + } +}