| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| package org.apache.thrift; |
| |
| import java.util.Vector; |
| import java.util.Hashtable; |
| import java.util.Enumeration; |
| |
| public class TBaseHelper { |
| |
| public static int compareTo(boolean a, boolean b) { |
| return (a == b) ? 0 : (a ? 1 : -1); |
| |
| |
| } |
| public static int compareTo(Boolean a, Boolean b) { |
| return (a.booleanValue() == b.booleanValue()) ? 0 : (a.booleanValue() ? 1 : -1); |
| |
| |
| } |
| public static int compareTo(Boolean a, boolean b) { |
| return (a.booleanValue() == b) ? 0 : (a.booleanValue() ? 1 : -1); |
| |
| |
| } |
| |
| public static Boolean booleanValueOf(boolean b) { |
| return (b ? Boolean.TRUE : Boolean.FALSE); |
| } |
| |
| 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(Object a, Object b) { |
| if (a instanceof Vector) { |
| return compareTo((Vector)a, (Vector)b); |
| } if (a instanceof Hashtable) { |
| return compareTo((Hashtable)a, (Hashtable)b); |
| } else { |
| return ((TBase)a).compareTo(b); |
| } |
| } |
| |
| public static int compareTo(Vector a, Vector b) { |
| int lastComparison = compareTo(a.size(), b.size()); |
| if (lastComparison != 0) { |
| return lastComparison; |
| } |
| for (int i = 0; i < a.size(); i++) { |
| Object oA = a.elementAt(i); |
| Object oB = b.elementAt(i); |
| lastComparison = compareTo(oA, oB); |
| if (lastComparison != 0) { |
| return lastComparison; |
| } |
| |
| } |
| return 0; |
| } |
| |
| public static int compareTo(Hashtable a, Hashtable b) { |
| int lastComparison = compareTo(a.size(), b.size()); |
| if (lastComparison != 0) { |
| return lastComparison; |
| } |
| Enumeration enumA = a.keys(); |
| Enumeration enumB = b.keys(); |
| while (lastComparison == 0 && enumA.hasMoreElements()) { |
| Object keyA = enumA.nextElement(); |
| Object keyB = enumB.nextElement(); |
| lastComparison = compareTo(keyA, keyB); |
| if (lastComparison == 0) { |
| lastComparison = compareTo(a.get(keyA), b.get(keyB)); |
| } |
| } |
| return lastComparison; |
| } |
| |
| public static int compareTo(TEnum a, TEnum b) { |
| return compareTo(a.getValue(), b.getValue()); |
| } |
| |
| /* |
| 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; |
| } |
| */ |
| |
| public static void toString(byte[] bytes, StringBuffer sb) { |
| toString(bytes, 0, bytes.length, sb); |
| } |
| |
| public static void toString(byte[] buf, int arrayOffset, int origLimit, StringBuffer sb) { |
| int limit = (origLimit - arrayOffset > 128) ? arrayOffset + 128 : origLimit; |
| |
| for (int i = arrayOffset; i < limit; i++) { |
| if (i > arrayOffset) { |
| sb.append(" "); |
| } |
| sb.append(paddedByteString(buf[i])); |
| } |
| if (origLimit != limit) { |
| sb.append("..."); |
| } |
| } |
| |
| public static String paddedByteString(byte b) { |
| int extended = (b | 0x100) & 0x1ff; |
| return Integer.toHexString(extended).toUpperCase().substring(1); |
| } |
| |
| } |